【鯖運営】BGMウィジェットを改修しました


以前から本ブログの右サイドバーにBGMとしてUnicornのiTunesリンクと同サンプルの再生機能を置いていました。

そこそこ評判が良かった(?)ので、勉強がてらランダムで私のおすすめの楽曲が登場するように改修してみました!

 

仕組みは簡単で、

  1. 予め、DBに楽曲データを登録しておく
  2. ページが開かれた時にDBに投入されているデータからランダムに1つ楽曲データを取り出す
  3. 取り出したデータを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 Code Widget

このウィジェットは、PHPコードを記載し、ウィジェットメニューに置くことでPHPコードが実行できるようになるプラグインです。

プラグインでウィジェットを開発するほどじゃない場合は、お手軽な方法ですね。

 

プログラムの行数はそれほど多くはなりませんでしたが、データの作成が大変ですね。。。
iTunesのWeb APIを使用して必要なデータを抽出しているのですが、抽出⇒データ成型のプログラムを別で用意したほうが良いような気がしますw

で、出来上がったものは↓のように表示されます。(右サイドバーを見てもらった方が分かるかも)

この記事を書いているときで30曲ほど登録しました。
大半がガンダム関連、angela関連ですがねw

空き時間を見て100曲くらいは登録しようと思っていますので、試聴してみてください。

あと、iTunesで楽曲を購入される場合は、以下のページを活用いただければと思います。

Siva’s iTunes Search

 

今後も作ってみたいものをブログで表現したりすると思いますので、Siva’s Blogをよろしくお願いいたします。


Mask_Siva

北の試される大地に生息しているSEです。
楽しみながらプログラムを作ったり、ゲームで遊んだりしています。

コメントをお待ちしております

HTMLタグは利用できません

Advertising



新品/中古ゲーム販売 通販ショップの駿河屋

Twitter

仮面被り過ぎ@コンプレックス大佐
@Mask_Siva

  • 昨晩から胃痛が再びひどくなってきた。。。
    about 2日 ago
  • 寝る前になんとかE-2甲クリア! 明日からはペース落とします。 #艦これ https://t.co/P2OoU9v3x6
    about 3日 ago
  • New post: 【読書】騎士ガンダム物語 -聖機兵物語編- を読んで https://t.co/zL0lUhfCgG #ガンダム #騎士ガンダム #ブログ
    about 3日 ago

BGM

機動戦士ガンダムUC オリジナルサウンドトラック
12 ON YOUR MARK -澤野弘之

↓の再生ボタンで再生できます
色々な楽曲を試聴したいなら
>>>こちら<<<

Nico Nico Community

Calendar

2017年11月
« 10月  
 1234
567891011
12131415161718
19202122232425
2627282930 

Archive

↓↓Please support me!↓↓

ブログランキング・にほんブログ村へ