Відповіді:
Дійсно, використовуйте get_row()
лише тоді, коли ви очікуєте отримати один результат, інакше можете використовуватиget_results()
Існує три способи витягування даних із бази даних.
1 $wpdb->get_var
.: використовуйте це, щоб отримати єдине значення з таблиці бази даних. Як, якщо ви хочете порахувати загальну кількість коментарів. Це можна зробити наступним чином:
<?php
$comment_count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $wpdb->comments;"));
echo '<p>Total comments: ' . $comment_count . '</p>';
?>
2 $wpdb->get_row
.: Для отримання цілого рядка таблиці ви можете використовувати це.
Приклад:
<?php
$thepost = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE ID = 1" ) );
echo $thepost->post_title;
?>
АБО
<?php
$thepost = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE ID = 1" ), ARRAY_A );
print_r ($thepost);
?>
Використовуючи ARRAY_A
параметр get_row, дані вашої публікації повертаються як асоціативний масив. Крім того, ви можете використовувати ARRAY_N
параметр для повернення своїх публікацій в числовому індексованому масиві.
3 $wpdb->get_results
.: Стандартні SELECT
запити повинні використовувати функцію get_results для отримання декількох рядків даних із бази даних.
<?php
global $wpdb;
$allposts = $wpdb->get_results( $wpdb->prepare("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'publish'") );
foreach ($allposts as $singlepost) {
echo '<p>' .$singlepost->post_title. '</p>';
}
?>
і вам потрібен останній, як ви можете очікувати.
$wpdb->get_row('query', output_type, row_offset);
row_offset (ціле число) Бажаний рядок (0 - перший). За замовчуванням до 0.
моє рішення просте ..
<?php
function count_results() {
# use the data base
global $wpdb;
# Query to count all results from one table
$sql_count_results = '
SELECT count(*) as count
FROM `YOUR_TABLE`;';
# Ejecute function
$results = $wpdb->get_row( $sql_count_results , OBJECT );
# Return results
return $results->count;
}
Використання:
<?php
echo count_results();