2016-04-23 26 views
-1

whileループ内でjson-decodeを使用しています。 .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は連想インデックスと数値インデックスの両方をフェッチします。

関連する問題