2014-01-21 65 views
10

我是mysqli的新手,我使用了我朋友的这段代码,但我不明白如何检查查询是否返回zeo行。这是我的代码。提前致谢。检查查询结果是否为空行mysqli

$results = $mysqli->query("SELECT ANNOUNCE_NUMBER,ANNOUNCEMENTS,ANNOUNCE_TYPE,POST_DATE FROM home WHERE ANNOUNCE_NUMBER NOT LIKE $excludewelcome AND ANNOUNCE_NUMBER NOT LIKE $excludenews ORDER BY ANNOUNCE_NUMBER DESC LIMIT $position, $items_per_group"); 
if ($results) { 
    //output results from database 

    while($obj = $results->fetch_object()) 
    { 
     if($obj->ANNOUNCE_TYPE=='NEWSEVENTS') 
     { 
      $realstring='News and Events'; 
     } 
     else 
     { 
     $realstring='Welcome Note'; 
     } 

     echo '<li id="item_'.$obj->ANNOUNCE_NUMBER.'"><strong>'.$realstring.'</strong></span>'; 
     echo '<br \>'; 
     echo '('.$obj->POST_DATE.') <span class="page_message">'.$obj->ANNOUNCEMENTS.'</span></li>'; 
    } 

} 

回答

22

您可以使用数据集上的num_rows来检查返回的行数。例如:

$results = $mysqli->query("SELECT ANNOUNCE_NUMBER,ANNOUNCEMENTS,ANNOUNCE_TYPE,POST_DATE FROM home WHERE ANNOUNCE_NUMBER NOT LIKE $excludewelcome AND ANNOUNCE_NUMBER NOT LIKE $excludenews ORDER BY ANNOUNCE_NUMBER DESC LIMIT $position, $items_per_group"); 
if ($results) { 

    if($results->num_rows === 0) 
    { 
     echo 'No results'; 
    } 
    else 
    { 
     //output results from database 
     while($obj = $results->fetch_object()) 
     { 
      if($obj->ANNOUNCE_TYPE=='NEWSEVENTS') 
      { 
       $realstring='News and Events'; 
      } 
      else 
      { 
      $realstring='Welcome Note'; 
      } 

      echo '<li id="item_'.$obj->ANNOUNCE_NUMBER.'"><strong>'.$realstring.'</strong></span>'; 
      echo '<br \>'; 
      echo '('.$obj->POST_DATE.') <span class="page_message">'.$obj->ANNOUNCEMENTS.'</span></li>'; 
     } 
    } 
} 
+0

谢谢!那工作! – user3196424

+2

但我认为最好使用一个如果: if(($ results)&&($ results-> num_rows!== 0)){ –

0

如果数组是这样的[空]或[NULL,NULL]或[NULL,NULL,NULL,...]

您可以使用破灭:

破灭用于将数组转换为字符串。

$con = mysqli_connect("localhost","my_user","my_password","my_db"); 
$result = mysqli_query($con,'Select * From table1'); 
$row = mysqli_fetch_row($result); 
if(implode(null,$row) == null){ 
    //$row is empty 
}else{ 
    //$row has some value rather than null 
}