Mysql计数行功能

时间:2010-06-18 13:21:23

标签: mysql function

我创建了一个简单的函数,它接受用户ID并显示总数。用户ID的帖子

function totalpost($user_id){
$sql = 'SELECT * FROM posts WHERE u_id='.$user_id;
$total = mysql_num_rows(mysql_query($sql)) or die(mysql_errno());
return $total;

}

它的工作正常,但是当找到0记录时,它不会返回任何内容。

如果找不到记录,我想返回0

请帮忙

2 个答案:

答案 0 :(得分:3)

function totalpost($user_id){
  $sql = 'SELECT count(*) FROM posts WHERE u_id='.intval($user_id);
  $res = mysql_query($sql)) or trigger_error(mysql_error().$sql);
  $row = mysql_fetch_row($res);
  return $row[0];
}

不是因为你需要0,而是因为你必须总是使用count()而不是选择所有用户的帖子,这些帖子可能是大量的数据。

答案 1 :(得分:2)

尝试此查询:

SELECT COUNT(*) FROM posts WHERE u_id=xx

通过使用COUNT函数,即使没有符合WHERE子句的行,也可以保证返回0。