0

同様の質問と回答を検索して見つけましたが、うまくいきません。

私は2つのテーブルを持っています:

プレイリスト (id、name、song_id)

(ID、名前)

PHPファイルへの私のアドレスは次のようなものです:特定のプレイリストからすべての曲http://example.com/?playlist=30 を取得して選択したい.$_GET['playlist']

like: $result = mysql_query("SELECT * FROM playlist WHERE id=$_GET['playlist']"); そしてその結果から選曲したいのですが、

お気に入り:$result = mysql_query("SELECT * FROM songs WHERE playlist.song_id = songs.song_id");

4

3 に答える 3

0

1 つのクエリでテーブルを結合できます。

SELECT *
FROM   playlist JOIN songs ON songs.id = playlist.song_id
WHERE  playlist.id = ?

SQL で変数を直接使用しないでください$_GET。SQL インジェクション攻撃に対して脆弱になります。SQL で評価されないパラメーターとして変数を渡す準備済みステートメントを実際に使用する必要があります私が何を話しているのか、またはそれを修正する方法がわからない場合は、Bobby Tablesの話を読んでください。

また、旧式の MySQL 拡張機能を使用した新しいコードの作成を停止してください。これはもはや維持されておらず、コミュニティは非推奨プロセスを開始しています。代わりに、改善されたMySQLi拡張機能またはPDO抽象化レイヤーのいずれかを使用する必要があります。

于 2012-05-31T09:09:53.627 に答える
0

このように試しましたか

mysql_query("SELECT * FROM songs WHERE song_id IN(SELECT song_id FROM playlist WHERE id=$_GET['playlist']);

プレイリスト テーブルに song_id columnt がある場合

于 2012-05-31T09:09:56.547 に答える
0
   $result = mysql_query("SELECT s.id,s.name,p.id,p.name FROM songs s inner join playlist p on s.id=p.song_id where p.id=$_GET['playlist']");
于 2012-05-31T09:10:29.720 に答える