функция — PHP складывает все значения из foreach ()

Я делаю систему корзины покупок, и мой сеанс отображается с функцией foreach (). Внутри этой функции у меня есть переменная с именем $ item_price. Я хотел бы, чтобы все $ item_price были сложены так, чтобы я получил итоговую сумму.

Как это можно сделать? Я понятия не имею, как решить эту проблему: /

Это мой код foreach ():

foreach($session_cart as $cart_items) {

$fetch_info = mysql_query("SELECT * FROM `shop_items` WHERE item_id = '$cart_items'");
while($shop_items = mysql_fetch_array($fetch_info)) {
$item_id = $shop_items['item_id'];
$item_name = $shop_items['item_name'];
$item_quantity = count(array_keys($session_quantity, $item_id));
$item_price = $shop_items['item_price'] * $item_quantity; }

$cartOutput .= '<h2>'.$item_name.'</h2>';
$cartOutput .= '<a> Quantity: '.$item_quantity.'</a><br>';
$cartOutput .= '<a> Price: '.number_format((float)$item_price, 2, '.', '').' USD</a><br>';
$cartOutput .= '<a> ID: '.$item_id.'</a><br><br>';

}

1

Решение

Используйте обновленный код:

    $total = 0;
foreach($session_cart as $cart_items) {

$fetch_info = mysql_query("SELECT * FROM `shop_items` WHERE item_id = '$cart_items'");
// while($shop_items = mysql_fetch_array($fetch_info)) { //<- No need of loop here as only one will be returned everytime
$shop_items = mysql_fetch_assoc($fetch_info); //<- use this instead
$item_id = $shop_items['item_id'];
$item_name = $shop_items['item_name'];
$item_quantity = count(array_keys($session_quantity, $item_id));
$item_price = $shop_items['item_price'] * $item_quantity;
//} //<- Closing while loop removed

$cartOutput .= '<h2>'.$item_name.'</h2>';
$cartOutput .= '<a> Quantity: '.$item_quantity.'</a><br>';
$cartOutput .= '<a> Price: '.number_format((float)$item_price, 2, '.', '').' USD</a><br>';
$cartOutput .= '<a> ID: '.$item_id.'</a><br><br>';

$total+=$item_price; //<- Sums up for grand total
}

echo $total; //<- shows grand total
0

Другие решения

$total  = 0;
foreach($array as $row)
{
$total += $row['item_price'];
//the rest of your code in foreach
}
echo $total;
0

По вопросам рекламы [email protected]