Я занимаюсь поиском на моем веб-сайте, и мне нужно включить все ограничения, которые мне нужны в моем запросе выбора.subquery MY SQL
В моем поисковом пользователе пользователь может написать ключевое слово, написать минимальную цену и максимальную цену и выбрать между некоторыми категориями, но нет необходимости искать результат, заполнив все поля, как пользователь, которого вы должны быть в состоянии найти, заполнив все или только одним из них, поэтому я должен сделать пролив, чтобы отделить его.
Я пытаюсь что-то вроде:
$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
Да, это одна из проблем, но я не знаю, как я могу ее решить. @RamRaider да, они делают! –