PHP-搜索不工作

PHP-搜索不工作,php,html,mysql,pdo,Php,Html,Mysql,Pdo,我试图制作一个搜索引擎,以便在$dateFrom到$dateTo的两个日期之间进行搜索。 这是我试过的 Index.php: <?php require_once 'Connection.simple.php'; $tutorialTitle = "Using Ajax to search a Record with PHP, MySQL and jQuery (Look and Feel by Bootstrap)"; $conn = dbConnect();

我试图制作一个搜索引擎,以便在$dateFrom到$dateTo的两个日期之间进行搜索。 这是我试过的

Index.php:

<?php
    require_once 'Connection.simple.php';
    $tutorialTitle = "Using Ajax to search a Record with PHP, MySQL and jQuery (Look and Feel by Bootstrap)";

    $conn = dbConnect();
 ?>
 <!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title><?php echo $tutorialTitle;?></title>
        <meta http-equiv="X-UA-Compatible" content="IE=9" />
        <meta name="copyright" content="BEHSTANT SOFTWARE | Datasoft Engineering 2013"/>
        <meta name="author" content="Reedyseth"/>
        <meta name="email" content="ibarragan at behstant dot com"/>
        <meta name="description" content="<?php echo $tutorialTitle;?>" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel=stylesheet href="css/style01.css">
        <!-- Bootstrap -->
        <link href="css/bootstrap.min.css" rel="stylesheet">
    </head>
    <body>
        <div class="wrapper">
            <div class="page-header ">

                <div class="panel panel-default">

                </div>
            </div>

            <div class="mainContent">
                <form class="form-horizontal" role="form" method="get">
                    <div class="form-group">
                        <label class="col-sm-2 control-label" for="minimum date">employee_id</label>
                        <div class="input-group col-sm-9">
                            <input id="DateFrom" name="DateFrom" type="date" class="form-control" placeholder="Type the name" />
                            <input id="DateTo" name="DateTo" type="date" class="form-control" placeholder="Type the name" />
                            <span class="input-group-btn">
                                    <button type="button" class="btn btn-default btnSearch">
                                        <span class="glyphicon glyphicon-search"> Search</span>
                                    </button>
                            </span>
                        </div>
                    </div>
                </form>
                <div class="col-sm-2"></div>
                <div class="col-sm-8">
                <!-- This table is where the data is display. -->
                    <table id="resultTable" class="table table-striped table-hover">

                        <tbody></tbody>
                    </table>
                </div>
            </div>
        </div>
    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="js/jquery-1.10.2.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="js/bootstrap.min.js"></script>
    <script type="text/javascript">
        jQuery(document).ready(function($) {
            $('.btnSearch').click(function(){
                makeAjaxRequest();
            });

            $('form').submit(function(e){
                e.preventDefault();
                makeAjaxRequest();
                return false;
            });

            function makeAjaxRequest() {
                $.ajax({
                    url: 'search.php',
                    type: 'get',
                    DateFrom: {DateFrom: $('input#DateFrom').val()},
                    DateTo: {DateTo: $('input#DateTo').val()},
                    success: function(response) {
                        $('table#resultTable tbody').html(response);
                    }
                });
            }
        });
    </script>
    </body>
</html>
Search.php:

<?php

    require_once 'Connection.simple.php';
    $conn = dbConnect();
    $OK = true; 
   if (isset($_GET['DateFrom']) && isset($_GET['DateTo'])) {    
    $dateFrom = $_GET['DateFrom'];
    $dateTo = $_GET['DateTo'];


    $sql = "SELECT * FROM attendance WHERE date >= '". $dateFrom ."' AND date <= '". $dateto ."' ";
    }
    if(empty($rows)) {
        echo "<tr>";
            echo "<td colspan='4'>There were not records</td>";
        echo "</tr>";
    }

    else {
        foreach ($rows as $row) {
            echo "<tr>";
                echo "<td>".$row['emp_id']."</td>";
                echo "<td>".$row['Date']."</td>";
                echo "<td>".$row['day']."</td>";
                echo "<td>".$row['time_in']."</td>";
                echo "<td>".$row['time_out']."</td>";
                echo "<td>".$row['worked']."</td>";
                echo "<td>".$row['overtime']."</td>";
                echo "<td>".$row['less_hours']."</td>";
                echo "<td>".$row['transport_in']."</td>";
                echo "<td>".$row['Transport_out']."</td>";


            echo "</tr>";
        }
    }

?>
编辑1:

******我添加了它以使其执行查询,但仍然不起作用******

<?php
function dbConnect (){
    $conn = null;
    $host = 'localhost';
    $db =   'payroll';
    $user = 'root';
    $pwd =  '';
    try {
        $conn = new PDO('mysql:host='.$host.';dbname='.$db, $user, $pwd);
        //echo 'Connected succesfully.<br>';
    }
    catch (PDOException $e) {
        echo '<p>Cannot connect to database !!</p>';
        echo '<p>'.$e.'</p>';
        exit;
    }
    return $conn;
 }

 ?>
*******这是我的DBconnection代码******* 我的数据库名是payroll,表是Attention

您需要在SQL代码中命名参数。 请对列名称使用正确的大小写。您拼写了less_hours,而在数据库中,此列称为less_hours。这给了我们一个通知:未定义索引:少于小时。 我将输出代码放在第一个if中,否则$rows将始终是第一次未定义。 这个代码对我有用:

if (isset($_GET['DateFrom']) && isset($_GET['DateTo'])) {
    $dateFrom = $_GET['DateFrom'];
    $dateTo = $_GET['DateTo'];


    $sql = "SELECT * FROM attendance WHERE 
            date >= :date_from AND date <= :date_to ";

    $stmt = $conn->prepare($sql);
    // Now we execute the query passing an array toe execute();
    $results = $stmt->execute(
                      array('date_from' => $dateFrom, 'date_to' => $dateTo));
    // Extract the values from $result
    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

    if(empty($rows)) {
        echo "<tr>";
        echo "<td colspan='4'>There were not records</td>";
        echo "</tr>";
    }

    else {
        foreach ($rows as $row) {

            echo "<tr>";
            echo "<td>".$row['emp_id']."</td>";
            echo "<td>".$row['Date']."</td>";
            echo "<td>".$row['Day']."</td>";
            echo "<td>".$row['Time_In']."</td>";
            echo "<td>".$row['Time_Out']."</td>";
            echo "<td>".$row['Worked']."</td>";
            echo "<td>".$row['Overtime']."</td>";
            echo "<td>".$row['Less_Hours']."</td>";
            echo "<td>".$row['Transport_In']."</td>";
            echo "<td>".$row['Transport_Out']."</td>";

            echo "</tr>";
        }
    }
}

如果您明确告诉我们您希望此代码做什么以及它实际做什么,您更有可能获得帮助。您遇到了什么错误?此代码用于获取日期之间的出勤率。我希望从一个日期到另一个日期有2个textboxinput,当执行查询时,表会获取该日期之间数据库中的所有列,它显示没有记录。我知道从哪里获取$rows?您编写了一个sql语句,但没有执行它。先生,它仍然不起作用。除了:require_once'Connection.simple.php'$conn=dbConnect$OK=正确@akki2401尝试硬编码日期:$dateFrom='2014-01-01',$dateTo='2014-12-31'以下是我一直在尝试的:&@akki2401问题出在哪里?@akki2401删除$sql中参数名称周围的引号:SELECT*FROM attentication WHERE date>=:date_FROM和date=':date_FROM'和date='
if (isset($_GET['DateFrom']) && isset($_GET['DateTo'])) {
    $dateFrom = $_GET['DateFrom'];
    $dateTo = $_GET['DateTo'];


    $sql = "SELECT * FROM attendance WHERE 
            date >= :date_from AND date <= :date_to ";

    $stmt = $conn->prepare($sql);
    // Now we execute the query passing an array toe execute();
    $results = $stmt->execute(
                      array('date_from' => $dateFrom, 'date_to' => $dateTo));
    // Extract the values from $result
    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

    if(empty($rows)) {
        echo "<tr>";
        echo "<td colspan='4'>There were not records</td>";
        echo "</tr>";
    }

    else {
        foreach ($rows as $row) {

            echo "<tr>";
            echo "<td>".$row['emp_id']."</td>";
            echo "<td>".$row['Date']."</td>";
            echo "<td>".$row['Day']."</td>";
            echo "<td>".$row['Time_In']."</td>";
            echo "<td>".$row['Time_Out']."</td>";
            echo "<td>".$row['Worked']."</td>";
            echo "<td>".$row['Overtime']."</td>";
            echo "<td>".$row['Less_Hours']."</td>";
            echo "<td>".$row['Transport_In']."</td>";
            echo "<td>".$row['Transport_Out']."</td>";

            echo "</tr>";
        }
    }
}