php - 我在以下 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";
}
}
?>
解决方案
这里的问题是您似乎将$rows
变量用于两件事:计算行数和获取行数。将其重命名$count
为计数,它将解决您的问题。
问题是,您的 while 循环将结果分配mysqli_fetch_array
给您的$rows
变量,然后评估它以查看它是否继续循环。
如果 while 循环停止循环,则意味着最后一次调用mysqli_fetch_array
返回的结果等于 false。因此,它在下面的 if 中将始终等于 0(因为false == 0
将返回 true),否则它不会退出 while 循环。
推荐阅读
- php - 在 xammp 服务器上的 laravel 8+ 中找不到 pgsql 驱动程序
- mongodb - MongoBb - 从匹配嵌套数组文档到根文档级别的项目元素的聚合步骤
- vue.js - 如何使用基于元素宽度的 v-if 动态渲染插槽
- c# - 如何使用 Unity C# 从 android 内部存储访问图像和 3D 对象
- c - 当程序之前运行良好时,C 中的 TCP 分段错误(核心转储)
- c - C 中的 fread() 如何在 for 循环中工作?
- javascript - 两个相似的 div 容器,但只有一个在工作
- c++ - 变量阴影是否适用于 C++ 中的所有编译器?
- python - 在 Python 中创建动态部分可调用对象
- javascript - Javascript - 将两个特定的数组数字相加