2014-01-21 12 views
10

Ich bin neu in Mysqli, habe ich diesen Code von meinem Freund, aber ich verstehe nicht, wie Sie überprüfen, ob die Abfrage Zeo-Zeile zurückgibt. Hier ist mein Code. Danke im Voraus.überprüfen, ob die Abfrage Ergebnisse leere Zeile 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>'; 
    } 

} 

Antwort

22

Sie können die num_rows auf dem Datensatz verwenden die Anzahl der zurückgegebenen Zeilen zu überprüfen. Beispiel:

$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

Danke! Das hat funktioniert! – user3196424

+2

Aber ich denke, dass besser eine verwenden, wenn: if (($ results) && ($ results-> num_rows! == 0)) { –

0

wenn Array wird wie folgt aussehen [null] oder [null, null] oder [null, null, null, ...]

Sie implodieren verwenden können:

implodieren Wird für das Konvertieren von Array in String verwendet.

$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 
} 
Verwandte Themen