wpdb::get_results()
Отримує всі дані вказаного запиту (всі рядки та колонки). Результат повертається як масиву. Кожен елемент масиву – це об’єкт з даними окремого рядка таблиці.
{} Це метод класу: wpdb{}
Хуків немає.
Повертає
Массив|Объект|null. Результат запиту до бази даних. Поверне:
Массив объектов– коли $output = OBJECT або OBJECT_K .Массив массивов– коли $output = ARRAY_A або ARRAY_N .array()— коли рядків на запит не знайдено або помилка запиту.NULL— коли запит порожній рядок або передано неправильний тип виведення ( $output_type ).
Використання
Global $wpdb; $wpdb->get_results($query, $output);
- $query
(рядок) Запит, який потрібно виконати.
Можна встановити цей параметр значення null , тоді функція поверне результат останнього запиту, який було зроблено.
Типово: null
- $output
(константа/рядок) Прапор вказує у якому вигляді потрібно повернути дані. Можливі 4 варіанти:
OBJECT– Поверне масив об’єктів з числовими ключами – елементи масиву будуть об’єкти рядків таблиці –[ 0 => object ].OBJECT_K— схожий на попередній, лише в індексах головного масиву будуть значення першої колонки результату запиту —[ 'field' => object ].
Зверніть увагу, якщо в індекс будуть потрапляти однакові значення, дані будуть затиратися.ARRAY_N– Поверне індексний масив, кожен елемент якого буде так само індексним масивом –[ 0 => [...] ].ARRAY_A– Поверне індексний масив, кожен елемент якого буде асоціативним масивом, в якому ключем буде назва колонки –[ 'field' => [...] ].
Типово: OBJECT
Приклади
#1 Отримаємо ID та заголовки чернеток, ID автора яких дорівнює 5 і виведемо на екран заголовки постів.
$fivesdrafts = $wpdb->get_results( "SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'draft' AND post_author = 5");
foreach ( $fivesdrafts as $fivesdraft ) {
echo $fivesdraft->post_title;
}#2 Виведемо на екран посилання на чернетку автора з ID = 5
<?php
$fivesdrafts = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE post_status = 'draft' AND post_author = 5");
if($fivesdrafts):
foreach( $fivesdrafts as $post ){
setup_postdata($post);
?>
<h2><a href="<?php the_permalink(); ?>" rel="bookmark"
title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2>
<?php
}
else :
?>
<h2> Не знайдено</h2>
<?php endif; ?>#3 Приклад складного запиту з GROUP BY (відгуків у WooCommerce)
/**
* Повертає результати рейтингу (відгуків у WooCommerce) згрупований за оцінками
*
* @param int $post_id ідентифікатор посту
*
* @return array масив об'єктів, де кожен об'єкт - згруповані дані за однією з оцінок
*/
function get_cnt_rating_reviews_one_product( $post_id ){
Global $wpdb;
return $wpdb->get_results( $wpdb->prepare(
"
SELECT COUNT(meta.meta_id) як num, meta.meta_value
FROM $wpdb->comments as comments
INNER JOIN $wpdb->commentmeta як meta ON comments.comment_ID = meta.comment_id
WHERE comments.comment_post_ID = %d AND meta_key = 'rating'
GROUP BY meta.meta_value;
",
$post_id
)));
}
// Використання
get_cnt_rating_reviews_one_product(4350);
список змін
| З версії 0.71 | Введено. |