对于学校项目,我必须将数据库数据显示为有效的json文件。
$result = mysqli_query($mysqli, "SELECT * FROM `csvdata`");
echo "{ \"films\" : [";
while ($row = mysqli_fetch_array($result)) {
$jsonResult = json_encode($row);
echo $jsonResult;
echo ",";
}
echo "]}";
我得到的输出是:
{
"films": [
{
"0": "Man on fire",
"titel": "Man on fire",
"1": "Actie",
"genre": "Actie"
},
{
"0": "Dumb and Dumberer",
"titel": "Dumb and Dumberer",
"1": "Comedy",
"genre": "Comedy"
},
{
"0": "DefQon 2014",
"titel": "DefQon 2014",
"1": "Muziek",
"genre": "Muziek"
},
]
}
现在我的问题是,如何删除最后一个逗号,我找不到。并且所有数据都告诉数据2次,我也不知道如何避免这种情况。
答案 0 :(得分:3)
让json_encode
处理整个事情 - 构建一个数据数组,然后使用json_encode
。
$result = mysqli_query($mysqli, "SELECT * FROM `csvdata`");
$response = array();
$response['films'] = array();
while ($row = mysqli_fetch_array($result)) {
$response['films'][] = $row;
}
echo json_encode($response);
答案 1 :(得分:0)
执行此操作的一个好方法是,在编写每条记录之后不要放置逗号,而是之前每条记录。
然后你需要做的就是添加一个不输出第一行逗号的if语句。
答案 2 :(得分:-2)
$result = mysqli_query($mysqli, "SELECT * FROM `csvdata`");
echo "{ \"films\" : ";
$jsonResult=array();
while ($row = mysqli_fetch_array($result)) {
$jsonResult[] = $row;
}
echo json_encode($jsonResult);
echo "}";
使用小示例http://sandbox.onlinephpfunctions.com/code/c226c901b231f7aea373b462ad2b807ec88490f0