Вопрос или проблема
У меня есть база данных ‘wp_db7_forms’ с полями ‘form_id’, ‘form_post_id’ и ‘form_date’. Я пытаюсь получить количество записей для конкретного ‘form_post_id’.
С помощью этого SQL-запроса в phpmyadmin
SELECT COUNT(form_id) FROM `wp_db7_forms` WHERE form_post_id=8420 LIMIT 0, 500;
Я получаю ожидаемый результат в 6 записей.
Когда я создаю PHP-запрос в phpmyadmin и копирую и вставляю его в шорткод, я не получаю ничего! Или иногда я получаю ошибку в формате и синтаксисе для одной строки SELECT COUNT FROM WHERE.
<?php
global $wpdb;
$wpdb->show_errors();
$results = $wpdb->get_results("SELECT COUNT(form_id) FROM`wp_db7_forms` WHERE form_post_id=8420 LIMIT 0, 500;";
echo "число" $results;
?>
Я продолжаю получать ошибку, которая говорит проверить мой синтаксис для MariaDB SELECT COUNT FROM WHERE. Я пытался изменить так много вещей, что теперь я сбит с толку. Я прочитал много страниц, но не смог добиться успеха. Мне 77, и мне сложно учиться. Я создал несколько запросов для ввода на веб-страницах, но этот меня одолел. Может кто-нибудь помочь?
Рекомендуется использовать метод $wpdb->get_var()
при получении количества строк. Этот метод вернет количество напрямую, а не внутри массива или объекта, как wpdb::get_results()
.
Ответ или решение
Чтобы вернуть количество записей из базы данных WordPress, необходимо использовать методы, рекомендуемые платформой WordPress для работы с базой данных. В описанном вами случае, вы хотите извлечь количество записей из таблицы wp_db7_forms
для определенного form_post_id
. Я приведу полный пример, как это сделать правильно.
Проблемы в тексте запроса
Ваш текущий SQL-запрос и код PHP имеют несколько проблем, которые могут вызвать ошибки и некорректные результаты. Ваша строка запроса имеет лишние элементы, такие как LIMIT
, которые не нужны при подсчете записей. Кроме того, синтаксическая ошибка в PHP коде также мешает выполнению.
1. SQL-запрос
Вы можете использовать следующий SQL-запрос:
SELECT COUNT(form_id) FROM `wp_db7_forms` WHERE form_post_id = 8420;
2. Использование метода $wpdb->get_var()
Метод $wpdb->get_var()
лучше всего подходит для получения единственного значения, такого как результат COUNT. Запрос станет более лаконичным и элегантным:
3. Правильный PHP код
Вот как будет выглядеть ваш исправленный PHP код:
<?php
// Подключение к глобальной базе данных WordPress
global $wpdb;
// Показать ошибки для отладки
$wpdb->show_errors();
// Выполнение запроса для получения количества записей
$count = $wpdb->get_var("SELECT COUNT(form_id) FROM `wp_db7_forms` WHERE form_post_id = 8420;");
// Вывод результата
echo "Количество записей: " . $count;
?>
Объяснение кода
- global $wpdb; — позволяет вам доступ к объекту базы данных WordPress.
- $wpdb->show_errors(); — включает отображение ошибок, чтобы вы могли легко увидеть, что пошло не так, если ошибки возникнут.
- $wpdb->get_var() — выполняет запрос и возвращает единственное значение. Это идеально подходит для запросов, которые возвращают одно значение, например, COUNT.
- В конце мы выводим количество записей, используя функцию
echo
.
Заключение
С помощью приведенного выше кода, вы сможете получить количество записей для конкретного form_post_id
из вашей базы данных wp_db7_forms
. Убедитесь, что вы правильно скопировали код на свой сайт, и исправили любые возможные ошибки, если они возникают.
Если у вас возникнут дополнительные вопросы или трудности, не стесняйтесь обращаться за помощью! Успехов в работе с WordPress!