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

    将数据从 javascript forEach 循环中的 php 数组发送到 ajax 调用的 url

    php while循环和foreach循环 mysql_fetch_array()