0

次の形式でjsonを印刷する必要があります

> { header: [ { "signinpage": "ABC" }, { "signinpage": "XYZ" }, {
> "signinpage": "PQR" }, { "signinpage": "ERT" } ] }

私は次のコードを使用しました:

 while ($row = mysql_fetch_array($res,MYSQL_ASSOC)) 
  {
    $rows[] = $row["customer"];
  }

  if(mysql_num_rows($res)!= 0)
     {  
      if (!isset($responses[$row['$header']= array ()]))
      {
        for ($i=0;$i<count($rows);$i++)
        {
           if(isset($responses[$row['$header']])) 
           {
              $responses[$row[$header]] = array('signinpage'=>$rows[$i]); 
           }  
         }
       }
       header('Cache-Control: no-cache, must-revalidate');
       header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
       header('Content-type: application/json; charset="utf-8"');
       echo json_encode($responses);
     }

私はJSONを初めて使用しますが、印刷が難しいと感じた場合、目的の出力を取得するために誰かが助けてくれます。よろしくお願いします。

4

3 に答える 3

0

ループに問題があります。$row / $header 変数がどこに設定されているのか、そこに何が入っているのかわかりません。そして、あなたが書いた isset 条件は間違っています。次のようなことを試してください:

$responses = array();
while ($row = mysql_fetch_array($res,MYSQL_ASSOC))  {
    $rows[] = $row["customer"];
}

if(mysql_num_rows($res)!= 0) {  
    if (!isset($responses[$row['$header']])) {
        // in case it is not set, create an array..,
        $responses[$row['$header']]= array();
        for ($i=0; $i<count($rows); $i++) {
            // for each row add your assoziative array to it
            $responses[$row[$header]][] = array('signinpage'=>$rows[$i]); 
        }
    }
}
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json; charset="utf-8"');
echo json_encode($responses);
于 2013-03-06T09:00:40.927 に答える
0

$responses = array();while ループの直前にこの linw を追加します。

$responses = array();
 while ($row = mysql_fetch_array($res,MYSQL_ASSOC)) 
  {
    $rows[] = $row["customer"];
  }

  if(mysql_num_rows($res)!= 0)
     {  
      if (!isset($responses[$row['$header']= array ()]))
      {
        for ($i=0;$i<count($rows);$i++)
        {
           if(isset($responses[$row['$header']])) 
           {
              $responses[$row[$header]] = array('signinpage'=>$rows[$i]); 
           }  
         }
       }
       header('Cache-Control: no-cache, must-revalidate');
       header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
       header('Content-type: application/json; charset="utf-8"');
       echo json_encode($responses);
     }

コードの $header とは何ですか?値が割り当てられていません。

if (!isset($responses[$row['$header']= array ()]))これは間違っています。キーを配列にすることはできません

于 2013-03-06T08:47:55.883 に答える
0

これを試してみてください。

$rows = array();
while($row = mysql_fetch_array($res)) { 
$rows[$row['$header']][]['signinpage']=$row['customer'];
}
print json_encode($rows);

これがあなたを助けますように!

于 2013-03-06T08:50:14.900 に答える