2015-12-30 4 views
1

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

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."'"); 

EDIT:

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

+0

может быть вашим '$ pil' или любая переменная будет пуста. Вы проверили это? – jitendrapurohit

+0

ive попробуйте их повторить. он не пуст – Elbert

+1

попытаться повторить весь запрос – gbestard

ответ

2

Вы пропустили некоторые места возле sourceevaluation и evaluationdate
Try с этим запросом:

$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."'"); 
+0

U re right. помогает. Но основная проблема не была решена – Elbert

+0

Я проверю их. Спасибо за помощь ur – Elbert

0

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

+0

, вы можете использовать это, чтобы проверить переменные '$ pil1 ... $ pilN': ' for ($ i = 1; $ i <4; $ i ++) { \t if (empty ($ {"pil ". $ i})) { \t \t Печать" pil ". $ i. " пусто "; \t} } ' –