首页 > 解决方案 > 为 Json 从 MYSQL 中分离检索到的数据(为 API C# 做准备)

问题描述

我正在尝试为我的 API 准备 Json 数据,这是我目前拥有的代码:

if(isset($_GET)) {
    include('db.php');
    $result = mysqli_query(
        $con,
        "SELECT * FROM `vragen`");

    while($row = mysqli_fetch_assoc($result)) {
            $vraag_ID = $row['vraag_ID'];
            $vraagnummer = $row['vraagnummer'];
            $vraag = $row['vraag'];
            response($vraag_ID, $vraagnummer, $vraag);
    }

}

function response($vraag_ID, $vraagnummer, $vraag)
{

    $response['vraag_ID'] = $vraag_ID;
    $response['vraagnummer'] = $vraagnummer;
    $response['vraag'] = $vraag;
    $response = [$response];
    $json_response = json_encode($response);
    echo $json_response;
}

输出此数据:

[{"vraag_ID":"1","vraagnummer":"1","vraag":"Vraag1Vraag1Vraag1Vraag1"}][{"vraag_ID":"2","vraagnummer":"2","vraag":"Vraag2Vraag2Vraag2Vraag2"}][{"vraag_ID":"3","vraagnummer":"3","vraag":"Vraag3Vraag3Vraag3Vraag3"}][{"vraag_ID":"4","vraagnummer":"4","vraag":"Vraag4Vraag4Vraag4Vraag4"}][{"vraag_ID":"5","vraagnummer":"5","vraag":"Vraag5Vraag5Vraag5Vraag5"}]

显然,这还不是“Json 就绪”,并将其作为纯文本输出。

提前致谢。

标签: phpjsonapi

解决方案


您不需要这样的功能,您使任务过于复杂。只需将您的数组直接构建到while循环中:

<?php
    if (isset($_GET)) {
        include('db.php');
        $result = mysqli_query(
            $con,
            "SELECT * FROM `vragen`");

        $response = [];
        while ($row = mysqli_fetch_assoc($result)) {
            $response[] = $row;
        }
        echo json_encode($response);
    }
?>

在您的内部,SELECT您可以指定要包含哪些字段的 upfont。


推荐阅读