PHP多维数组SQL请求到JSON

时间:2018-05-27 12:22:25

标签: php sql json

好的,这很像我的上一个问题(PHP convert a SQL request into JSON),但即使看起来很容易,也无法找到解决方案。

我有一个非常简单的SQL表:

$sql="CREATE TABLE 
      example (ID INT AUTO_INCREMENT PRIMARY KEY, 
              name VARCHAR(50), 
              status VARCHAR(50),
              value VARCHAR(50));";

使用以下值:

1 | name1 | open  | value1
2 | name2 | open  | value2
3 | name3 | close | value3

我拨打了所需的数据:

$sql= "SELECT * FROM example where status='open'";
$result= mysqli_query($link,$sql);
$arrayofdata = mysqli_fetch_array($result);

由于$ arrayofdata里面可能有1个或多个数组,我试试这个:

$JSONED = json_encode($arrayofdata);

但输出值非常奇怪,我不明白为什么,它不包括[]括号(据我所知JSON格式,[]应该是JSON字符串的第一个和最后一个元素)< / p>

我想要一个像这样的JSON对象:

[{1,"name1","open","value1"},{2,"name2","open","value2"}]

可以直接完成吗?或者代码是否必须与$ arrayofdata交互以逐步创建新数组?

1 个答案:

答案 0 :(得分:1)

您可以通过以下代码获得您的愿望结果:

$sql= "SELECT * FROM example where status='open'";
$result= mysqli_query($link,$sql);
$data = array();
while ($row = mysql_fetch_assoc($result)) {

    //... maybe some processing of $row here ...

    $data[] = $row;
}

echo json_encode($data);