为了账号安全,请及时绑定邮箱和手机立即绑定

如何将多个 MySQL 查询保存在一个 json 数组中?

如何将多个 MySQL 查询保存在一个 json 数组中?

PHP
慕娘9325324 2023-06-18 17:47:20
我有一个带有 ajax 'POST' 方法的网站,该方法将数据 ID 发送到 php 文件。根据收到的 id,从数据库接收适当的 MySQL 查询并将其放入 JSON 数组。存档.php:if(isset($_POST["id"])){ //data received from the html POST method     $id = $_POST["id"];    if(is_numeric($id) == TRUE){        $query="SELECT * FROM TestDataBase.usr WHERE idusr =" . $id;        $result=mysqli_query($conn, $query);    }else if(is_numeric($id) == FALSE && $id != ""){        $query="SELECT * FROM TestDataBase.usr WHERE INSTR(name,'" . $id ."')";        $result=mysqli_query($conn, $query);    }    $i=0;        while($row = mysqli_fetch_array($result)){            $data["num"] = $i;            $i += 1;            $data["idusr"] = $row["idusr"];            $data["name"] = $row["name"];            $data["surname"] = $row["surname"];        }    echo json_encode($data);}使用 MySQLINSTR方法,我将所有包含的查询解析id为一个$data数组,然后将其编码为 json,但由于某种原因,只有表中的最后一个查询被发送回 html 文件。如何将多个查询而不是一个添加到 json 数组中?谢谢!
查看完整描述

1 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

要根据结果创建二维数组,您必须将数组添加到数组:


  $data=[]; // <-- create empty array to hold the results      


   while($row = mysqli_fetch_array($result)){

     //NOW push all elements in an array into $data:


     $data[]= // <-- push new value in $data = array

       [

        'num' => $i,

        'idusr' => $row['idusr'],

        'name' => $row['name'],

        'surname' => $row['surname']

       ];

     $i += 1;

    }



    echo json_encode($data);


查看完整回答
反对 回复 2023-06-18
  • 1 回答
  • 0 关注
  • 141 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信