postgresql — запрос в PHP с ‘и’ или ‘или’ в качестве переменной

Я хотел бы сделать поиск для расширенного поиска. Функция поиска есть и / или для каждой категории. Пользователь может выбрать любую комбинацию и n или. Здесь я даю скриншот

Расширенный поиск

Я храню и / или в переменных call $ pil, $ pil1, $ pil2 и $ pil3. И поставит их в запросе. это лучше, чем проверять одно за другим каждое условие и / или

Так что это мой запрос с использованием postgresql в PHP

$query = pg_query("SELECT   evaluationdate,onlinename,channel,topik,reviewername,sourceevaluation,evaluation
from AgentPerformance
where onlinename like '%".$VEOn1."%'
".$pil." reviewername like '%".$VERev1."%'
".$pil1." channel like '%".$VEChan1."%'
".$pil2."sourceevaluation like '%".$VESource1."%'
".$pil3."evaluationdate between '".$VEStart1."' and '".$VEEnd1."'");

РЕДАКТИРОВАТЬ :

Проблема сейчас, все переменные не должны быть пустыми, иначе запрос будет ошибкой. любой способ обмануть это?

1

Решение

Вы пропустили несколько мест рядом sourceevaluation а также evaluationdate
Попробуйте с этим запросом:

$query = pg_query("SELECT   evaluationdate,onlinename,channel,topik,reviewername,sourceevaluation,evaluation
from AgentPerformance
where onlinename like '%".$VEOn1."%'
".$pil." reviewername like '%".$VERev1."%'
".$pil1." channel like '%".$VEChan1."%'
".$pil2." sourceevaluation like '%".$VESource1."%'
".$pil3." evaluationdate between '".$VEStart1."' and '".$VEEnd1."'");
2

Другие решения

Просто. Используйте проверку для каждого $ pil независимо от того, пуст он или нет. это заставляет меня проверять 4 раза, но это решает проблему. Синтаксическая ошибка была также решена

0

По вопросам рекламы [email protected]