0

我有两张桌子,一张叫用户,一张叫电视节目。我通过这样做将用户的名称存储在一个名为 username 的变量中。users 表保存 user_id PK、用户名、密码,tv shws 表存储 tv_id PK、user_id FK、电视节目名称

$username=$_SESSION['username'];

我希望能够为已登录的特定用户显示所有电视节目,我猜我需要显示分配给已登录用户的用户 ID 的所有结果,因为电视节目表中的 user_id是users表中主键用户id的外键。

代码:

$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

Try this

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

好吧,试试这个:

<?php
$user = musql_query("SELECT * FROM users where username='$username'");
$result = mysql_fetch_array($user);
$userid = $result['user_id'];

$sql = "SELECT * FROM tv shows WHERE user_id=".$userid;
$get_tv = mysql_query($sql);
$make_array = mysql_fetch_assoc($get_tv);
 print_r($make_array);
?>

编码快乐!!

于 2012-12-03T06:47:15.123 回答
0

在 Tornado 的帮助下自己设法弄清楚了

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 回答