2015-12-30 57 views
1

我想要搜索高級搜索。搜索功能具有和/或針對每個類別。用戶可以選擇和或的任意組合。這裏我給的截圖用'and'或'or'作爲變量在PHP中查詢

Advanced Search

我存儲和/或成可變調用$ PIL,$ pil1,$ pil2和$ pil3。並將它們置於查詢中。這是一個比驗證一個的一切條件和/或

所以這是在PHP中使用PostgreSQL我的查詢

$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

可能是您的'$ pil'或任何變量將爲空。你檢查過了嗎? – jitendrapurohit

+0

我嘗試回顯它們。它不是空的 – Elbert

+1

嘗試回顯整個查詢 – gbestard

回答

2

你已經錯過了近sourceevaluationevaluationdate
嘗試與此查詢一些空間:

$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

你的權利。它有助於。但主要問題還沒有解決 – Elbert

+0

我會驗證它們。感謝你的幫助 – Elbert

0

簡單。對每個$ pil使用驗證,無論它是否爲空。它使我驗證了4次,但它解決了這個問題。語法錯誤也已解決

+0

你可以用它來驗證'$ pil1 ... $ pilN'變量: 'for($ i = 1; $ i <4; $ i ++){ \t if(empty($ {「pil 「。$ i})){ \t \t print」pil「。 $ i。 「 是空的 」; \t} }' –