0

私は、ユーザーが Spotify ライブラリを検索して結果をクリックし、その結果自分自身を「プレイリスト」に追加できるサイトに取り組んでいます。このプレイリストは、PHP を介して MySql データベースに追加されます。追加されるのは Spotify の href だけですが、明らかにユーザーは自分のプレイリストに複数の曲を追加したいと思うでしょう。

以下のブラッドの回答のおかげで、データベース構造が改善されましたが、プレイリストに追加された各曲をループして、これらすべての曲を投稿し、「曲」の個別の行として追加する方法についてはまだわかりませんテーブル。

更新 'spotify.js' からのこのコードは、クリックされた曲をプレイリスト div に追加し、送信される非表示の入力を追加します。新しい曲をクリックするたびに、新しい入力が作成されますが、各入力の値は変化します。

$('.spotify-result').click(function() {
     $(this).clone().appendTo($('.selected-list'));
     $('.submit-spotify').before('<input type="hidden" id="track_href" class="track" value="" name="track_href" />');
     $('.track').val($('.track-href', this).text());
});

これは、「spotify.php」からハードコーディングされたフォームの一部です...

<form action="submit_spotify.php" method="post">
    <input type="hidden" id="track_href" value="" name="track_href" />
    <input type="submit" value="Submit Journix" />
</form>

これは 'submit-spotify.php' のスニペットです。これは現在動作していますが、もちろん最初の曲をデータベースに追加するだけです。

if($db_server) {
    mysql_select_db($db_database) or die ("<p>Couldn't find database.</p>");
    $playlist_query = "INSERT INTO playlists (user_id, route_id) VALUES ('$route_id', '$user_id')";
    if (mysql_query($playlist_query)) {
        $song_query = "INSERT INTO songs (href) VALUES ('$href')";
        if (mysql_query($song_query)) {
            $message = "<p>Congratulations, your playlist has been added.</p>";
        } else {
            $message = ("Insert failed. " . mysql_error() . "<br/>" . $song_query);
        }   
    } else {
        $message = ("Insert failed. " . mysql_error() . "<br/>" . $playlist_query);
    }
} else {
    $message = "Error: could not connect to the database.";
}
mysql_close($db_server);

それぞれの '.spotify-result' を実行し、それぞれの .val() を取得して、それぞれのフォームに新しいものを追加するには、そこにループが必要だと思いますか? そこからそれぞれを新しい行に入力する場所、またはこれが正しいアプローチであるかどうかはまったくわかりません。

4

1 に答える 1

2

その音から、あなたが現在使用している方法では、1 人のユーザーが 1 つのプレイリストしか持つことができません。より良い方法は、それを3つの異なるテーブルに抽出することです

Users [ id | username ]
Playlists [ id | user_id | playlist_name ]
Songs [ id | playlist_id | href ]

これは次のように説明できます。

 "Users can have many playlists" <=> "Playlists will have one user"
 "Playlists have many songs" <=> "Songs have many playlists"

また、それがどのように機能するかはわかりませんが、Spotify の URL に曲 ID ( http://www.spotify.com?id=V92Ksj2 ) があると想定しています。URL 全体を保存するのではなく、曲の ID だけを保存した方がよい場合があります。

于 2013-03-29T00:52:38.087 に答える