2012-11-21 35 views
0
$query = mysql_query("SELECT M.msg_id, M.uid_fk, M.message, M.created, U.full_name, U.profile_pic, U.username, U.uid FROM t_haps_wall M, t_users U, t_join_user F WHERE 
     M.uid_fk=U.uid AND F.uid=U.uid AND M.uid_fk = F.uid AND F.status='joining' order by M.msg_id desc ") or die(mysql_error()); 

这是我的选择代码以显示一些消息,现在我要添加1个条件:PHP SELECT查询有了条件

AND M.uid_fk='$uid' 

那么,我可以把在我的完整代码。 我已经尝试过但没有效果。或缺少什么/错误的代码?
请帮忙。 谢谢

回答

0

喜欢这个?..

$query = mysql_query("SELECT M.msg_id, M.uid_fk, M.message, M.created, U.full_name, U.profile_pic, U.username, U.uid FROM t_haps_wall M, t_users U, t_join_user F WHERE 
    M.uid_fk=U.uid AND F.uid=U.uid AND M.uid_fk = F.uid AND F.status='joining' AND M.uid_fk=".$uid." order by M.msg_id desc ") or die(mysql_error()); 

我是假设你想放置M.uid_fk=".$uid."WHERE条件。 (。)运算符并不是必须的,因为你的查询有双引号,但我仍然喜欢使用它。

0

这本来是更好,如果你搜索的第一个提出这个问题::

不管怎么说:: 检查NEW_COLUMN

$query = mysql_query("SELECT M.msg_id, M.uid_fk, M.message, M.created, U.full_name, U.profile_pic, U.username, U.uid, NEW_COLUMN FROM t_haps_wall M, t_users U, t_join_user F WHERE 
     M.uid_fk=U.uid AND F.uid=U.uid AND M.uid_fk = F.uid AND F.status='joining' order by M.msg_id desc ") or die(mysql_error()); 
+0

已经尝试过..没有影响... – Nagini

+0

您得到了什么错误? –

1

的位置你应该把它放在WHERE子句中之前,和使用ANSI SQL-92,而不是像这样:

SELECT 
    M.msg_id, 
    M.uid_fk, 
    M.message, 
    M.created, 
    U.full_name, 
    U.profile_pic, 
    U.username, 
    U.uid 
FROM t_haps_wall  M 
INNER JOIN t_users  U ON M.uid_fk = U.uid 
INNER JOIN t_join_user F ON F.uid = U.uid 
WHERE F.status = 'joining' 
    AND M.uid_fk ='$uid' -- your condition here 
order by M.msg_id desc 

需要注意的是:您的代码容易受到SQL injection的影响,请使用PDO或准备好的语句。有关详细信息,请参阅本:

+0

你可能想写一些关于SQL注入 – Znarkus

+0

已经尝试..没有影响... – Nagini

+1

@Znarkus - 好的,我编辑了我的答案。谢谢。 –

0

您可以将其添加无论 *您在WHERE条款后想。尝试使用此更新查询

$sql = 
" 
SELECT 
    M.msg_id, 
    M.uid_fk, 
    M.message, 
    M.created, 
    U.full_name, 
    U.profile_pic, 
    U.username, 
    U.uid 
FROM 
    t_haps_wall M, 
    t_users U, 
    t_join_user F 
WHERE 
    M.uid_fk=U.uid 
    AND F.uid=U.uid 
    AND M.uid_fk = F.uid 
    AND F.status='joining' 
    AND M.uid_fk='".$uid."' 
ORDER BY 
    M.msg_id DESC 
"; 

$query = mysql_query($sql); 

*我已在最后添加它。虽然,我说它在任何地方和它的工作;这并不是最优化的方式。条件的放置通常会影响查询的运行效率