0

私は2つのテーブルを持っています。1つはユーザーと呼ばれ、もう1つはテレビ番組と呼ばれます。ユーザーの名前をusernameという変数に保存します。usersテーブルにはuser_idPK、username、passwordが保持され、tvshwsテーブルにはtv_idPK、user_id FK、TVShowNameが格納されます。

$username=$_SESSION['username'];

ログインした特定のユーザーのすべてのテレビ番組を表示できるようにしたいのですが、テレビ番組テーブルのuser_idが原因で、ログインしたユーザーに割り当てられたユーザーIDのすべての結果を表示する必要があると推測しています。 usersテーブルの主キーuseridの外部キーです。

コード:

$user = "SELECT user_id FROM users where username='$username'";

if(!$rs = mysql_query("SELECT * FROM tv shows WHERE user_id='$user'")) {

このコードを実行すると、「テーブルを選択できません」というメッセージが表示されます

4

5 に答える 5

1

これを試して

$query = 'SELECT * FROM tv_shows where user_id=(SELECT user_id FROM users where username="'.$username.'")';
于 2012-11-30T12:42:33.407 に答える
0

トルネードの助けを借りて自分でそれを理解することができました

if(!$rs = mysql_query("$query2")) {
$query2 = 'SELECT * FROM tv_shows where user_id=(SELECT user_id FROM users where username="'.$username.'")';
于 2012-11-30T15:29:43.410 に答える
0
SELECT username,user_id 
FROM users as a 
JOIN tv shows as b ON b.user_id_id=a.user_id 
WHERE a.username='{$username}'
于 2012-11-30T12:53:24.953 に答える
0

まず第一に、より良い設計として、 $_SESSION.. に user_id を含めることができます。これにより、不要なクエリを回避できます...

ここで問題は一重引用符が原因である可能性があります...そのため、一重引用符をエスケープしてください..

ありがとう

于 2012-11-30T12:29:17.787 に答える