PHP foreach循环从mysql创建JSON
我有一个多对一的问题,我用mysql组织数据,如:PHP foreach循环从mysql创建JSON,php,mysql,json,loops,for-loop,Php,Mysql,Json,Loops,For Loop,我有一个多对一的问题,我用mysql组织数据,如: >order1 : mycustomer : item1 >order1 : mycustomer : item2 >order2 : mycustomer : item3 >order2 : mycustomer : item1 >order3 : mycustomer : item2 为了便于解释,我想创建类似的JSON >order1 mycustomer
>order1 : mycustomer : item1
>order1 : mycustomer : item2
>order2 : mycustomer : item3
>order2 : mycustomer : item1
>order3 : mycustomer : item2
为了便于解释,我想创建类似的JSON
>order1 mycustomer
>> item1
>> item2,
>order2 mycustomer
>> item3
>> item1,
>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'];
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[] = [
"partnerRef" => $onum,
"lines" => $itemed
];
}
}
$flagupdate = "UPDATE `orders` SET proc = 'Y' where proc = 'N'";
myqueryi_query($conn, $flagupdate);
} else {
echo "no results";
}
echo json_encode($tx_data);
函数名中几乎没有语法错误和打字错误 不是从结果集中获取索引的正确方法 mysqli_查询函数名称不正确 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);
这段代码充满了难以置信的问题和错误!你试过调试它吗?PSST。。。echo json_解码$tx_数据;==>echo json_encode$tx_data;:还请注意,虽然$row=$result->fetch_assoc{和foreach$result作为$results{-foreach循环是不必要的,但是OP应该检测当前$row['order_number'之间的更改还有上一个…代码中还有更多的问题,例如:在每次迭代中重写$tx_数据我同意,我的答案是给这个问题的作者一个提示,告诉他如何修复语法和逻辑错误。我的答案肯定不是作者100%的期望。谢谢,我如何重写tx_数据?我想运行loop虽然我对属于订单和重复的每个项目都有结果,但我也修复了代码中的语法错误。@NaveedRamzan感谢您的更新,这将是答案,但数据不是按订单号构建JSON的,它只是为每个项目创建了一个新行,我尝试了分组方式,但我无法实现