массивы — неверный расчет PHP в array_sum

Я пытаюсь добавить все значения массива, как:

$arr = array('55','55','99'); // I want to do 55 + 55 + 99 = X

Моя функция:

function get_value_of_vouchers($id){
global $db;
$prices = array();
$query = $db->query("SELECT * FROM vouchers WHERE uid='$id' ORDER BY id");
if ($query->num_rows > 0) {
while ($row = $query->fetch_assoc()) {
$fixed_prices = get_price_by_id($row['price']);
// returned e.g : 250 | 500 | 1500
array_push($prices, $fixed_prices);

//var_dump($prices); - Printed - array(1) { [0]=> string(4) "5000" } array(2) { [0]=> string(4) "5000" [1]=> string(3) "250" } array(3) { [0]=> string(4) "5000" [1]=> string(3) "250" [2]=> string(3) "250" }
return array_sum($prices);
}
}
}

Всегда, когда я пытаюсь сделать array_sum, я получаю неправильное число.

0

Решение

Почему бы вам просто не сделать это из SQL-запроса, как показано ниже

$query = $db->query("SELECT SUM(price) as total_price FROM vouchers WHERE uid='$id' ORDER BY id");

Лучше использовать подготовленное заявление, как показано ниже

 $stmt=$mysqli->prepare("SELECT SUM(price) as total_price FROM vouchers WHERE uid=? ORDER BY id");
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->bind_result($total);
$stmt->fetch();
echo $total;
2

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

Других решений пока нет …

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