【鯖運営】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 8時間 ago
  • やれやれ、今日は心地良く入眠できたのに、なぜか2時間で目が覚めてしまった、、、
    about 8時間 ago
  • 常駐先作業用PC、組み上がりました! M.2 SSDが表面だと認識しなかったりとトラブルもありましたが、2.5インチSSD2基のRAID1化も無事に終わったので一安心です〜。 明日からはOS他のセットアップ! https://t.co/cTN0EfAgbT
    about 13時間 ago

BGM

「蒼穹のファフナー HEAVEN AND EARTH」BATTLE SCENE SELECTION
2 マークザイン出撃 -斉藤恒芳

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

Nico Nico Community

Calendar

2019年12月
« 11月  
1234567
891011121314
15161718192021
22232425262728
293031 

Archive

↓↓Please support me!↓↓

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


テストウィジェット