PHP-根据商品名称的总和编号

时间:2018-08-16 01:21:04

标签: php mysql

在PHP中是新手,我在脚本中需要帮助,因为我没有得到首选的答案。 我有一个“账单”表,其中存储了销售项目的信息。如下

id | gid | drinks | no_drinks | servicetime | date
1     2    Orange   4            1           2018-08-16
2     2    Orange   2            1           2018-08-16
3     2    Orange   3            1           2018-08-16

下面的文件(BillsController.php)查询gid,服务时间和日期,并且查询等于true。

BillsController.php

 $bi = Barz::whereRaw('gid=? and servicetime=? and date=?', array($gid, $t,date('Y-m-d')))->get();

        return View::make('bills.show', compact('bi'));

下面是“ show.php”文件,该文件显示数据库中的信息。我只会向您展示其中的一些内容。

 <?php
$foods = array();
foreach($bi as $row){
$foods[]  = $row->drinks;
$idadi[]  = $row->no_drinks;

$unique = array_keys(array_count_values($foods));
$l      = count($unique); 
}
  $newarr = array();
  foreach ($unique as $key => $value) {
  array_push($newarr, $value);
 }


 ?>


    <table class="table table-bordered" id="gt">
<tr style="background-color: #f5f5f5">
    <th>Drink</th>
    <th>Qty...sx</th>
    <th>Time</th>
    <th>@cost</th>
    <th>Total@</th>
    <th>
        <select class="form-control active" id="tserv">
    <option value="{{$row->servicetime}}">{{Bill::tm($row->servicetime)}}</option>
        <select>  
    </th>
</tr>
<?php $total = 0; ?>
@for($i=0; $i < $l; $i++)

    <tr>
        <td>{{$newarr[$i]}}</td>
        <td>{{$idadi[$i]}}</td> // Only problem is here
        <td>{{Bill::appears($newarr[$i], $foods)}}</td>
        <td>{{Bar::where('name', $newarr[$i])->first()->cost}} /=</td>
        <td>{{($idadi[$i])*(Bar::where('name', $unique[$i])->first()->cost)}}/= </td>
    </tr>
<?php $total = $total + (($idadi[$i])*(Bar::where('name', $newarr[$i])->first()->cost)); ?>
  @endfor
<tr style="background-color: #f5f5f5">
    <td ></td>
    <td ></td>
    <td></td>
    <td><b>Total</b></td>
    <td id="ttl">
        {{$total}} /=
    </td>
</tr>

当我在上面的查询中运行时,我从(“ {{$ idadi [$ i]}}”)中得到4,这意味着它仅占据第一行,而其余部分未被选中。我希望它像这样(4 + 2 + 3)= 9。

2 个答案:

答案 0 :(得分:0)

将列加在一起;

SELECT col1, col2, col3, (col1+col2+col3) AS Total FROM

要一起添加行,请使用SUM()

汇总如下;

SELECT userid, SUM(col1) AS col1_total, SUM(col2) AS col2_total FROM table GROUP BY userid

答案 1 :(得分:0)

尝试一下:

从table_name GROUP BY饮料中选择SUM(no_drinks)no_drinks