我有一個帶有 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 關注
- 186 瀏覽
添加回答
舉報
0/150
提交
取消