如何为Pdo搜索获取全部

时间:2018-11-29 06:07:57

标签: search pdo fetchall

我是PHP的新手,我的PDO搜索似乎从数据库中获取了单行,尽管它有五个具有相同日期的行数据。如何使用PDO获取具有相同日期的所有数据?

下面是我的代码。

if(isset($_POST['Find']))
{
        // connect to mysql
    try {
        $pdoConnect = new PDO("mysql:host=localhost;dbname=testing","root","");
    } catch (PDOException $exc) {
        echo $exc->getMessage();
        exit();
    }

    // id to search
    $check_date = $_POST['check_date'];

     // mysql search query
    $pdoQuery = "SELECT * FROM checklist WHERE check_date = :check_date";

    $pdoResult = $pdoConnect->prepare($pdoQuery);

    //set your id to the query id
    $pdoExec = $pdoResult->execute(array(":check_date"=>$check_date));

    if($pdoExec)
    {
            // if id exist 
            // show data in inputs
        if($pdoResult->rowCount()>0)
        {
            foreach($pdoResult as $row)
            {
                $check_date = $row['check_date'];
            }
        }
            // if the id not exist
            // show a message and clear inputs
        else{
            echo 'No Data With This ID';
        }
    }else{
        echo 'ERROR Data Not Inserted';
    }
}

在此先感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

执行语句后,您可以使用fetchAll方法来获取所有记录。

尝试以下代码。

if(isset($_POST['Find']))
{
        // connect to mysql
    try {
        $pdoConnect = new PDO("mysql:host=localhost;dbname=testing","root","");
    } catch (PDOException $exc) {
        echo $exc->getMessage();
        exit();
    }

    $check_date = $_POST['check_date']."%";

    $pdoQuery = "SELECT * FROM checklist WHERE check_date like :check_date";

    $pdoResult = $pdoConnect->prepare($pdoQuery);

    $pdoExec = $pdoResult->execute(array(":check_date"=>$check_date));

    if($pdoExec)
    {
        if($data=$pdoResult->fetchAll(PDO::FETCH_ASSOC))//new added lines
        {
            foreach($data as $row)
            {
                echo $row['check_date']."<br>";
            }

        }else{  
            echo "Data not found";
        }//end new added lines
    }else{
        echo 'ERROR Data Not Inserted';
    }
}

答案 1 :(得分:0)

 <form action="" method="post">

            Date : <input type="text" name="check_date" value="<?php echo $check_date;?>"><i><font color="#a30017">&nbsp;&nbsp;*format : dd / mm / yy | *eg : 29 / 11 / 18 </font></i><br><br>

            <input type="submit" name="Find" value="Search">

        </form> 


              <table>
          <tr>
            <td>No</td>
            <td>Room</td>
            <td>Projector</td>
            <td>Check Date</td>

          </tr>
            <td><?php echo $count++; ?></td>
            <td><?php echo $row['meeting_room']; ?></td>
            <td style="text-align: center; vertical-align: middle;"><?php echo $row['projector']; ?></td>
            <td style="text-align: center; vertical-align: middle;"><?php echo $row['check_date']; ?></td>

            </tr>

        </table>

this is my database

这些是您需要看的吗?搜索后仅显示最后一个值“阿拉伯”。 “会议室”没有出现。