Привет У меня есть выпадающее меню, которое подает значение в форму поиска. Существует два критерия поиска. Категория недвижимости & Подкатегория недвижимости. Поиск выполняется хорошо, когда оба выбраны. В категории свойств есть пять вариантов: пустое, жилое, коммерческое, промышленное, сельскохозяйственное. Я хочу структурировать запрос, поэтому, если значение пусто в категории свойств, оно должно отображать все результаты, соответствующие живым, коммерческим, промышленным и сельскохозяйственным. В настоящее время он остается без ответа.Возврат всех результатов, когда поле пусто
Я попробовал два способа, с помощью массивов, а затем структурирование MySQL в массиве .. но проблема заключается в том, чтобы искать в массиве или в переменной в MySQL ...
Ниже HTML-форма
<select class="searchpropertyinputs" name="property_category" id="property_category" onchange="subcategory('property_category', 'property_subcategory');">
<option value="">Property Type</option>
<option value="Residential">Residential</option>
<option value="Commercial">Commercial</option>
<option value="Industrial">Industrial</option>
<option value="Agricultural">Agricultural</option>
</select>
</br>
<select class="searchpropertyinputs" name="property_subcategory" id="property_subcategory">
<option value="">Property Subtype</option>
</select>
</br>
PHP
$property_category = ($_GET['property_category']);
$select = $con->prepare("SELECT * FROM tbl_property WHERE (property_category='$property_category' AND property_subcategory='$property_subcategory') LIMIT {$start}, {$perPage}");
$select->setFetchMode(PDO::FETCH_ASSOC);
$select->execute();
Я пытаюсь сделать следующее, но проблема в том, что при выборе значения это переменная в противном случае, если он пустой, то это массив .. он Структура сть запрос проблема
if ($property_category == ""){
$myarray[1] = "'Residential'";
$myarray[2] = "'Commercial'";
$myarray[3] = "'Industrial'";
$myarray[4] = "'Agricultural'";
$property_category = implode(", ", $myarray);
}
$select = $con->prepare("SELECT * FROM tbl_property WHERE property_category IN ($property_category) LIMIT {$start}, {$perPage}");
$select->setFetchMode(PDO::FETCH_ASSOC);
$select->execute();
$count = $select->rowCount();
желаемый результат сделать поиск на основе пользовательского ввода, но если пользователь ничего (пустое значение) не выберите, а затем дать все результаты, которые существуют в столбце.
это не работает, это не дает никаких результатов
$select = $con->prepare(
"SELECT * FROM tbl_property
WHERE property_category LIKE
CASE WHEN '$property_category' = ''
THEN '%'
ELSE '$property_category'
END CASE
LIMIT {$start}, {$perPage}");
$select->setFetchMode(PDO::FETCH_ASSOC);
$select->execute();
$count = $select->rowCount();
Таким образом, по сути, вы не хотите 'WHERE' положение, когда оба выпадающие не выбран, верно? – BizzyBob
да, я думаю о том, чтобы поставить оператор if внутри запроса, чтобы выполнить поиск в property_category, только когда в нем есть значение. – DragonFire
звучит неплохо. – BizzyBob