У меня есть скрипт PHP, который я пытаюсь использовать для генерации результатов поиска из базы данных, с несколькими вводами текста поиска и отправкой. Три входа - это термин, ключевое слово и местоположение. Я достиг поиска, но логика проверки я нахожу немного сложнее. Я разбил запрос на три части, так что, когда один из входов пуст, он освобождает часть запроса, добавляемую к полному запросу. Но из-за оператора OR, когда первый вход пуст, остальное терпит неудачу.PHP форма поиска с несколькими входами
Второй глаз будет полезен здесь. Пожалуйста, не отмечайте этот вопрос как слишком общий, просто посмотрите на запрос, и вы увидите проблему.
$term = mysqli_real_escape_string ($con , $_GET['term']);
$location = mysqli_real_escape_string ($con , $_GET['location']);
$keyword = mysqli_real_escape_string ($con , $_GET['keyword']);
if(empty($term)) {
$term1 = "";
}else{$term1 = "job_title LIKE '%".$term."%'";}
if(empty($location)) {
$loc1 = "";
}else{$loc1 = "location LIKE '%".$location."%'";}
if(empty($keyword)) {
$key1 = "";
}else{$key1 = "OR description LIKE '%".$keyword."%'";}
$sql = "SELECT * FROM jobs WHERE ".$term1." ".$loc1." ".$key1." ";
$r_query = mysqli_query($con,$sql);
while ($joblist = mysqli_fetch_array($r_query)){
$now = date('Y-m-d',time());
Возможно, эта тема была бы полезна вам, OP никогда не отправлял назад, если бы это сработало, но я думаю, что это должно (возможно, вы могли бы отправить сообщение, если это сработает?). http://stackoverflow.com/questions/32685881/filter-mysql-query-with-form-options/32686418#32686418 – chris85
@ chris85 Спасибо, Крис, к сожалению, его логика немного отличается от моей, поскольку он не использует OR и LIKE операторов, которые тормозят мою логику :( –