2010-12-18 20 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

+0

動作しません。空白を表示します。エラーはなく、それはそれをより混乱させます。私は構文や論理エラーがあるかもしれないと思っていた。 –

+0

静的データと動的データの文字列連結を使用してSQLを構築しないでください。プリペアドステートメントとバインドされたパラメータを使用します(DBライブラリでサポートされている場合)。 –

答えて

0

句式がコードや数学

とまったく同じ方法で評価されているので、

で中括弧(COND1とCOND2)OR COND3

両方 1のいずれかが必要になります2が真であるまたは 3真実である

あなたのWHERE句は、A.qus_idのヌルとQ.qus_titleまたはQ.qus_descriptionの検索テキストを含むエントリを示しています(検索変数が正しくエスケープされ、アポストロフィなどのSQLインジェクションを含めることはできません)。

なぜ動作していないのかを調べるには、NO where節でクエリを実行し、結果を確認してください。検索結果が多すぎる場合は、用語を追加してください。

+0

ありがとう。試し続けます。 –

+0

ところで。ここで私は文字列をエスケープするために使用している関数です...これで十分ですか? ----関数フィルタ($データ){ \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; } –

+0

@Frank - 私は2年でPHPをやっていないので、私の知識は少し古いかもしれませんが、それは私にはかなり包括的です。 – Basic