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

Опубликовано 2011.08.07 в разделе MySQL

Всем нам наверняка приходилось подсчитать количество строк в той или иной таблице,или выборке. Сделать это можно различными способами. В той или иной ситуации можно использовать любой из этих способов. Рассмотрим самый простой способ. Просто сделаем выборку и при переборе всех строк накрутим счётчик, который и будет содержать количество строк.
  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);

9 Комментариев

Оставить комментарий

  1. Гость 2013/03/08

    Подскажите пожалуйста как подсчитать количество заказов от name1 для name2?

    Ответить

    1. Админ 2013/03/09

      Запрос будет таким:

      1. $sql="
      2. SELECT COUNT(*)
      3. FROM `table_name`
      4. WHERE name1='first name' AND name2='second name'";

      Ответить

  2. Гость 2012/04/16

    зачем так растягивать код?

    1. echo 'В таблице '.mysql_num_rows(mysql_query("SELECT * FROM `table`")).' строк';

    Ответить

    1. Админ 2012/04/16

      Согласен с вами,но новички так не поймут))

      Ответить

      1. Гость 2013/10/10

        Вообще то только так и понял. А у вас расписано что-то как то... И без коментов... %)

        Ответить

        1. Админ 2013/10/10

          Скрипт на 4 строчки-чего тут ещё комментировать?:)

          Ответить

  3. Гость 2012/03/27

    Вообще-то,
    $sql='select * from `pets`';
    $res=mysql_mysql_query($sql);
    $count_pets = mysql_num_rows($res);
    echo 'В таблице '.$count_pets.' животных';
    неправильно.

    Правильно так:

    $sql='"select * from pets"';
    $res=mysql_query($sql);
    $count_pets = mysql_num_rows($res);
    echo 'В таблице '.$count_pets.' животных';

    Ответить

    1. Админ 2012/03/28

      Да,опечатка закралась.Спасибо,поправил.

      Ответить

  4. Гость 2011/12/19

    Спасибо за справку. Помогло.

    Ответить

Ваш комментарий успешно создан

Ваш комментарий

  • Для выделения кода оберните его в тэги <code> и </code>
  • Отметьте знак процентов