0

次のコードは、注文した製品の個々の重量を表示します。

$weightsql = 'select op.products_name, op.products_quantity , p.products_weight from ' . TABLE_ORDERS_PRODUCTS . ' op left join ' . TABLE_PRODUCTS . ' p on op.products_id = p.products_id where op.products_id =  '.$pro['products_id'];

$weightq = tep_db_query( $weightsql );

while ($weight = tep_db_fetch_array( $weightq )){

        if($category_parent_id != 0)$list_items[] = $weight['products_weight'].'   ';

}

これは、注文された各製品の幅を示しています。私がこだわっているのは、個別の重みを表示するのではなく、合計の重みを表示する必要があるということです。たとえば、製品が3回注文され、重量が7kgの場合、現時点でのコードは次のように表示されます。

Product                   7.00  7.00  7.00

総重量21kgを表示するにはどうすればよいですか?

4

4 に答える 4

3

使用するarray_sum()

array_sum() examples
<?php
$a = array(2, 4, 6, 8);
echo "sum(a) = " . array_sum($a) . "\n";

$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);
echo "sum(b) = " . array_sum($b) . "\n";
?>
The above example will output:
sum(a) = 20
sum(b) = 6.9
于 2012-12-19T15:04:39.957 に答える
0

IDで製品を選択した場合、最も簡単な解決策は、行数に重みを掛けることです。配列に入れる必要はありません。

于 2012-12-19T15:07:17.407 に答える
0

次のように、ループの前にカウンターを 0 に設定し、ループ中に do it を追加します。

 $total = 0;
 $weightsql = 'select op.products_name, op.products_quantity , p.products_weight from ' . TABLE_ORDERS_PRODUCTS . ' op left join ' . TABLE_PRODUCTS . ' p on op.products_id = p.products_id where op.products_id =  '.$pro['products_id'];

 $weightq = tep_db_query( $weightsql );

 while ($weight = tep_db_fetch_array( $weightq )){
      if($category_parent_id != 0) {
           $list_items[] = $weight['products_weight'].'&nbsp;&nbsp;&nbsp;';
           $total += $weight['products_weight'];
      }

 }

変数 $total は 21 を返します。

于 2012-12-19T15:04:53.963 に答える
0
$weightsql = 'select op.products_name, sum(op.products_quantity * p.products_weight) as weightsum from ' . TABLE_ORDERS_PRODUCTS . ' op left join ' . TABLE_PRODUCTS . ' p on op.products_id = p.products_id where op.products_id =  '.$pro['products_id'];


echo $weight['weightsum']

助けてくれてありがとう(!)

于 2012-12-19T17:02:13.167 に答える