2016-11-03 8 views
1

こんにちは人は助けが必要です。PHPエコーjsonは2つのカテゴリと複数のレコードしかありません

だから私はこのようなJSON配列形式をエコーし​​ようとしている:

{"ttype": [{ "id":"1", "type":"Order No.","code":"ORDNO" }, 
      {"id":"2", "type":"Orderline", "code":"ORDLINE"} ] 

,"input":[{"id":"1","order":"Order No.", "limit":"5"}, 
{"id":"2","order":"Order No.", "limit":"5"}, 
{"id":"2", "order":"Order Line No.","limit":"10"}]} 

だからここに私のコードです:

$query = "SELECT * FROM `order` WHERE is_deleted = 0 ORDER BY id ASC"; 
$que = mysql_query($query); 
while($row = mysql_fetch_array($que)){ 
    $id = $row['id']; 
    $keyword = $row['keyword']; 
    $parameters = $row['parameters']; 

    $json = array(
      'ttype'=>array(array(
       'id'=>$id, 
       'type'=>'', 
       'code'=>$keyword 
       )),'input'=>array(array(
         'id' =>$id, 
         'order'=>'', 
         'limit'=>20 
       )) 
     ); 

    echo json_encode($json); 
} 

問題はここにある私が取得しています何をされています

{"ttype":[{"id":"1","type":"","code":"ORDNO"}],"input":[{"id":"1","order":"","limit":20}]}{"ttype": [{"id":"2","type":"","code":"ORDLINE"}],"input": [{"id":"2","order":"","limit":20}]} 

適切なフォーマットを正しく取得するにはどうすればよいですか? ありがとう

+1

データ構造を構築し、ループの後に 'json_encode() 'を1回だけ使用する必要があります。 – jeroen

+0

こんにちはjeroen?私はループの後にjson_encode()を入れようとしましたが、私はこのようなid 2だけの単一のレコードを取得しています:{"" id ":" 2 " "入力":[{"" id ":" 2 "、" order ":" "、" limit ":20}]} –

+0

json_encodeを入れてみてください($ json、true) – Ognj3n

答えて

0

whileループには2つの変数が必要です。それに応じて変数json_encodeを構造体に合わせてください。これはあなたの仕事をやり遂げる方法です

0

私はすでに私の問題を解決しました。だからここ

は私のコードです:

$query = "SELECT * FROM `order` WHERE is_deleted = 0 ORDER BY id ASC"; 
$que = mysql_query($query); 
while($row = mysql_fetch_array($que)){ 
    $id = $row['id']; 
    $keyword = $row['keyword']; 
    $parameters = $row['parameters']; 


    $array1[] = array(
     'id'=>$id, 
     'type'=>'', 
     'code'=>$keyword 
     ); 

    $array2[] = array(
      'id'=>$id, 
      'order'=>'', 
      'limit'=>20 
     ); 
} 

$globalarray = array(
        'ttype'=>$array1, 
        'input'=>$array2 
    ); 

echo json_encode($globalarray); 

私は今、このような結果を得ている:

{"ttype":[{"id":"1","type":"","code":"ORDNO"}, {"id":"2","type":"","code":"ORDLINE"}],"input":[{"id":"1","order":"","limit":20},{"id":"2","order":"","limit":20}]} 

はあなたの助けをありがとう! 特にウォリード・アーメド卿に。 私はあなたに謝っています。あなたの答えは私にこのことを可能にする考えを与えました。

ありがとうございました!

0

下記のコードを試してください。

$query = "SELECT * FROM `order` WHERE is_deleted = 0 ORDER BY id ASC"; 
     $que = mysql_query($query); 
     while($row = mysql_fetch_array($que)){ 
      $id = $row['id']; 
      $keyword = $row['keyword']; 
      $parameters = $row['parameters']; 

      $json[] = array(
        'ttype'=>array(array(
         'id'=>$id, 
         'type'=>'', 
         'code'=>$keyword 
         )),'input'=>array(array(
           'id' =>$id, 
           'order'=>'', 
           'limit'=>20 
         )) 
       ); 

     } 
     echo json_encode($json); 
関連する問題