2015-09-19 75 views
0

我一直在試圖顯示使用此代碼的行數,但它保留說一些警告[預計參數]

1行這是不對的

<?php 

      $link = mysql_connect("localhost", "gamin1_forum", "password123"); 
      mysql_select_db("gamin1_forumdb", $link); 

      $result = mysql_query("SELECT COUNT(*) FROM smf_personal_messages", $link); 
      $num_rows = mysql_num_rows($result); 

      echo "$num_rows Rows"; 

      ?> 

行大約1443但它一直說1

+0

不推薦使用mysql_ *擴展名,[不要開始使用它](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) – VolkerK

回答

0

這是真的,mysql_num_rows()是告訴有一個「行」返回。你需要檢查返回的行的值來計算。試試這個

$link = mysql_connect("localhost", "gamin1_forum", "password123"); 
$result = mysql_query("SELECT COUNT(*) as cnt FROM smf_personal_messages", $link); 
$row = mysql_fetch_array($result); 

echo ($row['cnt']); 

在附註中,出於安全原因,您不應該使用mysql_ *函數。嘗試PDO/mysqli_ *函數

0

Count(*)返回一行,其中包含行數作爲值。

使用mysql_num_rows($result)你實際上是計數Count(*)結果這確實是一個的行量。

將其更改爲:

$result = mysql_query("SELECT * FROM smf_personal_messages", $link); 
$num_rows = mysql_num_rows($result); 

或者僅使用Count(*)值(這可能是更好的,因爲它在數據庫統計,而不是檢索整個表的話)使用mysql_fetch_array

相關問題