[英]MySQL -> PHP Array -> Json need output in array plus object format
我正在尝试从MySQL提取数据并以JSON格式显示它,这是部分PHP代码
$sql = "SELECT item, cost, veg, spicy_level FROM food1";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
echo json_encode($row),"<br/>";}
?>我正在输出为
{"item":"dosa","cost":"20","veg":"0","spicy_level":"1"}
{"item":"idli","cost":"20","veg":"0","spicy_level":"2"}
但我需要它
food1:[
{"item":"dosa","cost":"20","veg":"0","spicy_level":"1"},
{"item":"idli","cost":"20","veg":"0","spicy_level":"2"}
]
谁能指导我? 我认为我得到的是对象格式,我需要以数组格式(即[&])输出。 这个json和php非常新。
您可以将查询结果封装在数组中,然后将其打印出来。
$sql = "SELECT item, cost, veg, spicy_level FROM food1";
$result = $conn->query($sql);
$a = array();
while($row = $result->fetch_assoc()) {
if($a['food1'] ==null)
$a['food1'] = array():
array_push($a['food1'],$row);}
echo json_encode($a);
?></i>
您的代码应为:
$sql = "SELECT item, cost, veg, spicy_level FROM food1";
$result = $conn->query($sql);
$food['food1'] = array();
while($row = $result->fetch_assoc()) {
$food['food1'][] = $row;
}
echo json_encode($food);
不要在循环中每次都调用json_encode
。 将所有行放入数组中,然后对其进行编码。
$food = array();
while ($row = $result->fetch_assoc()) {
$food[] = $row;
}
echo json_encode(array('food1' => $food));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.