0

私はこのコードphpを持っています

$query2 = "SELECT * FROM hosts where cod='$stream'";
    $result2=mysql_query($query2);
    while ($row2=mysql_fetch_array($result2)) 
    {
$audio=$row2['audio'];
$def=$row2['def'];
$hosty=$row2['host'];   
    }

この形式でjsonに結果を取得する方法:

var sources = {"english":{"360":["bayfiles","filebox","zalaa","cramit"],"720":["cramit","180upload"]},"portugues":{"1080p":["zalaa","cramit"],"720":["cramit","180upload"]}}

可能です?

ありがとう

4

4 に答える 4

2

すべてのクエリで出力配列を作成する場合は、補助配列を使用して各行を取得する必要があります。

 $arrayAux=array();
 $query2 = "SELECT * FROM hosts where cod='$stream'";
    $result2=mysql_query($query2);
    while ($row2=mysql_fetch_array($result2,MYSQL_ASSOC)) 
    {
        $audio=$row2['audio'];
        $def=$row2['def'];
        $hosty=$row2['host'];  
        push_array(array("audio"=>$audio,"def"=>$def,"host"=>$hosty)); 
    }
  print(json_encode($arrayAux));

PS:すべてのクエリを削除するのか、1つだけに適用するのかわかりませんでした。1つだけの場合:

  1. arrayAuxを排除します。
  2. しばらくの間を排除します。
  3. そして直接作るprint (json_encode (mysql_fetch_array ($ query2, MYSQL_ASSOC)));
于 2012-09-07T02:09:44.047 に答える
1

PHP関数json_encode()を使用して、必要な形式に一致する配列で渡すことができます。

于 2012-09-07T01:21:59.670 に答える
0

使用json_encode()

echo json_encode($arr);
于 2012-09-07T01:22:29.423 に答える
0

はい、これはPHPの json_encode()関数を使用することで可能です。

json_encode —値のJSON表現を返します

ただし、多次元オブジェクトを取得するには、さらにクエリを実行するか、最初のクエリから取得した値の一部を反復処理する必要がある場合があります。次に、多次元PHP配列でデータを作成し、json_encode()オブジェクト全体で関数を実行します。

$arr = array(
  'a' => 1, 
  'b' => 2, 
  'c' => array(
    'd'=>3,
    'e'=>4
  )
);

echo json_encode($arr);


{
  "a":1,
  "b":2,
  "c":{ 'd':3,"e":4}
}
于 2012-09-07T01:23:41.573 に答える