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

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

    BGM

    愛すること TV size - Single
    iTunes Music

    1 愛すること TV size -angela

    ↓の再生ボタンで再生できます

    色々な楽曲を試聴したいなら
    >>>こちら<<<

    Calendar

    2024年3月
     12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31 

    Archive

    My WIsh List

    Amazonで気になっている物をまとめています。

    「これは良かった!」「こっちの方がいいよ!」というものがあれば、教えてください<(_ _)>

    https://amzn.to/3oof0rZ