2014-10-07 65 views
0

我希望对我的问题有所帮助,我显示的是在一段时间内获得的总销售额,我已成功完成,现在我需要的是如何显示导致总额的所有单独价格。例如总数是10,我买了苹果4,橙子6,10是总价。如何在MySQL中显示导致计算总数的所有单个字段?

我这里有我的查询使用输入型日期时间段显示出来,

$datefrom = $_GET['datefrom']; 
$dateto  = $_GET['dateto']; 
$qry = "SELECT sum(order_detail.quantity*order_detail.price) as chenes, orders.date 
     FROM order_detail 
     LEFT JOIN orders ON order_detail.orderid=orders.serial 
     WHERE date(orders.date) BETWEEN '$datefrom' AND '$dateto'"; 

mysql_set_charset("UTF8"); 
$result = @mysql_query($qry); 

while ($row=mysql_fetch_array($result)){ 
    echo "Sales from ".date("F d Y",strtotime($datefrom))." "; 
    echo "to ".date("F d Y",strtotime($dateto))." are a total of "; 
    echo "₱".number_format($row['chenes'],2); 
} 

,这里是我的显示单个价格为每个订单ID码。

$AAA = "SELECT order_detail.quantity,order_detail.price,order_detail.orderid, orders.date 
     FROM order_detail 
     LEFT JOIN orders ON order_detail.orderid=orders.serial 
     WHERE orderid=3"; 
[email protected]_query($AAA); 
while($CCC=mysql_fetch_array($BBB)){ 
    echo "<br>".$CCC['price']."<br>"; 
} 

它的工作原理,但到目前为止,我不知道如何自动显示它没有orderid。

请帮我显示每个的价格,因为到目前为止我只显示总数,而现在我需要的是显示总数,它是分解。我试过上面的查询,到目前为止我被卡住了。请帮忙 。谢谢。

+2

请不要使用'mysql_ *'函数](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)。 *他们不再维护,并[已正式弃用](https://wiki.php.net/rfc/mysql_deprecation)*。学习[准备的语句](http://en.wikipedia.org/wiki/Prepared_statement),并使用[PDO](http://us1.php.net/pdo)或[MySQLi](http:// us1.php.net/mysqli)。 [本文](http://php.net/manual/en/mysqlinfo.api.choosing.php)将帮助你决定。 – 2014-10-07 13:41:41

+0

你在order_detail表中有单个orderid的多个条目吗? – 2014-10-07 13:53:26

+0

为什么不在第一次查询中带回order_detail.orderid,以便可以在第二次查询中使用它?或者..在第二个查询中使用日期范围以及第一个。 – JNevill 2014-10-07 13:53:36

回答

0

我修复了您的代码。

$qry = "SELECT sum(order_detail.quantity*order_detail.price) as chenes, orders.date, order_detail.price 
     FROM order_detail 
     LEFT JOIN orders 
     ON order_detail.orderid=orders.serial 
     WHERE date(orders.date) BETWEEN '$datefrom' AND '$dateto'"; 
     $result = @mysql_query($qry); 

     while ($row=mysql_fetch_array($result)){ 
     echo "Sales from ".date("F d Y",strtotime($datefrom))." "; 
     echo "to ".date("F d Y",strtotime($dateto))." are a total of "; 
     echo "₱".number_format($row['chenes'],2); 

      $AAA = "SELECT order_detail.quantity*order_detail.price as xax,order_detail.price,order_detail.orderid, orders.date 
       FROM order_detail 
       LEFT JOIN orders 
       ON order_detail.orderid=orders.serial 
       WHERE date(orders.date) BETWEEN '$datefrom' AND '$dateto'"; 
      [email protected]_query($AAA); 
      while($CCC=mysql_fetch_array($BBB)){ 
       echo "<br>".$CCC['xax']."<br>"; 
      } 

     } 

根据我读过的评论,这里是我所做的。创建一个新的查询,基于您的文章并添加您的WHERE子句。

2

通过使用此查询,您将获得逗号分隔的数量和价格在不同的两列foreach orderid。

SELECT GROUP_CONCAT(IFNULL(od.quantity,0)) AS quantity, 
     GROUP_CONCAT(IFNULL(od.price,0)) AS price, 
     od.orderid,o.date 
FROM orders o 
    LEFT JOIN order_detail od ON od.orderid=o.serial 
GROUP BY o.serial;