为什么我的回声不起作用,因为没有找到结果


Why does my echo not work given no results found?

我正在执行一个例程来检查给定范围的数据库中是否存在书籍。如果没有找到书,我想回应。我有以下几点:

$search = mysqli_query($con,$query);
while(list($book_id, $title, $authors, $description, $price) = mysqli_fetch_row($search)){
if(!empty($book_id)) {
echo "Book ID: " . $book_id . "<br/>";
echo "Book Title: " . $title . "<br/>";
echo "Authors: " . $authors . "<br/>";
echo "Description: " . $description . "<br/>";
echo "Price: " . $price . "<br/>";
echo "<br/>";
}
if(empty($book_id)){
    echo "Fail";
    }
}

如果没有找到任何书籍,则不会打印任何内容。回声不起作用?怎么来了?

谢谢

因为如果没有返回任何记录,您根本不会输入 while,因为 $book_is 将包含值 false 和 while(false)...你知道的

在这种情况下,您可以使用mysqli_num_rows来检查是否找到行

您的无结果回显位于永远不会被调用的 while 循环中

while (list($book_id, $title, $authors, $description, $price) = mysqli_fetch_row($search)) {
  if (!empty($book_id)) {
    echo "Book ID: " . $book_id . "<br/>";
    echo "Book Title: " . $title . "<br/>";
    echo "Authors: " . $authors . "<br/>";
    echo "Description: " . $description . "<br/>";
    echo "Price: " . $price . "<br/>";
    echo "<br/>";
  }
}
if (empty($book_id)) {
  echo "Fail";
}

像上面的代码一样将其移出

这是因为您的 while 循环根本没有被访问。尝试从 if 条件中回显某些内容,看看它是否显示出来。