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

Advanced Search

Я сохраняю и / или в вызове переменных $ 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
Elbert 30 Дек 2015 в 10:18

2 ответа

Лучший ответ

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

$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
marc_s 26 Фев 2016 в 05:58

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

0
Elbert 30 Дек 2015 в 07:45