Как получить все для поиска Pdo - PullRequest
0 голосов
/ 29 ноября 2018

Я новичок в 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 голосов
/ 29 ноября 2018
 <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>

это моя база данных

это то, что вам нужно увидеть?Только последнее значение «арабский» отображается после поиска.«Зал заседаний» не появляется.

0 голосов
/ 29 ноября 2018

После оператора execute вы можете использовать метод 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';
    }
}
...