私は自分のウェブサイトでサーチャーをしています。私は選択したクエリーに必要なすべての制約を含める必要があります。サブクエリMY SQL
私の検索者は、キーワードを書いたり、最低価格と最高価格を書いたり、いくつかのカテゴリの中から選択することができますが、すべてのフィールドを入力して検索する必要はありませんすべてを満たすか、ただ一つで満たすことで見つけることができるように、私はそれを分離するためにconstraitをしなければならない。
私が何かしようとしている:私は、ユーザーが選択した任意のカテゴリを返すようにしたいので、私は余分な問題を抱えているので、まずそれはクエリを継続することとすることがあるが、
ここ$var1 = $_POST['var1']; //name - type = text
$var2 = $_POST['var2']; //min price - type = integer
$var3 = $_POST['var3']; //max price - type = integer
$var4 = $_POST['var4']; //array of categories
$select_query = "SELECT * FROM objects WHERE x=1";
if($var1 != NULL || $var1 != ''){
"AND name like '%$var1%'"
}
if(($var2 != NULL || $var2 != '') AND ($var3 != NULL || $var3 != '')){
"AND price=>$var2 AND price =>$var3'"
}
をそれはカテゴリー間のORでなければならないが、問題は最後のものが失敗することである。
if($var4 != NULL || $var4 != ''){
" AND(";
foreach $var4 as $cat){
"id_category = $cat OR";
}
")";
}
任意のヒント?ありがとう!
ちょうどあなたのコードを見て、それをテストしないことによって、最後の部分が常に終わるので、最後の部分が失敗しているようです。あなたは文法エラーの原因となる '... AND(id_category = $ cat OR id_category = $ cat OR)'のようなものを得ます –
フィールド名はdb列名に対応していますか? – RamRaider
はい、それは問題の1つですが、どうすれば解決できるのか分かりません。 @RamRaiderはいそうです! –