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());

这是我的 SELECT 代码来显示一些消息,现在我想添加 1 个条件:

AND M.uid_fk='$uid'

所以我可以把它放在我完整的代码中。我已经试过了,但没有效果。还是缺少/错误的代码?
请帮忙。谢谢

4

4 回答 4

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 注入的影响,请改用 PDO 或准备好的语句。有关更多详细信息,请参见:

于 2012-11-21T08:54:44.643 回答
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条件下。(.) 运算符并不是必需的,因为您的查询有双引号,但我还是喜欢使用它。

于 2012-11-21T08:53:30.590 回答
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());
于 2012-11-21T08:54:25.143 回答
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);

*我已经在最后添加了。虽然,我说无论在哪里,它都有效;这并不是严格意义上的最佳方式。条件的放置通常会影响查询运行的效率

于 2012-11-21T08:55:32.707 回答