【问题标题】:forerach on associative key from sum query来自总和查询的关联键的 foreach
【发布时间】:2016-11-04 20:25:00
【问题描述】:

我使用字段总和从表中获取记录 从销售额中选择 sum(net),sum(vat),sum(so_total) 如下所示

 $s=mysqli_query($con,"SELECT sum(net),sum(vat),sum(total) from sales");
 $result=mysqli_fetch_array($s);
 foreach($result as $data)
 {
     $so_net                = $data['net'];
     $so_tax            = $data['vat'];
     $fx_rate           = $data['total'];

 }

错误 未定义的索引网
未定义的索引增值税
未定义的索引总数

当我们在 mysql 中运行查询时,如何仅获取 sum(net) sum(vat) sum(total) 的字段名称。

【问题讨论】:

  • 试试$so_net = $data['sum(net)']; $so_tax = $data['sum(vat)']; $fx_rate = $data['sum(total)'];
  • 当 echo "
    " 时你会得到什么; print_r($data);

标签: php mysql


【解决方案1】:

您必须为每个字段创建alias, 使用它可能会对您有所帮助

$data=mysqli_query($con,"SELECT sum(net) as net ,sum(vat) as vat ,sum(total) as total from sales");
$result=mysqli_fetch_array($data);
foreach($so_result as $result){
    $so_net             = $data['net'];
    $so_tax             = $data['vat'];
    $fx_rate            = $data['total'];
}

【讨论】:

  • 那么你可以使用 $so_net = $data['sum(net)'];
  • 执行查询后有什么办法可以省略sum
【解决方案2】:

您不需要使用 foreach 循环。也可以使用alias 进行总和

$data=mysqli_query($con,"SELECT sum(net) as net,sum(vat) as vat ,sum(total) as total from sales");
    $result=mysqli_fetch_array($data);
    echo $result['net'];
    echo $result['vat'];
    echo $result['total'];

【讨论】:

    【解决方案3】:

    使用别名会更好。

    SELECT sum(net) totalNet, sum(vat) totalVat ,sum(total) totalSum from sales
    

    您将在数组中获得 totalNet、totalVat、totalSum 作为键的值

    另一种解决方案可能是不使用关联数组。

    $data[0], $data[1], $data[2]
    

    【讨论】:

      【解决方案4】:

      为总和使用别名

      $data=mysqli_query($con,"SELECT sum(net) as net, sum(vat) as vat ,sum(total) as total from sales");
          $result = mysqli_fetch_array($data);
      if(count($result)>0){
          $net = $result['net'];
              $tax = $result['vat'];
              $rate = $result['total'];
      } 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-26
        • 2019-07-20
        相关资源
        最近更新 更多