PHP foreach循环从mysql创建JSON
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP foreach循环从mysql创建JSON相关的知识,希望对你有一定的参考价值。
我有很多问题,我在mysql中组织的数据像:
order1:我的客户:item1order1:mycustomer:item2order2:mycustomer:item3order2:mycustomer:item1order3:mycustomer:item2
我想创建类似JSON(出于解释目的)
order1 mycustomer
item1item2,
order2 mycustomer
item3item1,
order3 mycustomer
item2
但是我的循环是不正确的,我没有获得带有商品数组的订单,然后重复下一个订单。我在做什么错。
$query = "SELECT * from `orders` WHERE proc = 'N'";
$result = $conn->query($query);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$onum = $row['order_number'];
$socust = $row['salesorder_cust'];
foreach($result as $results)
{
$quantity_invoiced = $row[quantity_invoiced];
$unit_price = $row[unit_price];
$item_description = $row['item_description'];
$itemed = $results['item_description'];
echo $itemed;
}
$tx_data = array(
"tpRef" => "$socust",
"partnerRef" => "$onum",
"lines" => array
(
array($itemed)
)
);
}
$flagupdate = "UPDATE `orders` SET proc = 'Y' where proc = 'N'";
myqueryi_query($conn, $flagupdate);
} else {
echo "no results";
}
echo json_decode($tx_data);
- 不是从结果集中获取索引的正确方法
mysqli_query
函数名称不正确itemed
被包装在双数组中,但不需要。
$query = "SELECT * from `orders` WHERE proc = 'N'";
$result = $conn->query($query);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$onum = $row['order_number'];
$socust = $row['salesorder_cust'];
foreach($result as $results){
$quantity_invoiced = $row['quantity_invoiced'];
$unit_price = $row['unit_price'];
$item_description = $row['item_description'];
$itemed = $results['item_description'];
echo $itemed;
$tx_data[] = [
"tpRef" => $socust,
"partnerRef" => $onum,
"lines" => $itemed
];
}
}
$flagupdate = "UPDATE `orders` SET proc = 'Y' where proc = 'N'";
mysqli_query($conn, $flagupdate);
} else {
echo "no results";
}
echo json_encode($tx_data);
以上是关于PHP foreach循环从mysql创建JSON的主要内容,如果未能解决你的问题,请参考以下文章
如何在 PHP 的 foreach 循环中优化大型 mySQL?
使用 PHP foreach 循环的 javascript 中的 MySQL 数据(Google Maps API)
如何在 php foreach 循环中从 json obj 获取值
如何在 PHP、MySQL 的 foreach 中使用 array_intersect