Использование get_results с wpdb
Я пытаюсь получить информацию из базы данных. Я хотел отобразить все страницы используя этот запрос, но получаю пустой МАССИВ
global $wpdb;
$result = $wpdb->get_results (
"
SELECT *
FROM $wpdb->wp_posts
WHERE post_type = 'page'
"
);
echo $result; // отображение данных
Вывод:
ARRAY
РЕДАКТИРОВАНИЕ: После внесения предложенных изменений, я теперь использую следующий код, но все равно не получаю никаких результатов:
global $wpdb;
$posts = $wpdb->wp_posts;
$result = $wpdb->get_results( " SELECT * FROM $posts WHERE 'post_type' = 'page' " );
foreach ($result as $page) {
echo $page->ID.'<br/>';
}
Привет @balamurugan, я попробовал твой ответ, но до сих пор не получаю никаких результатов. Ты можешь посмотреть мою часть [EDIT] выше.
user1933824
Собственно, что ты получаешь и убрал ли ты ... из моего кода. Я проверил его и получаю все ID страниц.
Balas
Я использую свою часть [EDIT], как видно выше моего оригинального поста.
Я попробовал echo $result просто чтобы убедиться, что получаю данные из query, но получаю вывод Array. Когда я использую echo $page->ID, я не получаю ничего. Я действительно не понимаю почему...
user1933824
вам просто нужно полностью скопировать и вставить этот код. Это всё, что нужно сделать для получения результата.
Balas
да, это сработало! когда я сравнивал свой код и ваш, единственное отличие, которое я заметил, это часть $tablename = $wpdb->prefix.'posts'; этой части не было в документации codex. Можешь объяснить, почему это работает?
user1933824
У вас небольшое недопонимание:
При обращении к $wpdb вы получаете список свойств, содержащих основные названия таблиц:
// Пользовательский префикс из wp-config.php
// нужен только для пользовательских таблиц
$wpdb->prefix
// Таблицы, где префикс не нужен: встроенные таблицы:
$wpdb->posts
$wpdb->postmeta
$wpdb->users
Таким образом, ваш итоговый запрос будет выглядеть примерно так:
$wpdb->get_results( "SELECT * FROM {$wpdb->posts} WHERE post_type = 'page'" );
+1 за это, спасибо. Но я должен был отдать должное тому, кто ответил мне первым, он уже предоставил правильный ответ, я просто не смог следовать его инструкциям.
user1933824
Под "пустым массивом" вы имеете в виду 'пустой массив' или вывод 'ARRAY'? Если последнее, то это ожидаемый результат. Вам нужно пройтись по этому массиву и отобразить результаты соответствующим образом.
Ссылка: http://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results