我有一个带有 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);
- 1 回答
- 0 关注
- 141 浏览
添加回答
举报
0/150
提交
取消