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. 消除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

是的,这可以通过使用 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 回答
0

使用json_encode()

echo json_encode($arr);
于 2012-09-07T01:22:29.423 回答