Однажды я столкнулся с тем, что мне нужно было посчитать количество строк в таблице SQL, но многие из предлагаемых в интернете решений у меня не работали. И всё же я нашёл выход.
Начнем с самого простого и очевидного. Допустим, вам не нужно использовать полученный результат в коде, а просто узнать количество строк, только и всего.
Тогда заходим в phpMyAdmin (localhost/tools/phpmyadmin — для Денвера, localhost/phpMyAdmin для MAMP), затем выбираем нужную базу данных, после этого выбираем таблицу, количество строк в которой нужно выяснить, и видим следующее сообщение:
Вот так выглядит сам SQL-запрос:
SELECT COUNT(1) FROM название_таблицы
SQL-запрос с условием:
SELECT COUNT(1) FROM название_таблицы WHERE условие
Реализация на PHP:
$a = mysql_query("SELECT COUNT(1) FROM название_таблицы"); $b = mysql_fetch_array( $a ); echo $b[0]; // выведет число строк
Аналогичным образом сюда можно добавить условие. Тогда код выведет число строк в таблице, удовлетворяющих условию.
Этот способ позволяет подсчитать количество строк результата запроса.
Например в WordPress посты хранятся в таблице wp_posts
, таким образом мы можем узнать сколько записей (типов постов) хранится в базе данных в таблице MySQL. Этот код дан только для примера (или для случаев, когда среда WordPress не подгружена), так как в WordPress подключение к базе данных осуществляется через класс $wpdb.
/* * для начала подключимся к базе данных * возможно вы уже подключились к ней ранее * пользователь root и пустой пароль - настройки по умолчанию для Денвера */ $connect_db = mysqli_connect( "localhost", "root", "", "truemisha_database" ); /* * SQL запрос * у меня в качестве названия таблицы указана таблица с записями WordPress */ $posts = mysqli_query( $connect_db, "SELECT * FROM wp_posts" ); /* * задействуем функцию mysql_num_rows() */ $num_rows = mysqli_fetch_row( $posts )[0]; echo "Количество записей на вашем блоге WordPress: $num_rows \n";
В результат будут включены абсолютно все записи. А как узнать количество только тех, которые опубликованы? Для этого нам потребуется немного изменить SQL-запрос.
$posts = mysqli_query( $connect_db, "SELECT * FROM wp_posts WHERE post_status='publish'" );
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.
нормально, как раз искал, как можно вывести количество записей
В PHP7 подключение таким способом не будет работать
Обновил, спасибо