根据返回的行数获取用户的帖子数量?

时间:2012-06-27 14:57:29

标签: php mysql

所以我有一个问题。 我正在聊天/即时通讯网站,我正在制作一个用户个人资料页面。我想显示用户有多少帖子。

我之前遇到的另一个问题是,当我调用某个值时,它会返回一个'Resource#1'类型的字符串。但是我通过使用

来实现这一点
$totalposts=mysql_query("SELECT * FROM `posts` WHERE Username='" . $username . "'");
$totalposts = mysql_fetch_row($totalposts);
$totalposts = $totalposts[0];

但这只是返回最近一篇文章的最后一个postID。我以为mysql_num_rows会起作用。但是这段代码返回一个错误(带数字的例子):

29: $totalposts=mysql_query("SELECT * FROM `posts` WHERE Username='" . $username . "'");
30: $totalposts = mysql_num_rows($totalposts);
31: $totalposts =mysql_fetch_row($totalposts);
32: $totalposts = $totalposts[0];

返回此错误:

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in       /home/a9091503/public_html/im/user.php on line 31

谢谢你们。 :)我希望你能搞清楚这一点。 :d

3 个答案:

答案 0 :(得分:1)

$res = mysql_query("SELECT COUNT(*) AS `count` FROM `posts` WHERE Username='$username'");
$row = mysql_fetch_assoc($res);
$totalposts = $row['count'];

答案 1 :(得分:0)

$posts=mysql_query("SELECT * FROM `posts` WHERE Username='" . $username . "'");
$totalposts = mysql_num_rows($posts);
print "total posts by user = ".$totalposts

如果您想显示评论或根据评论数量采取其他行动,您可以查询此查询。 (这会减少多个查询,例如行数和内容之一)

如果您只对评论数量感兴趣 - 请使用以上答案中已建议的以下查询。

SELECT count(*) FROM `posts` WHERE Username='$username'

答案 2 :(得分:0)

试试这个;

$totalposts=mysql_query("SELECT COUNT(postID) FROM `posts` WHERE Username='" . $username . "'"); 

$totalposts=mysql_query("SELECT COUNT(*) FROM `posts` WHERE Username='" . $username . "'"); 
$result= mysql_query($totalpost);
$totalposts = mysql_result($result, 0, 0) // return first row and first col
echo $totalpost;