我在Wampserver64中创建了一个表,该表有7列(companyname
,cod
,bign
,stop
,date
,time
,{ {1}})和5行。在PHP部分,我想获取所有行的信息作为JSON输出,但是在输出中,仅读取最后一行的信息。我在下面提供了PHP代码和输出。
price
<?php $con=mysqli_connect('localhost','root','','u656325986_login'); $response=array(); $result=mysqli_query($con,"select * from travel"); if(mysqli_num_rows($result)>0){ enter code here while($row=mysqli_fetch_array($result)){ $temp=array(); $temp["companyname"]=$row["companyname"]; $temp["cod"]=$row["cod"]; $temp["bign"]=$row["bign"]; $temp["stop"]=$row["stop"]; $temp["data"]=$row["data"]; $temp["time"]=$row["time"]; $temp["price"]=$row["price"]; $response["travel"]=array(); array_push($response["travel"],$temp); } $response["t"]=1; echo json_encode($response); } else{ $response["message"]="not fonud"; echo json_encode($response); } ?>
如您所见,输出只是行的结尾。其余的行不被读取。
答案 0 :(得分:1)
您将在每次迭代中创建一个新的空数组。
在while循环之外定义此值,以便每个array_push都向其中添加项目:
$response["travel"]=array();
答案 1 :(得分:1)
我认为您应该将$response["travel"]=array();
放在while循环之外
,将您的代码替换为
<?php
$con=mysqli_connect('localhost','root','','u656325986_login');
$response=array();
$result=mysqli_query($con,"select * from travel");
if(mysqli_num_rows($result)>0){
$response["travel"]=array();
while($row=mysqli_fetch_array($result)){
$temp=array();
$temp["companyname"]=$row["companyname"];
$temp["cod"]=$row["cod"];
$temp["bign"]=$row["bign"];
$temp["stop"]=$row["stop"];
$temp["data"]=$row["data"];
$temp["time"]=$row["time"];
$temp["price"]=$row["price"];
array_push($response["travel"],$temp);
}
$response["t"]=1;
echo json_encode($response);
}
else{
$response["message"]="not fonud";
echo json_encode($response);
}
?>
答案 2 :(得分:0)
好吧,您还是不需要大部分代码。
router.get('/route1',
function (req, res) {
if (req.query) {
model.allData(req.query,
function (error, data) {
if (error) {
res.status(500).json({message: error});
} else {
let filter = structureArray.map(o =>
({ ...o, "FirstName": "aaaa","LastName":"bbbb" }));
res.status(200).json({data: filter});
};
}
});
}
});