Функция COUNT — подсчет количества записей | Трепачёв Дмитрий

Основные запросы

  • SELECT
    получение записей
  • INSERT
    вставка записей
  • UPDATE
    редактирование записей
  • DELETE
    удаление записей
  • COUNT
    подсчет записей

Условия выборки

  • WHERE
    условие
  • OR
    логическое ИЛИ
  • AND
    логическое И
  • ORDER BY
    сортировка
  • LIMIT
    ограничение выборки
  • BETWEEN
    выбор из промежутка
  • IN
    заданные значения
  • LIKE
    T поиск по шаблону
  • AS
    смена имен полей
  • DISTINCT
    уникальные значения
  • NOT
    отрицание
  • IS NOT NULL
    значение не равно NULL
  • IS NULL
    значение равно NULL

Группировка

  • GROUP BY
    группировка
  • HAVING
    условие на group by

Сложение строк

  • CONCAT
    сложение строк
  • CONCAT_WS
    сложение с разделителем
  • GROUP_CONCAT
    сложение ячеек

Несколько таблиц

  • UNION
    объединение таблиц
  • JOIN
    связывание таблиц
  • LEFT JOIN
    левый join
  • RIGHT JOIN
    правый join
  • INNER JOIN
    внутренний join
  • SELECT INTO
    копирование в другую таблицу

Длина строк

  • LENGTH
    длина строки

Изменение строк

  • LEFT
    вырезание слева
  • RIGHT
    вырезание справа
  • SUBSTRING
    взятие подстроки
  • MID
    взятие подстроки
  • SUBSTRING_INDEX
    взятие подстроки
  • REPLACE
    поиск и замена
  • LPAD
    дополнение строки слева
  • RPAD
    дополнение строки справа
  • REVERSE
    переворот строки
  • REPEAT
    повторение строки

Поиск по строкам

  • POSITION
    поиск подстроки
  • LOCATE
    поиск подстроки
  • INSTR
    поиск подстроки

Работа с пробелами

  • TRIM
    обрезание пробелов
  • LTRIM
    обрезание пробелов слева
  • RTRIM
    обрезание пробелов справа
  • SPACE
    строка из пробелов

Работа с регистром

  • LCASE, LOWER
    нижний регистр
  • UCASE, UPPER
    верхний регистр

Информация

  • DESCRIBE
    информация о таблице
  • SHOW DATABASES
    информация о базах данных
  • SHOW COLUMNS
    информация о полях таблицы

Условия

Полезное

Разное

  • Типы полей
  • Организация базы данных
    создание правильной структуры —>
  • Подзапросы
  • SELECT @min_price:=MIN(price),@max_price:=MAX(price) FROM shop; mysql> SELECT * FROM shop WHERE price=@min_price OR price=@max_price; https://habrahabr.ru/post/133781/ тут еще про переменные цикл получается SET @i = 0; SELECT * FROM product WHERE MOD(@i:=@i+1, 2) = 0; —>Переменные sql

Математические функции

  • MIN
    минимальное значение
  • MAX
    максимальное значение
  • SUM
    сумма полей
  • AVG
    среднее арифметическое
  • ROUND
    округление
  • FLOOR
    округление
  • CEILING
    округление
  • TRUNCATE
    усечение числа
  • ABS
    модуль числа
  • SIGN
    знак числа
  • MOD
    деление по модулю
  • POW, POWER
    степень числа
  • SQRT
    корень числа
  • RAND
    случайное число

Списки

  • LEAST
    минимальное из значений
  • GREATEST
    максимальное из значений
  • ELT
    строка по номеру
  • FIELD
    номер по строке

Извлечение части даты

  • DAY, DAYOFMONTH
    день из даты
  • MONTH
    месяц из даты
  • YEAR
    год из даты
  • HOUR
    часы из даты
  • MINUTE
    минуты из даты
  • SECOND
    секунды из даты
  • DATE
    дата из datetime
  • EXTRACT
    части даты
  • WEEKDAY
    день недели
  • DAYOFWEEK
    день недели
  • DAYNAME
    название дня недели
  • MONTHNAME
    название месяца
  • DAYOFYEAR
    номер дня в году
  • WEEK
    ET номер недели в году
  • YEARWEEK
    ET год и номер недели в году

Получение даты и времени

  • NOW, SYSDATE, CURRENT_TIMESTAMP
    текущие дата и время
  • CURRENT_DATE, CURDATE
    текущая дата
  • CURRENT_TIME, CURTIME
    текущее время

Преобразование даты

  • DATE_FORMAT
    смена формата даты
  • TIME_FORMAT
    смена формата времени
  • TO_DAYS
    дата в дни
  • FROM_DAYS
    дни в дату
  • SEC_TO_TIME
    секунды в time
  • TIME_TO_SEC
    время в секунды

Сложение дат

  • INTERVAL
    операции с датами
  • DATE_ADD, ADDDATE
    сложение дат
  • DATE_SUB, SUBDATE
    вычитание дат ?
  • PERIOD_DIFF
    ? —>

Тригонометрия

  • SIN
    ?
  • COS
    ?
  • TAN
    ?
  • COT
    ?
  • ASIN
    ?
  • ACOS
    ?
  • ATAN
    ?
  • ATAN2
    ?
  • PI
    ?
  • DEGREES
    ?
  • RADIANS
    ?
  • RADIANS
    ?

Отдельные символы

  • ASCII
    ?
  • ORD
    ?
  • CHAR
    ?

Системы счисления

  • BIN
    ?
  • OCT
    ?
  • HEX
    ?

Функция COUNT подсчитывает количество записей в таблице.

Условие, по которому будут выбираться записи, задается с помощью команды WHERE.

Команда WHERE не является обязательной, если ее не указать — будут подсчитаны все записи в таблице.

См. также команду DISTINCT, которая позволяет подсчитывать только уникальные значения поля.

См. также команду GROUP BY, которая позволяет группировать записи и затем с помощью COUNT подсчитывать количество в группах.

Синтаксис

Подсчет всех записей:

Подсчет всех записей, где заданное поле не равно NULL:

Только уникальные значения поля:

Примеры

Все примеры будут по этой таблице workers, если не сказано иное:

id
айди
name
имя
age
возраст
salary
зарплата
1 Дима 23 400
2 Петя 25 500
3 Вася 23 500
4 Коля 30 1000
5 Иван 27 500
6 Кирилл 28 1000

Пример

Давайте подсчитаем всех работников с возрастом 23 года:

Результат выполнения SQL запроса:

count
результат подсчета
2

Пример

Давайте подсчитаем количество разных зарплат (их будет 3 штуки: 400, 500 и 1000):

Результат выполнения SQL запроса:

count
результат подсчета
3

Пример

Давайте подсчитаем одновременно количество разных возрастов и количество разных зарплат:

Результат выполнения SQL запроса:

count1
количество возрастов
count2
количество зарплат
5 3

Меняем таблицу для примеров

Все примеры ниже будут по этой таблице workers, если не сказано иное:

id
айди
name
имя
age
возраст
salary
зарплата
1 Дима 23 NULL
2 Петя 25 500
3 Вася 23 NULL

Пример

Давайте подсчитаем количество всех записей:

Результат выполнения SQL запроса:

count
результат подсчета
3

А теперь подсчитаем количество зарплат, не равных NULL:

Функция COUNT (Transact-SQL) COUNT (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Azure Synapse Analytics (Хранилище данных SQL) Parallel Data Warehouse APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse

Эта функция возвращает количество элементов, найденных в группе. This function returns the number of items found in a group. Функция COUNT работает подобно функции COUNT_BIG. COUNT operates like the COUNT_BIG function. Эти функции различаются только типами данных в возвращаемых значениях. These functions differ only in the data types of their return values. Функция COUNT всегда возвращает значение типа данных int. COUNT always returns an int data type value. Функция COUNT_BIG всегда возвращает значение типа данных bigint. COUNT_BIG always returns a bigint data type value.

Синтаксические обозначения в Transact-SQL Transact-SQL Syntax Conventions

Синтаксис Syntax

Аргументы Arguments

ALL ALL
Применяет агрегатную функцию ко всем значениям. Applies the aggregate function to all values. Аргумент ALL используется по умолчанию. ALL serves as the default.

DISTINCT DISTINCT
Указывает, что функция COUNT возвращает количество уникальных значений, не равных NULL. Specifies that COUNT returns the number of unique nonnull values.

expression expression
Выражение любого типа, кромеimage, ntext и text. An expression of any type, except image, ntext, or text. Обратите внимание, что функция COUNT не поддерживает агрегатные функции и вложенные запросы в выражении. Note that COUNT does not support aggregate functions or subqueries in an expression.

*
Указывает, что функция COUNT должна учитывать все строки, чтобы определить общее количество строк таблицы для возврата. Specifies that COUNT should count all rows to determine the total table row count to return. Функция COUNT(*) не принимает параметры и не поддерживает использование аргумента DISTINCT. COUNT(*) takes no parameters and does not support the use of DISTINCT. Для функции COUNT(*) не требуется параметр expression, так как по определению она не использует сведения о конкретном столбце. COUNT(*) does not require an expression parameter because by definition, it does not use information about any particular column. Функция COUNT(*) возвращает количество строк в указанной таблице с учетом повторяющихся строк. COUNT(*) returns the number of rows in a specified table, and it preserves duplicate rows. Она подсчитывает каждую строку отдельно. It counts each row separately. При этом учитываются и строки, содержащие значения NULL. This includes rows that contain null values.

OVER ( [ partition_by_clause ] [ order_by_clause ] [ ROW_or_RANGE_clause ] ) OVER ( [ partition_by_clause ] [ order_by_clause ] [ ROW_or_RANGE_clause ] )
partition_by_clause делит результирующий набор, полученный с помощью предложения FROM , на секции, к которым применяется функция COUNT . The partition_by_clause divides the result set produced by the FROM clause into partitions to which the COUNT function is applied. Если этот параметр не указан, функция обрабатывает все строки результирующего набора запроса как отдельные группы. If not specified, the function treats all rows of the query result set as a single group. order_by_clause определяет логический порядок выполнения операции. The order_by_clause determines the logical order of the operation. Дополнительные сведения см. в статье SELECT — предложение OVER (Transact-SQL). See OVER Clause (Transact-SQL) for more information.

Типы возвращаемых данных Return types

int int

Remarks Remarks

Функция COUNT(*) возвращает количество элементов в группе. COUNT(*) returns the number of items in a group. Сюда входят значения NULL и повторяющиеся значения. This includes NULL values and duplicates.

Функция COUNT(ALL expression) вычисляет expression для каждой строки в группе и возвращает количество значений, не равных NULL. COUNT(ALL expression) evaluates expression for each row in a group, and returns the number of nonnull values.

Функция COUNT(DISTINCT expression) вычисляет expression для каждой строки в группе и возвращает количество уникальных значений, не равных NULL. COUNT(DISTINCT expression) evaluates expression for each row in a group, and returns the number of unique, nonnull values.

Для возвращаемых значений, которые превышают значение 2^31-1, функция COUNT возвращает ошибку. For return values exceeding 2^31-1, COUNT returns an error. В таких случаях используйте вместо нее функцию COUNT_BIG . For these cases, use COUNT_BIG instead.

COUNT — это детерминированная функция, если она используется без предложений OVER и ORDER BY. COUNT is a deterministic function when used without the OVER and ORDER BY clauses. Она не детерминирована при использовании с предложениями OVER и ORDER BY. It is nondeterministic when used with the OVER and ORDER BY clauses. Дополнительные сведения см. в статье Детерминированные и недетерминированные функции. See Deterministic and Nondeterministic Functions for more information.

Примеры Examples

A. A. Использование функции COUNT и параметра DISTINCT Using COUNT and DISTINCT

В этом примере функция возвращает количество различных должностей, которые может иметь сотрудник Компания Adventure Works Cycles Adventure Works Cycles . This example returns the number of different titles that an Компания Adventure Works Cycles Adventure Works Cycles employee can hold.

Результирующий набор: Here is the result set.

Б. B. Использование функции COUNT(*) Using COUNT(*)

В этом примере функция возвращает общее количество сотрудников Компания Adventure Works Cycles Adventure Works Cycles . This example returns the total number of Компания Adventure Works Cycles Adventure Works Cycles employees.

Результирующий набор: Here is the result set.

В. C. Использование функции COUNT(*) совместно с другими статистическими функциями Using COUNT(*) with other aggregates

В этом примере показано, что функция COUNT(*) работает с другими статистическими функциями в списке SELECT . This example shows that COUNT(*) works with other aggregate functions in the SELECT list. В этом примере используется база данных AdventureWorks2012 AdventureWorks2012 . The example uses the AdventureWorks2012 AdventureWorks2012 database.

Результирующий набор: Here is the result set.

Г. D. Использование предложения OVER Using the OVER clause

В этом примере функции MIN , MAX , AVG и COUNT используются с предложением OVER , чтобы получить статистические значения для каждого из отделов в таблице HumanResources.Department базы данных AdventureWorks2012 AdventureWorks2012 . This example uses the MIN , MAX , AVG and COUNT functions with the OVER clause, to return aggregated values for each department in the AdventureWorks2012 AdventureWorks2012 database HumanResources.Department table.

Результирующий набор: Here is the result set.

Примеры: Azure Synapse Analytics (Хранилище данных SQL) Azure Synapse Analytics (SQL Data Warehouse) и Параллельное хранилище данных Parallel Data Warehouse Examples: Azure Synapse Analytics (Хранилище данных SQL) Azure Synapse Analytics (SQL Data Warehouse) and Параллельное хранилище данных Parallel Data Warehouse

Д. E. Использование функции COUNT и параметра DISTINCT Using COUNT and DISTINCT

В этом примере функция возвращает количество различных должностей, которые может иметь конкретный сотрудник компании. This example returns the number of different titles that an employee of a specific company can hold.

Результирующий набор: Here is the result set.

Е. F. Использование функции COUNT(*) Using COUNT(*)

В этом примере функция возвращает общее количество строк в таблице dbo.DimEmployee . This example returns the total number of rows in the dbo.DimEmployee table.

Результирующий набор: Here is the result set.

Ж. G. Использование функции COUNT(*) совместно с другими статистическими функциями Using COUNT(*) with other aggregates

В этом примере функция COUNT(*) работает с другими статистическими функциями в списке SELECT . This example combines COUNT(*) with other aggregate functions in the SELECT list. Запрос возвращает количество торговых представителей с годовой квотой продаж более 500 000 долл. США и их среднюю квоту продаж. It returns the number of sales representatives with an annual sales quota greater than $500,000, and the average sales quota of those sales representatives.

Результирующий набор: Here is the result set.

З. H. Использование функции COUNT с предложением HAVING Using COUNT with HAVING

В этом примере функция COUNT используется с предложением HAVING , чтобы получить список подразделений компании, в каждом из которых работает более 15 сотрудников. This example uses COUNT with the HAVING clause to return the departments of a company, each of which has more than 15 employees.

Результирующий набор: Here is the result set.

И. I. Использование функции COUNT с предложением OVER Using COUNT with OVER

В этом примере функция COUNT используется с предложением OVER , чтобы получить количество продуктов, содержащихся в каждом из указанных заказов на продажу. This example uses COUNT with the OVER clause, to return the number of products contained in each of the specified sales orders.

Результирующий набор: Here is the result set.

Выборка из двух таблиц с использованием count(*)

Наткнулся на вот такую проблему, бьюсь уже неделю

Суть проблемы:
Есть две таблицы. В одной записи, в другой список фотографий к конкретным записям.

table1
id title
1 запись 1
2 запись 2
3 запись 3

table2
id table1_id photo
1 1 1.jpg
2 1 2.jpg
3 3 3.jpg

на выходе хотелось бы получить таблицу вида
id title count_photo
1 запись 1 2
2 запись 2 0
3 запись 3 1

Как решить эту задачку? Гуру, отзовитесь!

12.05.2011, 20:46

Выборка из двух таблиц с использованием функции MAX
Здравствуйте! Требуется создать запрос из двух таблиц. Некоторые столбцы первой таблицы.

Выборка из трех таблиц с функцией count()
У меня имеется три таблицы, связанные внешним ключами: create table office(id_office INTEGER.

Выборка уникальных данных с использованием count, max
Суть запроса:Вывод ФИО клиентов и самый предпочитаемый вид услуги у каждого из них за год(выбран.

13.05.2011, 09:26 2 13.05.2011, 12:33 [ТС] 3

Спасибо, похоже на правду.
Но как то не совсем то получается.

Вот запрос
SELECT p1.id, count(p2.id) AS kol FROM parts p1 LEFT OUTER JOIN photos p2 ON p2.art = p1.id

На выходе получилось следующее:

13.05.2011, 12:44 4 13.05.2011, 14:51 [ТС] 5

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

13.05.2011, 14:51

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Не выходит получить Count из двух таблиц сразу
Hi, тракая проблема — есть таблица main и две дочерние к ней child1 и child2 Надо написать такой.

Обьединение двух условий с разных таблиц (WHERE, COUNT)
Пытаюсь всячески разно объединить эти два условия, но никак не получается. Надо получить ИД.

Выборка из двух таблиц
Всем привет. Есть 2 запроса: sSQL_M = «SELECT a.CRAYP3, a.MFIFP3 AS MARGA » & _ .

Выборка из двух таблиц
Доброе время суток! Есть две таблицы, который нужно сравнить и поместить отобранные записи в третью.

Mysql count с условием

В выражении SELECT мы можем вводить подзапросы четырьмя способами:

В условии в выражении WHERE

В условии в выражении HAVING

В качестве таблицы для выборки в выражении FROM

В качестве спецификации столбца в выражении SELECT

Рассмотрим некоторые из этих случаев. Например, получим все товары, у которых цена выше средней:

Чтобы получить нужные товары, нам вначале надо выполнить подзапрос на получение средней цены товара: SELECT AVG(Price) FROM Products .

Оператор IN

Нередко подзапросы применяются вместе с оператором IN , который выбирает из набора значений. И подзапрос как раз может предоставить требуемый набор значений. Например, выберем все товары из таблицы Products, на которые есть заказы в таблице Orders:

То есть подзапрос в данном случае выбирает все идентификаторы товаров из Orders, затем по этим идентификаторам извлекаютя товары из Products.

Добавив оператор NOT , мы можем выбрать те товары, на которые нет заказов в таблице Orders:

Стоит отметить, что это не самый эффективный способ для извлечения связанных данных из других таблиц, так как для сведения данных из разных таблиц можно использовать оператор JOIN, который рассматривается в следующей главе.

Получение набора значений

При использовании в операторах сравнения подзапросы должны возвращать одно скалярное значение. Но иногда возникает необходимость получить набор значений. Чтобы при использовании в операторах сравнения подзапрос мог возвращать набор значений, перед ним необходимо использовать один из операторов: ALL , SOME или ANY .

При использовании ключевого слова ALL условие в операции сравнения должно быть верно для всех значений, которые возвращаются подзапросом. Например, найдем все товары, цена которых меньше чем у любого товара фирмы Apple:

Если бы мы в данном случае опустили бы ключевое слово ALL, то мы бы столкнулись с ошибкой.

Допустим, если данный подзапрос возвращает значения vаl1, val2 и val3, то условие фильтрации фактически было бы аналогично объединению этих значений через оператор AND:

В тоже время подобный запрос гораздо проще переписать другим образом:

Как работает оператор ALL:

x > ALL (1, 2) эквивалентно x > 2

x эквивалентно x

x = ALL (1, 2) эквивалентно (x = 1) AND (x = 2)

x <> ALL (1, 2) эквивалентно x NOT IN (1, 2)

Операторы ANY и SOME условие в операции сравнения должно быть истинным для хотя бы одного из значений, возвращаемых подзапросом. По своему действию оба этих оператора аналогичны, поэтому можно применять любой из них. Например, в следующем случае получим товары, которые стоят меньше самого дорогого товара компании Apple:

И также стоит отметить, что данный запрос можно сделать проще, переписав следующим образом:

Как работает оператор ANY (а также SOME):

x > ANY (1, 2) эквивалентно x > 1

x эквивалентно x

x = ANY (1, 2) эквивалентно x NOT (1, 2)

x <> ANY (1, 2) эквивалентно (x <> 1) OR (x <> 2)

Подзапрос как спецификация столбца

Результат подзапроса может представлять отдельный столбец в выборке. Например, выберем все заказы и добавим к ним информацию о названии товара:

Подзапросы в команде INSERT

В команде INSERT подзапросы могут применяться для определения значения, которое вставляется в один из столбцов:

Подзапросы в команде UPDATE

В команде UPDATE подзапросы могут применяться:

В качестве устанавливаемого значения после оператора SET

Как часть условия в выражении WHERE

Так, увеличим в таблице Orders количество купленных товаров компании Apple на 2:

Или установим для заказа цену товара, полученную в результате подзапроса:

Подзапросы в команде DELETE

В команде DELETE подзапросы также применяются как часть условия. Так, удалим все заказы на Galaxy S8:

Выводим количество записей в таблице MySQL

Здравствуйте, уважаемый посетитель!

Прежде, чем приступит к следующей теме и заняться формами, хочу затронуть еще один вопрос по работе с базой данных MySQL, который был задан одним из пользователей. А именно: как вывести суммарное количество записей в таблице MySQL.

Ранее, в разделе Работа с БД MySQL, довольно подробно рассматривались различные действия с БД MySQL, от подключения к ней, до ввода/вывода данных. При этом, понятно, что имеется множество возможных операций с базой данных, и заведомо предусмотреть все случаи просто невозможно.

Однако, если появился конкретный вопрос, то считаю, его необходимо рассмотреть отдельно. Тем более, что такие задачи нередко могут возникать при работе с БД. И делать это будем на примере таблицы базы данных «url», которая используется для формирования динамических страниц создаваемого сайта «newsite.local».

  • Вариант с использованием SQL-функции count()
  • Вариант с использованием PHP-функции count()
  • Вариант с использованием PHP-функции mysqli_num_rows
  • Исходные файлы сайта

Вариант с использованием SQL-функции count()

Как отмечалось выше, здесь для примера будем использовать таблицу «url», которая на данный момент содержит 6 строк. Ниже приведен скриншот ее содержимого, сделанного с помощью веб-приложения «phpMyAdmin».

Рис.1 Скриншот содержимого таблицы «url»

Для вывода количества записей можно использовать разные способы. При этом, какой применять, в большой степени зависит от конкретной задачи.

Например, если требуется определить только число строк, без выполнения с ней каких-либо других операций, вполне уместно использовать SQL-функцию «count()». Которая возвращает эту величину в соответствии с определенными критериями.

В этом случае SQL-запрос будет иметь следующий вид: «SELECT COUNT(имя поля) FROM имя_таблицы WHERE условие». При этом, если вместо имени поля указать «*» и не применять условие, то будут подсчитаны абсолютно все имеющиеся записи без каких-либо условий.

Вот такой запрос для нашей задачи, где требуется определить все суммарные записи в таблице, мы и применим. А для этого воспользуемся аналогичными, ранее составленными PHP-функциями, предназначенными для работы с базой данных MySQL.

В данном случае за основу возьмем функцию по выводу одиночной строки, заменив в ней кроме имени и параметров еще и SQL-запрос на «SELECT COUNT(*) FROM `$table`». А также ассоциативный массив на числовой, в качестве ключей которого будут использоваться не наименования полей, а числовые индексы.

Следует отметить, что получить количество записей можно и не составляя отдельную функцию, а разместив необходимый скрипт непосредственно на HTML-странице. Однако, в этом случае такое решение будет не универсально, при котором потребуется каждый раз использовать один и тот же код при выполнении однотипных действий.

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

Для этого при ее вызове понадобится всего лишь в качестве аргумента указать имя таблицы — остальное будет выполняться составленной для этой цели универсальной функцией. PHP-код такой пользовательской функции приведен на рис.1.

//—-Функция определения количества строк таблицы MySQL————-

function countTable ($table) <

global $mysqli;

if ( !$result = $mysqli -> query ( «SELECT COUNT(*) FROM `$table`» )) <

die (‘При извлечении записей возникла ошибка: ‘ .$mysqli->errno. ‘ — ‘ .$mysqli->error );

$count = $result-> fetch_row ();

return $count[ 0 ];

Рис.2 Функция для определения количества записей с использованием SQL-функции count()

Здесь видно, что у вновь созданной функции с именем «countTable» параметром является переменная $table . Что позволяет ее использовать для любых имеющихся в базе данных таблиц.

При этом следует обратить внимание на то, что этот скрипт следует поместить в файл «functions.php» папки «mysql» корневого каталога создаваемого сайта «newsite.local», где расположены и остальные функции для работы с БД MySQL

И теперь, для проверки результата, добавим в начало файла «index.php» всего три PHP-строки, не считая комментария.

//—-Вывод количества записей с использованием SQL-функции count()—-

$count = countTable ($table);

echo ‘1 Количество записей в таблице ‘ . ‘»‘ .$table. ‘»‘ . ‘: ‘ .$count;

Рис.3 Вывод количества записей с использованием SQL-функции count()

Как видно, здесь в строке 3 переменной $table присвоено значение «url», соответствующее имени таблицы. А далее выполняется вызов функции «countTable», результат которой в виде переменной $count_bd через конструкцию echo выводится на страницу.

Если теперь открыть сайт, то в верхней части страницы должен отобразиться полученный результат, как показано на скриншоте.

Рис.4 Вывод количества записей с использованием SQL-функции count()

Таким образом мы получили нужное значение с помощью SQL-функции count(). А теперь сделаем то же самое иным способом, используя для этого одноименную не SQL, а PHP-функцию count().

Вариант с использованием PHP-функции count()

Данный способ целесообразно использовать в том случае, если помимо подсчета количества записей необходимо выполнить и их вывод. Тогда не нужно будет формировать отдельный SQL-запрос, как это делалось в предыдущем варианте, а достаточно будет использовать PHP-функцию count(), применив ее к полученному массиву, образованному при выводе данных из таблицы.

Для того, чтобы это проверить, можно использовать ранее составленные функции по выводу набора строк. В данном случае используем пользовательскую функцию для вывода всех строк без указания условия, PHP-код которой приведен в следующей таблице.

//—-Функция вывода набора всех строк таблицы——

function getAll ($table) <

global $mysqli;

if ( !$result = $mysqli -> query ( «SELECT * FROM `$table`» )) <

die (‘При извлечении записей возникла ошибка: ‘ .$mysqli->errno. ‘ — ‘ .$mysqli->error );

$array = array ();

while (( $row = $result -> fetch_assoc ()) != false ) <

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector