2

データベース出力ループがあります。

の値を乗算し$total、その結果を別の変数に割り当てて出力する必要があります。これはどのようにすればよいですか?

$quantityから来てい$_POSTます。

$items = implode(",",array_keys($_POST));

mysql_query('SET NAMES utf8');
$query = 'SELECT * FROM
    items
WHERE
    item_id IN (' . $items . ')';

$result = mysql_query($query, $db) or die (mysql_error($db));

echo ' 

<table id="items">
<tr class="head">
    <td>Name</td>
    <td>Cost</td>
    <td>Quantity</td>
    <td>Subtotal</td>
</tr>

';
$total = array ();  
while ($row = mysql_fetch_assoc($result)) {
echo '<tr class="targetfields">';
echo '<td>' . $row['item_name'] . '</td>

<td>' . $row['item_cost'];
//Getting item id
foreach ($_POST as $itemid=>$quantity)
{
//Displayin' quantity
if ($itemid == $row['item_id']){
    echo '</td><td><input name="' . $row['item_id'] . '" class="input-small" size="2" maxlength="2" type="text" value="';
    echo "{$quantity}";
    echo '" readonly></td>
    <td>'; $sum = ($row['item_cost'] * $quantity); echo $sum;
    echo '</td>';

    $total.= $sum;

}


}
        echo '</tr>';
}

?>  <tr>
<td class="sum" colspan="4">    Total: 
<?php 



?> </td>
</tr>
</table>
4

2 に答える 2

2
  1. $total .= $sum;これは機能しません:に変更してください:$total[] = $sum;
  2. 製品を取得するには、配列のすべての要素を$total使用します:afterwhileループarray_product

すなわち:

$items = implode(",",array_keys($_POST));

mysql_query('SET NAMES utf8');
$query = 'SELECT * FROM
    items
WHERE
    item_id IN (' . $items . ')';

$result = mysql_query($query, $db) or die (mysql_error($db));
$total = array ();  
while ($row = mysql_fetch_assoc($result)) {

$sum = ($row['item_cost'] * $quantity); echo $sum;      
$total[] = $sum;

}

echo array_product($total);

参照:http://php.net/manual/en/function.array-product.php

于 2013-03-25T07:23:17.403 に答える
2

私はそれがすべきだと思います

$sum = 1; 
while ($row = mysql_fetch_assoc($result)) {
    $sum = $row['item_cost'] * $sum; 
}
echo $sum;      
于 2013-03-25T07:23:25.413 に答える