簡體   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