2011-08-17 38 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