Mysql функция подсчета строк - PullRequest
1 голос
/ 18 июня 2010

Я создал простую функцию, которая принимает идентификатор пользователя и отображает общее количество. поста по идентификатору пользователя

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 ]

3 голосов
/ 18 июня 2010
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() вместо выбора всех сообщений пользователей, что может быть большой загрузкой данных.

2 голосов
/ 18 июня 2010

Попробуйте этот запрос:

SELECT COUNT(*) FROM posts WHERE u_id=xx

Используя функцию COUNT, вы гарантированно получите 0, даже если ни одна строка не соответствует предложению WHERE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...