【问题标题】:How to create a JSON from table PHP如何从表 PHP 创建 JSON
【发布时间】:2015-11-22 22:13:02
【问题描述】:

如何在php中创建这样的json;

[{"idorder":"34",
 "totalOrder":"55",
 "products":[{"idproduct":"5","price":"10"},{"idproduct":"4","price":"45"}]
}]

从表mysql;

+---------+-----------+--------------+
| idorder | idproduct | priceproduct |
+---------+-----------+--------------+
|       1 |         4 |           45 |
|       1 |         5 |           10 |
+---------+-----------+--------------+

我当前的代码 something.php;

    ...
$result = $conn->query($pendientesq);
$return_arr = array();
$productos = array();
$r1=$result->fetch_array();
$return_arr['idorder'] = $r1['idorder'];
$return_arr['totalOrder'] = '55';

//但是现在????如何创建具有多个产品的子数组。

echo json_encode($return_arr);

【问题讨论】:

  • 先创建多维数组,然后编码成json。
  • var_dump($r1);什么内容?

标签: php json mysqli


【解决方案1】:

你需要尝试这样的事情:

$r1=$result->fetch_array();
$return_arr['idorder'] = $r1['idorder'];
$return_arr['totalOrder'] = '55';
// suposse total products are 10

$product=10;
for($i=0;$i<product;$i++){
$return_arr['product'][] = array("idproduct"=>$i,"price"=>$i);//use your price and idproduct.
}

echo json_encode($return_arr);

【讨论】:

    【解决方案2】:

    我不知道你的桌子长什么样,因为你没有描述它。
    但我得到了例如带有 idorder、idproduct、priceproduct 字段的“订单”表。
    并写了这段代码:

    // $q = "SELECT * FROM orders WHERE idorder = 5"; // for single order
    $q = "SELECT * FROM orders"; 
    $result = $conn->query($q);
    $orders = [];
    while($record=$result->fetch_array()) {
      if(!isset($orders[$record['idorder']])) {
        $orders[$record['idorder']] = [];
        $orders[$record['idorder']]['idorder'] = $record['idorder'];
        $orders[$record['idorder']]['totalOrder'] = 0;
        $orders[$record['idorder']]['products'] = [];
      }
    
      $orders[$record['idorder']]['products'][] = ['idproduct' => $recrod['idproduct'], 
                                                   'price'     => $record['priceproduct']];
      $orders[$record['idorder']]['totalOrder'] += $record['priceproduct'];
    }
    
    $orders = array_values($orders);
    
    echo json_encode($orders);
    

    【讨论】:

      猜你喜欢
      • 2015-08-31
      • 2017-06-18
      • 1970-01-01
      • 2020-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-29
      • 1970-01-01
      相关资源
      最近更新 更多