Вам нужно использовать круглые скобки.Прямо сейчас вы говорите:
WHERE job_province = 'x' AND job_title LIKE '%y%' OR job_description LIKE '%y%' ...
Операторы OR
вызывают выполнение запроса.Если вы заключите все операторы OR
в круглые скобки, это будет означать, что должны совпадать и провинция, и любой из операторов LIKE
:
WHERE job_province = 'x' AND (job_title LIKE '%y%' OR job_description LIKE '%y%' ...)
Примечание: ваш код, вероятно, уязвим для внедрения SQL.Убедитесь, что вы по крайней мере экранировали свои переменные с помощью mysql_real_escape_string()
.В идеале вы должны использовать PDO и подготовленные операторы .Что-то вроде:
$statement = $dbh->prepare('
SELECT *
FROM job_request
WHERE job_province = :location
AND (job_title LIKE :search OR
job_description LIKE :search OR
job_skills LIKE :search OR
job_experience LIKE :search)');
$statement->execute(array(
':location' => $location,
':search' => "%$search%"
));
$rows = $statement->fetchAll();