Как вернуть количество записей из базы данных WordPress

Вопрос или проблема

У меня есть база данных ‘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!

Оцените материал
Добавить комментарий

Капча загружается...