为什么SELECT语句似乎在找不到匹配记录

时间:2017-03-04 06:37:33

标签: php mysql

如果数据库没有任何与基于运行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 } ?>

1 个答案:

答案 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
}