2016-06-14 4 views
0

Hallo, ich habe kürzlich versucht, ein Forum zu erstellen und arbeite gerade an meiner Forum-Indexseite. Ich habe erst vor kurzem begonnen, PHP zu lernen und habe es für ungefähr 2 Wochen getan.Was will es? - mysqli_num_rows() erwartet, dass Parameter 1 mysqli_result ist, boolean gegeben

Ich verstehe nicht, was genau ich brauche, um den Fehler zu beheben, aber es ist offensichtlich in Bezug auf meine Verwendung von mysqli_num_rows und mysqli_fetch_assoc. Ich finde es schwierig zu verstehen, warum es die Boolesche Antwort nicht mag. Wenn jemand es erklären könnte, würde ich it.The Code schätzen an der zweiten Fehlermeldung beendet „Es wurden keine Kategorien von admin hinzugefügt“ und der Code unter dem, was ich habe, ist so weit:

<?php 
include 'connect.php'; 
include 'header.php'; 


$sql = "SELECT 
     cat_id, 
     cat_name, 
     cat_description, 
     FROM 
     categories"; 


$result =mysqli_query($link, $sql); 
    if(!isset($result)) 
    { 
     echo 'Error while selecting from database.Please try again later.'; 
    } 
    else 
    { 
if(mysqli_num_rows($result)== 0) 
    { 
     echo 'No categories have been added by Admin'; 
    } 
else 
{ 
    echo '<table border="1"> 
      <tr> 
      <th>Category</th> 
      <th>Last Topic</th> 
      </tr>'; 
while ($row =mysqli_fetch_assoc($result)) 
{ 
    echo '<tr>'; 
     echo '<td class="leftpart">'; 
      echo '<h3><a href="category.php?id">' . $row['cat_name'] . '</a></h3>' . $row['cat_description']; 
     echo '</td>'; 
     echo '<td class="rightpart">'; 
        echo '<a href="topic.php?id=">Topic Subject</a> at 10-10'; 
     echo '</td>'; 
    echo '</tr>'; 
} 
} 
    } 

include 'footer.php'; 
?> 
+1

Ihre Abfrage schlägt fehl, wahrscheinlich aufgrund des nachgestellten ',' am Ende von 'cat_description,'. –

+0

Ihr '$ result' wird immer eingestellt. Verwenden Sie stattdessen '! Empty()', um bei Fehlschlägen nach einem falschen Ergebnis zu suchen. – aynber

+0

Erwarten Sie, dass von dieser Abfrage ein boolescher Wert zurückgegeben wird? Laut Handbuch 'Gibt bei einem Fehler FALSE zurück. Für erfolgreiche SELECT-, SHOW-, DESCRIBE- oder EXPLAIN-Abfragen gibt mysqli_query() ein mysqli_result-Objekt zurück.' So schlägt Ihre Abfrage fehl, http://php.net/manual/en/mysqli.error.php. – chris85

Antwort

1

Sie haben ein Komma vor FROM in Ihrer select Aussage.

+0

Danke, das hat das Problem gelöst. So einfach zu überblicken :( – Richard

Verwandte Themen