我有2个表,一个叫做用户,一个叫做电视节目。我通过执行将用户的名称存储在名为username的变量中。 users表包含user_id PK,用户名,密码和tv shws表存储tv_id PK,user_id FK,电视节目名称
$username=$_SESSION['username'];
我希望能够显示已登录的特定用户的所有电视节目,我猜我需要显示分配给已登录用户的用户ID的所有结果,因为该用户名是tv shows table是users表中主键用户id的外键。
代码:
$user = "SELECT user_id FROM users where username='$username'";
if(!$rs = mysql_query("SELECT * FROM tv shows WHERE user_id='$user'")) {
当我运行此代码时,我得到“无法选择表格”
答案 0 :(得分:1)
试试这个
$query = 'SELECT * FROM tv_shows where user_id=(SELECT user_id FROM users where username="'.$username.'")';
答案 1 :(得分: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);
?>
快乐的编码!!
答案 2 :(得分:0)
首先,作为一个更好的设计,你可以在$ _SESSION中使用user_id ..这样你就可以避免不必要的查询......
这里的问题可能是由于单引号...所以请逃避单引号..
谢谢
答案 3 :(得分: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}'
答案 4 :(得分:0)
在Tornado的帮助下设法弄清楚了自己
if(!$rs = mysql_query("$query2")) {
$query2 = 'SELECT * FROM tv_shows where user_id=(SELECT user_id FROM users where username="'.$username.'")';