【问题标题】:Need little help php mysql需要一点帮助 php mysql
【发布时间】:2014-04-07 09:18:55
【问题描述】:

问题来了

$rd = do_mysql_query("SELECT sum(product_price * '{$count}') as letsee 
                      FROM prices 
                      WHERE product_id = '{$record['prodid']}' 
                      AND id='{$id_p}' 
                      ORDER BY product_id") or sqlerr(__FILE__, __LINE__);
while($row = mysqli_fetch_array($rd)){
echo "{$record['prodid']}:{$row['letsee']}<br />"; //id:count
}

给我了

10:130
10:95
7:88
6:35
6:120
6:330
11:104
11:64

我需要按 id 加所有计数

需要的结果

  • 10:225
  • 7:88
  • 6:485
  • 11:168

谢谢

【问题讨论】:

标签: php mysql loops while-loop sum


【解决方案1】:

你可以用php做到:

foreach($records as $record){//First loop or something like it
    $rd = do_mysql_query("SELECT sum(product_price * '{$count}') as letsee FROM prices WHERE product_id = '{$record['prodid']}' AND id='{$id_p}' ORDER BY product_id") or sqlerr(__FILE__, __LINE__);
    while($row = mysqli_fetch_array($rd)){
        $final_array[$record['prodid']]+=$row['letsee']; //id:count
    }
}//End of First loop or something like it

foreach($final_array as $key => $value){
     echo $key.':'.$value;
}

注意:我认为你应该使用 php,因为检查你的代码似乎有另一个循环来获取 $record['prodid']$count 导致重复。如果您多次发送相同的 product_id,则无法通过查询来解决此问题。

【讨论】:

  • 尝试一下 - 警告:mysqli_fetch_array() 期望参数 1 为 mysqli_result,Z:\home\test2.ru\www\takeorders.php 第 90 行中给出的 null
  • 忘记查询,不能解决你的问题,试试php
  • 如果我喜欢第二个(使用 php)它的播种我 [code]10:95 10:95 7:88 10:95 7:88 6:330 10:95 7:88 6:330 11:64[/code]
  • 更新了代码,你必须让 foreach 脱离第一个循环。通过这种方式,您可以创建包含总计数的数组,然后在第一个循环完成后,执行 foreach 以打印出结果
  • get these: foreach($final_array as $key =&gt; $value){ echo $key.':'.$value; } $body .= "&lt;p&gt;"; out of this loop: while ($record = mysqli_fetch_array($res)) { 我认为你应该在继续以这种方式编码之前学习一些 DB Normalization
【解决方案2】:

试试这个

$rd = do_mysql_query("SELECT sum(product_price) as letsee FROM prices WHERE product_id = '{$record['prodid']}' AND id='{$id_p}' GROUP BY product_id ORDER BY product_id") or sqlerr(__FILE__, __LINE__);
while($row = mysqli_fetch_array($rd)){
echo "{$record['prodid']}:" . $row['letsee'] * $count ."<br />"; //id:count
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    • 2018-05-21
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    相关资源
    最近更新 更多