【鯖運営】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

    • 本日のSS ミューズ様!お初です! #ロマサガRS https://t.co/HmNluvKMUP
      about 4時間 ago
    • GPLの商用利用での注意点 https://t.co/e0c8FyBRsb
      about 5時間 ago
    • EGのガンダム組んでみました。 パチ組みですが、1時間かからないくらいで完成。 今回のはガンプラくじの景品ですが、通常版は700円ということなので、今のガンプラ開発技術に驚ました! G-3も後日組んでみます! 軽い息抜きでは良いキ… https://t.co/1KCFr32hx8
      about 21時間 ago

    BGM

    DEAD OR ALIVE (アニメ盤) - EP
    2 ホライズン -angela

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

    Nico Nico Community

    Calendar

    2020年10月
     123
    45678910
    11121314151617
    18192021222324
    25262728293031

    Archive

    ↓↓Please support me!↓↓

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