订单结果按行估价计算答案

时间:2013-10-22 15:20:58

标签: php mysql sql

我有以下查询,为我提供了一个表格,其中包含正确的描述和数字:

$result = mysqli_query($con,"SELECT * FROM b_sale_basket WHERE ORDER_ID=$ID");

$total=0;
while($row = mysqli_fetch_array($result))
  {
  $quantity = $row['QUANTITY'];
  $description = $row['NAME'];
  $unitprice = $row['PRICE'];
  $lineprice = $row['PRICE']*$row['QUANTITY'];
  $total=$total+$lineprice;

$tbl_header = '<table style="width: 650px;" cellspacing="0" cellpadding="5">';
$tbl_footer = '</table>';
$tbl = '';

$tbl .= '
    <tr>
        <td style="width: 50px; text-align: left; border-bottom: 0.1em solid #808080;"><p style="color:#808080;">'.number_format($quantity,0).'</p></td>
        <td style="width: 350px; border-bottom: 0.1em solid #808080;"><p style="color:#808080;">'.$description.'</p></td>
        <td style="width: 125px; text-align:right; border-bottom: 0.1em solid #808080;"><p style="color:#808080;">'.number_format($unitprice,2).'</p></td>
        <td style="width: 125px; text-align:right; border-bottom: 0.1em solid #808080;" align="right" ><p style="color:#808080;">'.number_format($lineprice,2).'</p></td>
    </tr>
';

您将能够看到$ lineprice由以下公式计算:

$lineprice = $row['PRICE']*$row['QUANTITY'];

现在我想根据此字段中的值来排序表结果。我试过了:

SELECT * FROM b_sale_basket WHERE ORDER_ID=$ID ORDER BY '$lineprice' ASC

但这并不奏效。我如何在此列中的表格中订购结果?

提前谢谢你, 安迪

2 个答案:

答案 0 :(得分:5)

ORDER BY PRICE * QUANTITY

按固定数字排序,就像你正在尝试一样无效,因为数据库不知道将哪个字段与固定值进行比较。但是如果你在deb中进行乘法运算,就像在上面的代码片段中一样,你将获得预期的排序顺序。

答案 1 :(得分:0)

SELECT quantity * price as total FROM b_sale_basket ORDER BY total;