2016-04-25 5 views
-1

Я пытаюсь показать массив, как это (показать id_supplier и nama_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_ * функции, они являются устаревшими в РНР 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

К сожалению, я сделал «проверено» ... хотя никто не может его увидеть, оба других ответа пришли и ваши 6 минут спустя. – YvesLeBorg

Смежные вопросы