wpdb печать get_results построчно и по столбцам

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

Я хочу создать универсальное отображение таблицы в WordPress, где единственным входным параметром является имя таблицы

Как мне это сделать?

для каждой строки в строках таблицы

для каждого столбца в строке

Ответ или решение

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

Шаги реализации

  1. Подключение к базе данных: WordPress уже включает в себя экземпляр класса wpdb, который можно использовать.

  2. Получение данных: Используйте метод get_results для извлечения данных из указанной таблицы.

  3. Отображение данных: Используйте вложенные циклы foreach для итерации по строкам и колонкам.

Пример кода

Вот пример функции, которую вы можете использовать в вашем файле темы или в плагине:

function display_table_data($table_name) {
    global $wpdb;

    // Получаем все данные из заданной таблицы
    $results = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}{$table_name}", ARRAY_A);

    // Проверяем, есть ли данные для отображения
    if (empty($results)) {
        echo '<p>Нет данных для отображения.</p>';
        return;
    }

    // Начинаем вывод HTML-таблицы
    echo '<table border="1">';
    echo '<thead><tr>';

    // Вывод заголовков
    foreach (array_keys($results[0]) as $column_name) {
        echo "<th>" . esc_html($column_name) . "</th>";
    }
    echo '</tr></thead>';
    echo '<tbody>';

    // Вывод данных построчно
    foreach ($results as $row) {
        echo '<tr>';
        foreach ($row as $column_value) {
            echo '<td>' . esc_html($column_value) . '</td>';
        }
        echo '</tr>';
    }

    echo '</tbody>';
    echo '</table>';
}

Использование функции

Чтобы использовать эту функцию, просто вызовите её, передав имя таблицы, чтобы отобразить данные:

display_table_data('your_table_name'); // Замените 'your_table_name' на нужное имя таблицы

Объяснение кода

  • global $wpdb: Мы получаем доступ к глобальному объекту $wpdb, который позволяет выполнять SQL-запросы к базе данных.
  • get_results: Этот метод извлекает данные из базы данных и возвращает массив ассоциативных массивов, если задан параметр ARRAY_A.
  • Проверка наличия данных: Если данных нет, выводится сообщение. Это предотвратит возникновение ошибок при попытке доступа к несуществующим элементам.
  • Отображение заголовков: Заголовки таблицы создаются на основе ключей первого элемента массива, что делает функцию универсальной для любых таблиц.
  • Вывод данных: Данные выводятся в строки и ячейки таблицы, при этом каждый элемент очищается с помощью esc_html() для предотвращения XSS-уязвимостей.

Этот подход позволяет вам легко отображать содержимое любой таблицы в WordPress, просто передавая её имя.

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

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