如果数据库没有任何与基于运行SELECT语句的关键字匹配的记录,则下面显示的代码具有条件语句以显示“未找到列表”。我尝试用“植物”,“300食品”这样的搜索词来确保它按照预期的方式工作。这里发生的事情是因为SQL语句没有获取任何记录,因为DB中没有任何东西与我的搜索词匹配,下面的代码不会显示任何完全正常的内容。我需要显示消息“找不到列表”。我想知道为什么当$record
不包含记录时,满足以下条件,忽略显示消息的'else'语句。任何帮助建议/建议谦卑地赞赏。
if($record!=null) {
while($row=mysqli_fetch_array($record)){
这里有完整的代码供您查看可能出错的地方。就PHP语法而言,请告知我是否以正确的方式做事。谢谢你的时间。
if(isset($_POST['submit'])){
if($_POST['search_word']!=null){
$clean_search_word = mysqli_real_escape_string($con,$_POST['search_word']);
$sql = "SELECT * FROM webdir_user where user_category like '%$clean_search_word%' LIMIT $start, $limit";
$record = mysqli_query($con,$sql);
if(!$record) {
die('Error in SQL:'.mysqli_error());
}
}
else {
$sql = "SELECT * FROM webdir_user LIMIT $start, $limit";
$record = mysqli_query($con,$sql);
if(!$record){
die('Error in SQL:'.mysqli_error());
}
}
}
else { // Direct page access from the top menu item.
$sql = "SELECT * FROM webdir_user LIMIT $start, $limit";
$record = mysqli_query($con,$sql);
if(!$record){
die('Error in SQL:'.mysqli_error());
}
}
// Data fetched from the DB.
if($record!=null) {
while($row=mysqli_fetch_array($record)){
?>
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<p class="content-p-tag-top"><?php echo $row['user_business']; ?></p>
<p class="content-p-tag"> <?php echo $row['user_category']; ?></p>
<p class="content-p-tag"><a> <?php echo $row['user_url']; ?></a></p>
</div>
<?php } } else { ?>
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<p class="content-p-tag-top">Sorry! No listing found matching your key word!</p>
</div>
<?php } ?>
答案 0 :(得分:1)
mysqli_query() 返回:对于成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询,它将返回 mysqli_result对象。其他成功查询将返回 TRUE 。失败时 FALSE
使用 mysqli_num_rows()返回结果集中的行数:
像
if(mysqli_num_rows($result) > 0){
// record found
}else{
// record not found
}