2016-04-25 56 views
-1

我試圖表現出這樣的陣列(顯示id_suppliernama_supplier數組json_encode

{"1":"PT Kesatu","2":"PT Kedua","3":"PT Ketiga","4":"PT Keempat"} 

supplier表。我用下面的代碼:

$query = mysql_query("SELECT id_supplier, nama_supplier FROM supplier ORDER BY nama_supplier"); 
$supplier = array(); 
while($row = mysql_fetch_object($query)){ 
$supplier = $row; 
} 
echo json_encode($supplier); 

,但它只是帶我1分的記錄,結果都是這樣

{"id_supplier":"5","nama_supplier":"PT Unggas Makmur"} 
+2

不要使用'mysql_ *'功能,它們被棄用的PHP 5.5,並且在PHP 7.0完全刪除。使用['mysqli'](http://php.net/manual/en/book.mysqli.php)或['pdo'](http://php.net/manual/en/book.pdo.php)代替。 [這就是爲什麼你不應該使用'mysql_ *'函數](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)。 –

回答

1

這將是:

while($row = mysql_fetch_object($query)){ 
$supplier[] = $row; // not only $supplier - [] will automatically increment the index 
} 
1

使用[]陣列。

$query = mysql_query("SELECT id_supplier, nama_supplier FROM supplier ORDER BY nama_supplier"); 
$supplier = array(); 
while($row = mysql_fetch_object($query)){ 
$supplier[] = $row; 
} 
echo json_encode($supplier); 
0

您需要使用[]數組:

$query = mysql_query("SELECT id_supplier, nama_supplier FROM supplier ORDER BY nama_supplier"); 
$supplier = array(); 
while($row = mysql_fetch_object($query)){ 
$supplier[] = $row; // not only $supplier ,but [] will increment, and get all the values 
} 
echo json_encode($supplier); 
+0

這是如何改善已提供的答案的? – YvesLeBorg

+0

@YvesLeBorg,我想你沒有檢查過。兩個答案几乎同時發生,沒有時差。在採取任何行動之前,你應該先看過它 – Nehal

+0

不幸的是,我沒有'檢查'...雖然現在沒有人能夠看到它,但是兩分鐘之後,其他答案都會與你相聚。 – YvesLeBorg