回答:
確かに、get_row()
1つの結果が得られると予想される場合にのみ使用してください。get_results()
データベースからデータをプルするには3つの方法があります。
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();