2010-06-18 45 views
1

我创建了一个简单的函数,它接受用户标识并显示总计数量。岗位通过用户IDMysql计数行功能

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,如果没有找到记录

请帮

回答

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()代替selectiong所有用户的帖子可以是数据的大负荷。

+0

谢谢,它的工作原理 – Saqueib 2010-06-18 14:35:28

2

尝试此查询:

SELECT COUNT(*) FROM posts WHERE u_id=xx 

通过使用COUNT功能,您将保证0仍会被退回如果没有行匹配WHERE子句。