如何修复仅获取一行数据而不是所有关联行的PHP / SQL搜索查询?

时间:2019-04-16 15:42:25

标签: php html sql

我正在做一个小项目,我希望能够在数据库中搜索与搜索相关的所有项目

我的问题是,当我在下面使用我的代码时,只会得到一个结果,而不是所有符合我的查询结果的数组。我已经看到一些建议使用fetchAll()的解决方案,但似乎没有输出任何内容。

PHP查询的外观。

if(isset($_POST['search'])){

      if(preg_match("/^[a-zA-Z]+/", $_POST['sname'])){
      $search = $_POST['sname']; //name in form 

      $pdo = & dbconnect();

      $userid = $_SESSION['user_id'];

      $sql = "SELECT * FROM movie_dets Where user_id=? and Title LIKE '%" .$search."%'";
      $stmt=$pdo->prepare($sql);
      $stmt->execute([$userid]);

      if(!$stmt)
      {
         die("Database pull did not return data");
      }

      $row=$stmt->fetch();
   }
   }

然后我的html中有一个foreach循环,看起来像这样

 <div class="row">
          <?php
          $loop = 0;
          foreach ($stmt as $row):   //loop through result set ?>

          <div class="column" >
             <div>
               <figure>
               <img src="<?php echo "/.../".$row['Cover'] ?>" alt="<?php echo $row['Title']; ?> cover" />
               <figcaption>
                 ...
                </figcaption>
               </figure>
            </div>
           </div>
           <?php
            $loop++;
                if ($loop % 4 ==0) //to display four results the wrap.
              {
                 echo "</div> <div class='row'>";

              }
            ?>
        <?php endforeach ?>
     </div>

在我的数据库中,有两个标题称为“冻结”。给定“ fr”搜索词时,这应该输出所有行。取而代之的是,它仅获取其中之一。

0 个答案:

没有答案