首页 > 解决方案 > 我在以下 php 代码中遇到搜索错误

问题描述

我在 php 搜索中遇到错误。如果找不到记录,它会回显“找不到记录”。但是如果找到记录,它仍然会给出相同的消息“未找到记录”

<?php
if(isset($_GET['submit']))
{
     $search = $_GET["search"];
     $result = mysqli_query($conn, "select * from login where password like 
'".$_GET['search']."%' or email like '".$search."%'  "); 
     $rows = 0;
     while($rows = mysqli_fetch_array($result))
     {
     ?>     
          <tr>
          <td>
          <?php echo $rows['email']; ?>
          </td>
          <td>
          <?php echo $rows['password']; ?>
          </td>
          <td>  
          <a href="edit.php?id= <?php echo $rows['id']; ?> ">Edit</a> ,<a 
href="assets/php/del.php?id= <?php echo $rows['id']; ?>">Del</a>
          </td>
          </tr>
          <?php
          $rows++;
     } 
     if($rows == 0)
     {
          echo "No Record Found";
     }
}
?>

标签: phpmysql

解决方案


这里的问题是您似乎将$rows变量用于两件事:计算行数和获取行数。将其重命名$count为计数,它将解决您的问题。

问题是,您的 while 循环将结果分配mysqli_fetch_array给您的$rows变量,然后评估它以查看它是否继续循环。

如果 while 循环停止循环,则意味着最后一次调用mysqli_fetch_array返回的结果等于 false。因此,它在下面的 if 中将始终等于 0(因为false == 0将返回 true),否则它不会退出 while 循环。


推荐阅读