2013-11-09 46 views
0
require_once("./Connections/root.php"); 
session_start(); 
$user = $_SESSION['MM_Username']; 
$q = mysql_query("SELECT id FROM performer WHERE username = '$user'"); 
$r = mysql_fetch_assoc($q); 
$q1 = mysql_query("SELECT poster_id, wall_msg FROM performer_info WHERE id = '$r[id]'"); 
$r1 = mysql_fetch_assoc($q1); 
$q2 = mysql_query("SELECT username FROM performer WHERE id = '$r1[poster_id]'"); 
$r2 = mysql_fetch_assoc($q2); 

echo $r2['username'] . " : " . $r1['wall_msg']; 

是否有可能在单个查询和结果中使用所有这些查询?多查询和结果加入

我想,我需要使用内部连接,但我不知道它是如何做呢

$ _SESSION [“MM_Username”]是用户,用户名loged

+0

使用mysqli_ *函数代替mysql_8函数 –

+0

如果映射了三个表,则可以使用连接查询。 –

回答

0

您可以使用一个想法像

select wall_msg from performer_info where poster_id = (select id from performer where username = '$user') 

你已经知道的用户名......和wall_msg可以从这个查询的结果中获得。

编辑:

select p.username, t.wall_msg from performer p, (select poster_id, wall_msg from performer_info where id=(select id from performer where username= '$user'))t where p.id = t.posterid; 

如果内部查询返回一个结果。这只会工作。希望能帮助到你。

+0

但他们不... 1回到海报用户名(从执行表)和其他返回wall_msg(从performer_info表) – FoxWizzy

+0

但不是海报用户名和MM_UserName相同...在您的查询上面你首先得到id从用户名,然后从ID获得用户名,他们必须是相同的权利?如果是,那么你需要的只是wall_msg的值,可以从我的答案查询中获得。 – AsG

+0

MM_Username是loged用户的用户名.... – FoxWizzy

0

内部连接如何?

SELECT t.username , pi.wall_msg 

FROM performer t 

INNER JOIN performer_info pi ON pi.id = t.id 

WHERE t.username LIKE '%$user%'