2015-12-03 28 views
1

我遇到問題。這裏是我的代碼在PHP中:如何區分一個表中的三列並使用PHP顯示它

$commentcall = pg_query("SELECT WSalamPembuka,WKonfirmasiNamaCust,WVerifikasiData ,WKemampuanBertanya ,WProductKnowledge ,WSolusi,WAlternativeSolusi,WSistemPelaporan,WEmpati,WResponsif,WRamahSopan,WPercayaDiri,WHoldCall,WOfferHelp,WPenutup 
    FROM call 
    WHERE 
    inputdate >='$start' AND inputdate<='$end' AND Agentname LIKE '$agen'"); 

while($result2=pg_fetch_row($commentcall)) 
     { 
      for($x=1;$x<=15;$x++) 
       { 
        if(($result2[$x]) != "") 
        { 
         echo "<tr> 
         <td align=\"center\" style=\"border:1px solid  grey;width:55%\">",$result2[$x],"</td></tr>"; 
        } 
       } 
     } 

,這裏是我的PostgreSQL中

SELECT 
WSalamPembuka, 
WKonfirmasiNamaCust, 
WVerifikasiData , 
WKemampuanBertanya , 
WProductKnowledge , 
WSolusi, 
WAlternativeSolusi, 
WSistemPelaporan, 
WEmpati, 
WResponsif, 
WRamahSopan, 
WPercayaDiri, 
WHoldCall, 
WOfferHelp, 
WPenutup 
FROM call 
WHERE 
    inputdate ='02/12/2015' AND Agentname LIKE 'vita' 

和PostgreSQL的輸出QUERY會象下面這樣: enter image description here

所以我想表明它像下面,但無需再次顯示相同的數據。

enter image description here

你可以看到,對象「solusi」表現出兩次,因爲該數據庫有兩個數據「solusi」。

任何幫助?三江源

+0

因此,爲了確保我理解了這個問題,您只想選擇唯一的值? – Epodax

+0

1.使用日期數據類型存儲日期 – Strawberry

+0

@Epodax是的。你可以看到表有點奇怪.. – Shieryn

回答

1

您可以修改您PostgrSQL查詢aggragete每個行的列數爲ARRAY,然後做unnest(這將擴大數組一組行)和DISTINCT

SELECT DISTINCT 
     unnest(
      ARRAY[WSalamPembuka, 
       WKonfirmasiNamaCust, 
       WVerifikasiData , 
       WKemampuanBertanya , 
       WProductKnowledge , 
       WSolusi, 
       WAlternativeSolusi, 
       WSistemPelaporan, 
       WEmpati, 
       WResponsif, 
       WRamahSopan, 
       WPercayaDiri, 
       WHoldCall, 
       WOfferHelp, 
       WPenutup] 
     ) 
FROM call 
WHERE 
    inputdate ='02/12/2015' AND Agentname LIKE 'vita' 

Becasue是更改查詢單獨返回「一柱」列表,您需要更改您的PHP代碼並刪除第二個循環for($x=1;$x<=15;$x++)

+0

Thankyou。雅你的解決方案,它在我的PostgreSQL工作,但在PHP中,它沒有顯示..你有另一種解決方案?還是我錯了? – Shieryn

+0

它不工作,因爲在PHP中,你假設該行有15列,但從我的答案行只有一列。將($ x = 1; $ x <= 15; $ x ++)'換行爲'for($ x = 1; $ x <= count($ result2); $ x ++)',或者根本不需要。 –

+0

謝謝。最後我已經刪除了那個循環。它的工作原理。 :d – Shieryn

相關問題