2014-03-05 127 views
1

这里的问题是需要一些帮助PHP的MySQL

$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

感谢

+1

使用GROUP BY! https://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html – Neels

+0

如果我添加GROUP BY product_id。它显示了相同的结果 – Nazaret2005

+0

尝试GROUP BY product_id,product_price – Neels

回答

3

您可以用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,则无法使用查询来解决此问题。

+0

与试用 - 警告:mysqli_fetch_array()期望参数1为mysqli_result,null在第90行给出的Z:\ home \ test2.ru \ www \ takeorders.php中。 – Nazaret2005

+0

忘记查询,不会解决您的问题,请尝试php – CodeBird

+0

如果我做像第二(用PHP)其播种我[代码] 10:95 10:95 7:88 10:95 7:88 6:330 10:95 7:88 6:330 11 :64 [/ code] – Nazaret2005

0

试试这个

$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 
} 
+0

相同的结果:-( – Nazaret2005