2010-06-18 35 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子句。