2017-08-12 231 views
-1
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in ..php on line 21 

21號線布爾是警告:mysqli_num_rows()預計參數1被mysqli_result,給予

for ($i=0; $i < mysqli_num_rows($result); $i++) { 

代碼:

$mysqli = connect(); 
      $MAX_SELECT = 50; 
      $SELECT_LIMIT_1 = 0+($MAX_SELECT*$page); 
      $result = $mysqli->query("SELECT alog.text, users.login, alog.userid from alog JOIN users ON alog.userid=users.id LIMIT ". $SELECT_LIMIT_1 .", ". $MAX_SELECT); 
      for ($i=0; $i < mysqli_num_rows($result); $i++) { 
       $rows = $result->fetch_assoc(); 
       if(isset($_GET['debug'])) print_r($rows); 
       echo ' 
       <tr> 
        <td><a href="/admin/user.php?id='. $rows["userid"] .'" style="color: #337ab7;">'. $rows["login"] .'</a>' .': '. $rows["text"] .'</td> 
       </tr> 
       '; 
      } 
      $mysqli->close(); 
+0

該錯誤意味着'$ mysqli-> query'失敗並返回'false'而不是結果。之所以應該在'$ mysqli-> error' – apokryfos

+0

看看我的答案。可以幫你 – JYoThI

回答

0

你使用面向對象的風格mysqli

更改此信息

for ($i=0; $i < mysqli_num_rows($result); $i++) { 

for ($i=0; $i < $result->num_rows;; $i++) { 
+0

什麼也沒顯示:( –

+0

也許你的查詢不正確 – Ali

0

好像您的查詢是行不通的。

確保您的查詢已執行且$result有一些數據。

$mysqli = connect(); 
       $MAX_SELECT = 50; 
       $SELECT_LIMIT_1 = 0+($MAX_SELECT*$page); 
       $result = $mysqli->query("SELECT alog.text, users.login, alog.userid from alog JOIN users ON alog.userid=users.id LIMIT ". $SELECT_LIMIT_1 .", ". $MAX_SELECT); 
       if($result){ 
        for ($i=0; $i < mysqli_num_rows($result); $i++) { 
         $rows = $result->fetch_assoc(); 
         if(isset($_GET['debug'])) print_r($rows); 
         echo ' 
         <tr> 
          <td><a href="/admin/user.php?id='. $rows["userid"] .'" style="color: #337ab7;">'. $rows["login"] .'</a>' .': '. $rows["text"] .'</td> 
         </tr> 
         '; 
        } 
       }else{ 
        echo 'result Error'; 
       } 

       $mysqli->close(); 
+0

是啊,出錯了,會檢查。非常感謝! –

+0

讓我知道它是否有效,並使問題完整。 –

0

1:object oriented style您執行的查詢,並試圖獲得num_rows作爲procedural style。你的mixing具有程序風格的面向對象風格

2nd:$mysqli->query(...)將返回True或False。所以做一個錯誤處理程序。

第3張:您可以像這樣訪問num_rows$result->num_rows查詢成功後。

if(!$result){ 
    die($mysqli->error); 
}else{ 

     for ($i=0; $i < $result->num_rows; $i++) { 
      $rows = $result->fetch_assoc(); 
      if(isset($_GET['debug'])) print_r($rows); 
      echo ' 
      <tr> 
       <td><a href="/admin/user.php?id='. $rows["userid"] .'" style="color: #337ab7;">'. $rows["login"] .'</a>' .': '. $rows["text"] .'</td> 
      </tr> 
      '; 
     } 
} 
相關問題