【发布时间】:2018-11-06 04:55:03
【问题描述】:
好的,这很像我的上一个问题 (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 字符串的第一个和最后一个元素)
我想要一个这样的 JSON 对象:
[{1,"name1","open","value1"},{2,"name2","open","value2"}]
可以直接做吗?还是代码必须和$arrayofdata交互一步步创建一个新数组?
【问题讨论】:
-
你不懂json格式。见json.org。
-
您想要的 json 唯一不同的是,内部数组不会有大括号,而是方括号(因为这些数组中没有键名)。您看到的问题是由于 mysqli_fetch_array 实际返回的内容......默认情况下包括键名(MYSQLI_BOTH)......并且也只返回第一行(您必须像 zhilevans 示例中那样循环它)。