「WordPressで学ぶPHP(4)通信編」を発売しました。
本書は、「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造編」「WordPressで学ぶPHP(3)関数編」の続編にあたり、Webブラウザとサーバー(PHP)との通信と、PHPから他のサーバーに通信することについて解説します。
SQLToolsプラグイン(その4・一般のSQLを実行する)
SQLToolsプラグインでは、一般のSQLを実行することもできます。
1.SQLの作成
一般のSQLを実行する場合、SQLの書き方には特に制限はありません。
「SQLクエリ」→「新規」メニューでSQLを作成しておきます。
2.SQLの結果を出力するテンプレートタグ
SQLの結果を出力するには、以下のテンプレートタグを組み合わせます。
2-1.MTSQLRowsタグ
MTSQLRowsタグは、SQLを実行して、その結果を順に出力するブロックタグです。
「name」モディファイアで、実行するSQLの名前を指定します。
2-2.MTSQLColumnタグ
個々の結果から、特定のカラムの値を出力するファンクションタグです。
「column」モディファイアで、出力するカラムの名前を指定します。
2-3.MTSQLRowCountタグ
SQLで読み込んだ行(レコード)の数を出力するファンクションタグです。
2-4.MTSQLRowsHeader/MTSQLRowsFooterタグ
MTSQLRowsタグのブロックの中で、繰り返しの最初/最後を判断するブロックタグです。
2-5.MTSQLRowsGroupHeader/MTSQLRowsGroupFooterタグ
MTSQLRowsタグのブロックの中で、結果を特定のカラムの値でグループ化して出力する際に使います。
MTSQLRowsGroupHeaderタグは、カラムの値が変わった直後の繰り返しかどうかを判断します。
一方、MTSQLRowsGroupFooterタグは、カラムの値が変わる直前の繰り返しかどうかを判断します。
年別ごとにオブジェクトの数を集計して、年毎にグループ化して出力するような際に、このタグを使うことができます。
2-6.MTSQLValueタグ
SQLの結果が1行だけで、なおかつその行にカラムが1つしかない場合は、MTSQLRowsタグの代わりに、MTSQLValueというテンプレートタグを使います。
3.事例
IDが1番のブログで、アップロードしたアイテムの数を月ごとに集計して出力したいとします。
この場合、SQLは以下のように作ります。
SELECT YEAR(asset_created_on) AS year, MONTH(asset_created_on) AS month, COUNT(*) AS count FROM mt_asset WHERE asset_blog_id = 2 GROUP BY year, month
また、テンプレートは以下のように書きます。
「○○○」にはSQLにつけた名前を指定します。
<mt:SQLRows name="○○○"> <mt:SQLRowsHeader> <table> <tr> <th>年</th><th>月</th><th>数</th> </tr> </mt:SQLRowsHeader> <tr> <td><$mt:SQLColumn column="year"$></td> <td><$mt:SQLColumn column="month"$></td> <td><$mt:SQLColumn column="count"$></td> </tr> <mt:SQLRowsFooter> </table> </mt:SQLRowsFooter> </mt:SQLRows>