2016-04-23 2 views
-1

Я использую json-decode внутри цикла while. Каждый раз, когда он создает json-код в файле .json, он выглядит ниже, и я не мог прочитать этот .json-файл.mysql данные в json через php

[{"0":"2","id":"2","1":"avss","productname":"avss","2":"2920","price":"2920","3":"xasx","textarea":"xasx","4":"e3.jpg","name":"e3.jpg","5":"uploads\/e3.jpg","imagepath":"uploads\/e3.jpg"}] 

Я хочу, чтобы это было так ...

[ 
    { 
     "id": 0, 
     "name": "Item 0", 
     "price": "$0" 
    }, 
    { 
     "id": 1, 
     "name": "Item 1", 
     "price": "$1" 
    }, 
    { 
     "id": 2, 
     "name": "Item 2", 
     "price": "$2" 
    }, 
    { 
     "id": 3, 
     "name": "Item 3", 
     "price": "$3" 
    }, 
    { 
     "id": 4, 
     "name": "Item 4", 
     "price": "$4" 
    }, 
    { 
     "id": 5, 
     "name": "Item 5", 
     "price": "$5" 
    }, 
    { 
     "id": 6, 
     "name": "Item 6", 
     "price": "$6" 
    } 
] 

Код:

global $connection; 
$sql = "SELECT * FROM `forms`"; 
$mq = mysqli_query($connection,$sql); 

while($row = mysqli_fetch_array($mq)){ 
      echo '<div class="form-group"><img src="'.$row['imagepath'].'" alt="HTML5 Icon" style="width:250px;height:180px">&nbsp '.    
      $row['name']."".$row['price'].'</div>'; 



    $emparray = array(); 
    $emparray[] = $row; 
    $fp = fopen('tables/data.json', 'w'); 
    $k= json_encode($emparray); 

    fwrite($fp,$k); 
    fclose($fp); 
+1

где ваш код? –

+0

Где находится '' '' 'для' while ($ row = mysqli_fetch_array ($ mq)) {'? – Barmar

+0

Вы очищаете '$ emparray()' каждый раз в цикле. Вы должны инициализировать его ** перед ** циклом, добавить в массив ** внутри ** цикл и преобразовать его в JSON и записать в файл ** после ** цикла. Это простая логика. – Barmar

ответ

0

Использование

while($row = mysqli_fetch_array($mq, MYSQLI_ASSOC)) { 

или

while($row = mysqli_fetch_assoc($mq)) { 

для получения ассоциативного массива. По умолчанию mysqli_fetch_array будет получать как ассоциативные, так и числовые индексы.

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