2013-03-29 4 views
0

나는 사용자가 Spotify 라이브러리를 검색하고 결과를 클릭하여 '재생 목록'에 추가 할 수있는 사이트 작업을하고 있습니다. 이 재생 목록은 PHP를 통해 MySql 데이터베이스에 추가됩니다. 이 모든 것은 spotify href가 추가되었지만 분명히 사용자는 하나 이상의 노래를 재생 목록에 추가하려고합니다.PHP 루프가있는 단일 MySql 테이블에 여러 항목 추가하기

아래의 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()); 
}); 

이이 현재 작동 제출 '- 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> 

'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); 
나는 각각에 대해 폼에 새를 추가, 나는 각각의 .val()를 각각 '.spotify-결과'를 통해 실행하고 얻을 거기에 루프를해야합니다 같은데요

? 나는 어디에서부터 각각의 행을 새로운 행으로 입력 할 것인가, 또는 이것이 올바른 접근법 일지에 관해서는 전혀 알지 못한다.

답변

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" 

, 나는 그것이 어떻게 작동하는지 모르겠어요하지만 난 스포티 파이에 있으리라 믿고있어 URL에는 노래 ID (http://www.spotify.com?id=V92Ksj2)가 있습니다. 전체 URL을 저장하는 대신 노래 ID 만 저장하는 것이 좋습니다.

+0

위대한 대답은, 나는 그것을 지금주지 않을 것이다. 감사. – GuerillaRadio

관련 문제