繁体   English   中英

MySQL-> PHP Array-> Json需要以数组加对象格式输出

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM