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 | Введено. |