タイトル
良いタイトルが思い浮かばなかった。そして長い割に何のことか分からんものになってしまった。
何がいいたいのかというと、前項のPHP:ブログ用の評価フォームを作るで作った、各エントリの一番下に表示してるアンケートの結果のスコアの高いものを、このページの左にあるように一覧表示してやろうというもの。
構想
やるべきことは、
- データベースからアンケートの結果を得る。
- アンケート結果からスコアを計算する。
- スコア準にソートしてやる。
- 上位から設定した件数のエントリのタイトルと投稿日時をMovableTypeのデータベースから読む。
- 一覧リンクを出力する。
特にてこずったのは初めての2次元配列のソートぐらいかな。
それについては別項に詳しく覚え書きを。(予定)
ソース
ここで動いてるソースはこれ。
high_scored.php
これをMovableTypeのテンプレートの中でインクルードしてやる。
アンケート用のDBに接続したときは結果を一気に取得するので、一度に$itemの中に入れてやってあとから結果を配列に入れるが、MT用のDBからタイトルとかを取得するときは順序がばらばらなので一気に取得出来なかった。
ちなみに単純な実行結果は、
https://blog.genkikko.net/etc/high_scored.php
こんなんなので、ページ内にインクルードするときに適当に体裁を整える。
どうでもいいことかもしれんけど、このエントリ全部通勤電車の中でEMONEで書いた。初の快挙。まぁでもスクリプトはパソコンで書いたけどね。
YSAK
SQLで集計、ソートまで行って出力できると思うが
どちらの方が処理が早いんじゃろね
げんき
ほーほーほー。
なるほど。
実は一瞬それを試みようとしたんですが、
俺SQL全然知らないという厚く熱く大きな高い壁が立ちはだかって、結局こんな方法にしてしまいますた。
ちょっとちゃんと調べてSQLでソートするパターンも書いてみて、処理時間の比較やってみますわ。
結果は後ほど・・・