前回のおさらい
今回はsqlでデータベースにアクセスして投稿記事の総件数を取得する話をしていきます。
前回は、投稿記事をselect文でデータを部分一致でとってくる話 wordpressのためのsql
復習になりますが、
$sql = 'SELECT * FROM wp_posts WHERE post_status = "publish" AND post_title LIKE "%クエスト%" ';
検索文字の両側に%をつけると投稿記事のタイトルが???クエスト???の前方と後方の一致になります。
記事の総件数を取得する
今回は記事の総件数を取得します。
前にPaginationを実装する記事を書きましたが、その時に総件数を入れなければなりませんでしたね。
その記事が->SQLのLIMITを使ってページネーションを実装する話(コード記載編)
とSQLのLIMITを使ってページネーションを実装する話(コード無し編)
投稿記事の総件数を取得するsqlが下記
$sql = "SELECT count(*) as count FROM wp_posts WHERE post_status = 'publish' AND post_type = 'post' ";
簡単に訳すと「wp_postsテーブルから公開済みでかつ投稿記事を選び count(*) as count(総件数)で集計します。」ですね。
このsqlでデータベースに問い合わせをして返ってきた値(総件数)をPaginationクラスに渡してあげます。
補足:取得データのアクセス方法
返ってきた変数をそのまま使ってはいけません。配列又はオブジェクトで返ってきています。
オブジェクトの場合
$count_result->テーブルのカラム名
配列の場合
(前に紹介したDBManagerクラスを使った場合↓
)
$count_result[0]["テーブルのカラム名"];
上記のものを改めて変数に入れて使うか?そのまま使うかは自由です。
補足:asはアクセスネームの変更
as を使った場合、asはアクセスネームの変更になりますので、
$count_result->asの後に指定した名前; $count_result[0]["asの後に指定した名前"];
になります。
今回は以上になります。
2年くらい前に私は下記の本で勉強しました。(初版)
|
|