2013-10-21 111 views
0

我在從PostgreSQL數據庫的SQL查詢中讀取關聯數組時遇到了問題。PHP腳本沒有正確索引我的PostgreSQL數組

因此,這裏是我的數據庫:

ID | NAME | .... 
1 | CARS | 
2 | BIKES| 
3 | TRAINS | 

現在我有我想從該查詢抓住一些數據並將其編碼爲JSON用於移動設備的PHP腳本。

下面是腳本:

$res = pg_query("SELECT * FROM projects"); 

/* FETCHES THE RESULT OF THE SQL QUERY WHICH GETS THE NAME OF EACH PROJECT */ 
while($row = pg_fetch_assoc($res)) 
{ 
    $output[]=$row['name']; 
    print (json_encode($output)); 
} /* CONVERTED ON MOBILE PLATFORM */ 

pg_close(); 

現在我越來越顯示副本,並從文件(下圖)的輸出粘貼的結果:

["Cars"]["Cars","Bikes"]["Cars","Bikes","Trains"] 

我可以清楚地看到,我的算法對記錄進行索引是一種1,2,1,2,3種方式。有沒有人有關於如何解決這個問題,並得到這個輸出的任何忠告:

["Cars"]["Bikes"]["Trains"] 
+0

如果將'$ output []'更改爲'$ output',會發生什麼? – mavroprovato

+0

@mavroprovato它產生「汽車」,「自行車」,「火車」沒有'[]'!我相信這是我想要的,但他們是分開的價值觀還是個人價值觀?我需要他們分開,因爲我在Android設備上安裝微調器! – WebDevDanno

回答

1

你應該只打印排列在最後,這是完全填充後:

$res = pg_query("SELECT * FROM projects"); 

/* FETCHES THE RESULT OF THE SQL QUERY WHICH GETS THE NAME OF EACH PROJECT */ 
while($row = pg_fetch_assoc($res)) 
{ 
    $output[]=$row['name']; 
} /* CONVERTED ON MOBILE PLATFORM */ 

print (json_encode($output)); 

pg_close(); 

或者,你可以如果需要單獨輸出,請重新初始化$ output數組。取決於你想實現什麼:

$res = pg_query("SELECT * FROM projects"); 

/* FETCHES THE RESULT OF THE SQL QUERY WHICH GETS THE NAME OF EACH PROJECT */ 
while($row = pg_fetch_assoc($res)) 
{ 
    $output = array(); 
    $output[]=$row['name']; 
    print (json_encode($output)); 
} /* CONVERTED ON MOBILE PLATFORM */ 

pg_close(); 
+0

第二個解決方案建議給出結果'[「Cars」,「Bikes」,「Trains」]'這是一個數組中的三個獨立值。乾杯:) – WebDevDanno

+0

當然,祝你好運。我會編輯答案以突出所需的解決方案。 – 2013-10-21 13:07:19