2010-12-18 82 views
0

我遇到问题。这是大括号的正确位置吗?查询大括号位置

WHERE (Q.qus_title LIKE '%".$search_Q."%' OR Q.qus_description LIKE '%".$search_Q."%') 
     AND A.qus_id is null 
ORDER BY 
+2

它适合你吗?你想要搜索什么?提供一个更全面的解释什么是或什么没有发生。 – Veign 2010-12-18 15:45:10

+0

不起作用。显示空白。没有错误,这使得它更容易混淆。我在想可能是有语法或逻辑错误。 – 2010-12-18 15:47:49

+0

避免通过静态和动态数据的字符串连接来构建SQL。使用预准备语句和绑定参数(只要您的数据库库支持它们 - 现在大多数都可以)。 – 2010-12-18 16:07:13

回答

0

括号中WHERE子句表达式中完全相同的方式作为代码或数学

所以

(COND1和COND2)OR COND3

被评估

将需要要么两个 1和2是对的 3是对的

您的WHERE子句似乎说空缺A.qus_idQ.qus_title或包含您的搜索文本(我希望您的搜索变量已正确转义,因此不能包含撇号的等 - ala SQL注入)条目。

要尝试找出它不工作的原因,请使用NO where子句运行查询并检查您是否得到结果 - 然后继续添加条件,直到找到能够消除太多结果的条件。

+0

谢谢。将继续尝试。顺便说一句, – 2010-12-18 15:57:23

+0

。这是我用来转义字符串的函数......这是否足够? ----功能过滤器($ data){ \t $ data = trim(htmlentities(strip_tags($ data))); \t \t 如果(get_magic_quotes_gpc()) \t \t $数据=的stripslashes($数据); \t \t $ data = mysql_real_escape_string($ data); \t \t return $ data; } – 2010-12-18 15:58:58

+0

@Frank - 我在2-3年内没有完成PHP,所以我的知识可能有点过时,但对我来说这似乎相当全面。 – Basic 2010-12-18 16:03:09