使用多个表PHP MYSQL为登录用户选择用户特定记录

时间:2012-11-30 12:21:57

标签: php mysql

我有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'")) {

当我运行此代码时,我得到“无法选择表格”

5 个答案:

答案 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.'")';