2011-08-17 61 views
-1

我有這樣的代碼:打印出來COUNT - SQL/PHP

$topics= mysql_query("SELECT COUNT(*) FROM forum_topics WHERE forum_id=".$h['forum_id'].""); 
       print $topics; //This prints out 1, but should be 14? 

正如你所看到的,我從我的表中選擇COUNT。該表包含14行。我怎樣才能打印出來?就像現在,當我打印出$主題時,它只是說資源ID#18。

+0

你讀過關於使用mysql PHP函數的一些教程/文檔嗎? – Mat

+0

是的,我讀了關於COUNT(*)函數,儘管它使用WHILE循環完成。我希望這可以避免。 「 –

+0

」返回的結果資源應該傳遞給mysql_fetch_array()和其他用於處理結果表的函數來訪問返回的數據。「 - mysql_query文檔。如果不需要循環,則不需要循環,但需要使用這些函數。 – Mat

回答

1

然後,你需要像

if ($row = mysql_fetch_row($topics)) 
{ 
    echo $row[0]; 
} 
2

你需要做的:

$topics = mysql_query("SELECT COUNT(*) FROM forum_topics WHERE forum_id=".$h['forum_id'].""); 
$result = mysql_fetch_assoc($topics); 
print $result['COUNT(*)']; 
+0

這會打印出「0」 –

+0

然後,您的查詢出現問題。在'forum_id'列下的$ h ['forum_id']的值是否有表中的條目? – Jonathon

+0

對不起!我的錯。我的發言中有一個錯誤。感謝你的回答! –

0
$topics= mysql_query("SELECT COUNT(*) as count FROM forum_topics WHERE forum_id=".$h['forum_id'].""); 
while($row = mysql_fetch_array($topics)){ 
    echo $row['count']; 
} 
1
$topics= mysql_query("SELECT COUNT(*) as Count FROM forum_topics WHERE forum_id=".$h['forum_id'].""); 

$topics不會打印14。查詢返回Resource IDsuccessfalseerror

來源:Link

如果你想獲得你能做的伯爵,

$rows = mysql_fetch_array($topics) //You can use this since it's only one record 
{ 
    echo $rows['Count']; 
} 

如果你要得到多條記錄,你可以使用

while($rows = mysql_fetch_array($topics)) 
{ 
    echo $rows['Count']."</br>"; 
} 
+0

對於'SELECT'查詢,mysql_query在失敗時返回資源ID或'false'。 – Jonathon

+0

你是對的'SELECT'返回資源ID,'INSERT,UPDATE,DELETE,DROP等'返回true。 – theking963

0

那是因爲$主題是一種資源,而不是結果集。您需要使用mysql_fetch_assoc,mysql_fetch_array獲取結果集(數組),或者您可以在這種情況下使用mysql_fetch_row。

http://us.php.net/manual/en/ref.mysql.php