以前から本ブログの右サイドバーにBGMとしてUnicornのiTunesリンクと同サンプルの再生機能を置いていました。
そこそこ評判が良かった(?)ので、勉強がてらランダムで私のおすすめの楽曲が登場するように改修してみました!
仕組みは簡単で、
- 予め、DBに楽曲データを登録しておく
- ページが開かれた時にDBに投入されているデータからランダムに1つ楽曲データを取り出す
- 取り出したデータをHTMLの形に合わせて出力する
です。
今まではHTMLで静的に出力していただけですが、今回はDB+PHP⇒HTMLの構成にしました。
PHPでのプログラムでは色々組んできましたが、DBとやり取りするプログラムは作ったことなかったんですよね。
今回は勉強もかねてDBの操作をするプログラムを組んでみました。
といっても書き込みは無し、読み込みのみです。
DBへのアクセスは、mysqli関数を使用。
DBからテーブル内のレコード数を取得し、その情報を基にランダムに呼び出すID値を決定。
その後、該当するIDのレコードを抽出してくる仕組みを実装しました。
DBに2回アクセスしているので、アクセス回数を削減できないか調べていたところ、
「ORDER BY RAND() LIMIT 1」という命令を飛ばすことでアクセスを1回で済ませられることが分かりました。
DBに投入しているデータが多い場合は扱い方に注意(負荷が高くなってしまうケースがある)ということでしたが、今回は多くなっても2、300件の件数なのでこの方法にシフトしてみました。
後分かったのが”ウィジェットではPHPは実行できない”ということ。
これ、知りませんでした。。。
今回はプラグインを作る時間はなかったので、以下のプラグインを導入することで解決させました。
このウィジェットは、PHPコードを記載し、ウィジェットメニューに置くことでPHPコードが実行できるようになるプラグインです。
プラグインでウィジェットを開発するほどじゃない場合は、お手軽な方法ですね。
プログラムの行数はそれほど多くはなりませんでしたが、データの作成が大変ですね。。。
iTunesのWeb APIを使用して必要なデータを抽出しているのですが、抽出⇒データ成型のプログラムを別で用意したほうが良いような気がしますw
で、出来上がったものは↓のように表示されます。(右サイドバーを見てもらった方が分かるかも)
この記事を書いているときで30曲ほど登録しました。
大半がガンダム関連、angela関連ですがねw
空き時間を見て100曲くらいは登録しようと思っていますので、試聴してみてください。
あと、iTunesで楽曲を購入される場合は、以下のページを活用いただければと思います。
今後も作ってみたいものをブログで表現したりすると思いますので、Siva’s Blogをよろしくお願いいたします。
コメント