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

Рассмотрены вопросы:

  1. Подсчет строк в таблице базы данных MySql;
  2. Подсчет строк (записей) в таблице имеющие одинаковые значения в столбцах.

При составлении статьи использовались:

  • Система управления базами данных — MySQL Server 5.6;
  • Структурированный язык запросов MySQL;
  • Язык программирования PHP 5.3.10;
  • Стиль программирования — процедурный.
листинг 1.Подключение к БД.
$mysqli = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (mysqli_connect_errno()) {
   printf("Не удалось подключиться: %s ", mysqli_connect_error());
   exit();
   }

Для всех примеров (листинге 1) приведенных в статье подключение к базе одинаковое. При использовании в работающем приложении, следует изменить алгоритм действий в случае неудачного подключения (как вариант переадресация на error.html или на любую другую статическую страницу).

Подсчет строк в таблице.
листинг 2 $str = "SELECT COUNT(*) FROM table_name";
   if ($res = mysqli_query($mysqli, $str))
   {
   $row = mysqli_fetch_assoc($res);
   echo $row['COUNT(*)'];
   }

COUNT() — встроенная функция MySql

  • в качестве аргумента принимает имя столбца;
  • возвращает число строк в таблице, значения столбца для которых отличны от NULL;
  • если вместо имени столбца указать звездочку (*), вернет все строки таблицы, не зависимо от того есть значение NULL или нет.

В случае использования функции COUNT() в том виде как показано в листинге 2, название столбца в результирующей таблице совпадет с названием функции и ее параметрами, что бы это изменить необходимо назначить новое имя (псевдоним), для этого используется оператор AS.

AS — это ключевое слово MySql используя его в выражении можно в качестве имени столбца указать псевдоним. (листинг 3.)

листинг 3
   $str = "SELECT COUNT(*) AS count FROM table_name";
   if ($res = mysqli_query($mysqli, $str))
   {
   $row = mysqli_fetch_assoc($res);
   echo $row['count'];
   }

Подсчет строк (записей) в таблице имеющие одинаковые значения в столбцах.

листинг 4
$strCount = "SELECT COUNT(ID) AS count FROM pages WHERE author='1'";
   if ($res = mysqli_query($mysqli, $strCount))
   {
   $row = mysqli_fetch_assoc($res);
   echo $row['count'];
   }

Этот код вернет количество строк в таблице у которых в столбце author указано значение 1. В том случае если столбец, имя которого передано функции COUNT(ID) в качестве аргумента, может иметь в одной (или не одной) из строк значение NULL, следует указать в качестве аргумента звездочку.