使用PHP循环将多个项添加到单个MySql表

时间:2013-03-29 00:42:40

标签: php mysql spotify

我正在一个网站上工作,用户可以搜索Spotify库并点击结果,然后将结果添加到“播放列表”中。然后,该播放列表将通过PHP添加到MySql数据库中。所有这些都是spotify href,但显然用户想要在他们的播放列表中添加多首歌曲。

感谢Brad的回答,我现在有一个改进的数据库结构,但我仍然不确定如何循环播放已添加到播放列表的每首歌曲,发布所有这些歌曲并将其添加为在我的歌曲中分开的行'表

更新来自' 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());
});

这是来自&#39; spotify.php&#39; ...

的硬编码形式
<form action="submit_spotify.php" method="post">
    <input type="hidden" id="track_href" value="" name="track_href" />
    <input type="submit" value="Submit Journix" />
</form>

这是&#39; submit-spotify.php&#39;的一小部分。目前有效,但当然只将第一首歌添加到数据库中。

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);

我猜我在那里需要一个循环来贯穿每个&#39; .spotify-result&#39;并获取每个的.val(),为每个表单添加一个新的?我根本不知道从哪里开始将每一个输入一个新行,或者这甚至是正确的方法。

1 个答案:

答案 0 :(得分:2)

从它的声音来看,您现在使用的方法只允许一个用户拥有一个播放列表。一种更好的方法可能是将其提取到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网址中你会有一首歌曲ID(http://www.spotify.com?id=V92Ksj2)。而不是存储整个网址,最好只存储歌曲ID。