2012-01-14 55 views
0

我意识到这可能是一个绝对可怕的方式来做一个查询,当然它不工作。重点在于根据日期范围和关键字来选择用户。有很多条件的mysql查询

$query = mysql_query("SELECT * FROM my_users WHERE my_regdate BETWEEN '$ftimestamp' AND '$ttimestamp' AND my_username LIKE '%$trimmed%' OR my_realname LIKE '%$trimmed%' OR my_email LIKE '%$trimmed%' ORDER BY my_id"); 
+2

那么你的问题是什么? :) – 2012-01-14 16:49:22

回答

1

你缺少括号查询

$query = mysql_query("SELECT * FROM my_users WHERE my_regdate BETWEEN '$ftimestamp' AND '$ttimestamp' AND (my_username LIKE '%$trimmed%' OR my_realname LIKE '%$trimmed%' OR my_email LIKE '%$trimmed%') ORDER BY my_id"); 
+2

@Gary我不会使用字符串插值($ ftimestamp,$ ttimestamp),因为它受SQL注入的影响,您可能需要考虑使用PDO,以便可以使用占位符。您可以在PHP手册中找到所有这些信息。 – 2012-01-14 16:55:31

0

使用mysql_error()打印错误。

$query ="SELECT * FROM my_users WHERE my_regdate BETWEEN '$ftimestamp' AND '$ttimestamp' AND my_username LIKE '%$trimmed%' OR my_realname LIKE '%$trimmed%' OR my_email LIKE '%$trimmed%' ORDER BY my_id"; 
$res= mysql_query($query) or die(mysql_error());