Подсчёт количества строк в таблице MySQL

Опубликовано 2011.08.07

Всем нам наверняка приходилось подсчитать количество строк в той или иной таблице,или выборке. Сделать это можно различными способами. В той или иной ситуации можно использовать любой из этих способов. Рассмотрим самый простой способ. Просто сделаем выборку и при переборе всех строк накрутим счётчик, который и будет содержать количество строк.
  1. $i=0;
  2. $sql='select * from `table`';
  3. $res=mysql_query($sql);
  4. while($row=mysql_fetch_assoc($res)){
  5. $i++;
  6. }
  7. echo 'В таблице '.$i.' строк';
Недостаток данного метода-это извлечение значений всех столбцов таблицы(когда нам это не надо). Использовать такой подход можно в том случае, когда при обходе таблицы базы данных вы совершаете другие операции. Например нам надо извлечь имена пользователей и сложить их в массив:
  1. $i=0;
  2. $sql='select name from `users`';
  3. $res=mysql_query($sql);
  4. while($row=mysql_fetch_assoc($res)){
  5. $users_name[]=$row['name'];
  6. $i++;
  7. }
  8. echo 'В таблице '.$i.' пользователей';
Таким образом мы убили двух зайцев: сформировали массив и подсчитали количество строк. Также обратите внимание на то, что из таблицы мы извлекали только поле name, а не *. Старайтесь всегда извлекать только нужные вам поля,т.к. при больших объёмах данных это будет играть существенную роль. В конкретном случае можно подсчитать и количество элементом массива $users_name[] функцией count.
  1. $count_users = count($users_name);
Второй метод. Использование функции mysql_num_rows. Посчитаем количество животных в таблице pets.
  1. $sql='select * from `pets`';
  2. $res=mysql_query($sql);
  3. $count_pets = mysql_num_rows($res);
  4. echo 'В таблице '.$count_pets.' животных';
Третий способ. Найдем количество автомобилей в таблице cars.
  1. $sql='select count(*) as count_cars from `cars`';
  2. $res=mysql_query($sql);
  3. $counts=mysql_fetch_assoc($res);
  4. $count_cars=$counts['count_cars'];
  5. echo 'В таблице '.$count_cars.' автомобилей';
И четвёртый способ.Подсчитаем количество голосов в таблице.
  1. $sql='select SQL_CALC_FOUND_ROWS * from `golosa`';
  2. $res=mysql_query($sql);
  3. $count_golos=mysql_num_rows($res);