通过返回的行数获取用户拥有的帖子数


Getting the number of posts a user has by the number of rows returned?

所以我有一个问题。我有我正在处理的聊天/IM网站,我正在制作一个用户个人资料页面。我想显示该用户有多少帖子。

我之前遇到的另一个问题是,当我调用某个值时,它会返回一个"资源 #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

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

试试这个;

$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;
$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'