Умножение и вывод суммы mysql php

176
22 июля 2019, 17:10

Подскажите пожалуйста, есть код

 <?php
    $host = 'localhost';
    $db   = '*';
    $user = '*';
    $pass = '*';
    $charset = 'utf8';
    $dsn = "mysql:host=$host;dbname=$db;charset=$charset";
    $opt = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
    ];
    $pdo = new PDO($dsn, $user, $pass, $opt);
    $stmt = $pdo->query('SELECT * FROM order_products WHERE id_order=1');
    while ($row = $stmt->fetch()) {
        $pdo2 = new PDO($dsn, $user, $pass, $opt);
        $stmt2 = $pdo2->query("SELECT * FROM products WHERE id=".$row['id']."");
        while ($row2 = $stmt2->fetch()) {
            $summ = $row2['price'] * $row['amount'];
            echo "
              <tr> 
                <td><img src='".$row2['image']."' 
                         style='width:50px;border:2px solid #edc951;border-radius:5px;'></td>
                <td>".$row2['name']."</td>
                <td>".$row2['price']."</td>
                <td><input type='text' value='".$row['amount']."' style='width:75px;'></td>
                <td>".$summ."</td>
                <td><input type='text' value='' style='width:75px;'></td>
             </tr>";
        }
    }
?>

Есть переменная $summ которая считает сумму (количество*цену). Как можно просчитать сумму всех продуктов? Спасибо.

Answer 1

Нужно добавить другую переменную, к примеру $ammount к которой каждый раз прибавлять очередную сумму

 <?php
    $host = 'localhost';
    $db   = '*';
    $user = '*';
    $pass = '*';
    $charset = 'utf8';
    $dsn = "mysql:host=$host;dbname=$db;charset=$charset";
    $opt = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
    ];
    $pdo = new PDO($dsn, $user, $pass, $opt);
    $stmt = $pdo->query('SELECT * FROM order_products WHERE id_order=1');
    $ammount = 0;
    while ($row = $stmt->fetch()) {
        $pdo2 = new PDO($dsn, $user, $pass, $opt);
        $stmt2 = $pdo2->query("SELECT * FROM products WHERE id=".$row['id']."");
        while ($row2 = $stmt2->fetch()) {
            $summ = $row2['price'] * $row['amount'];
            $ammount = $ammount + intval($summ);
            echo "
              <tr> 
                <td><img src='".$row2['image']."' 
                         style='width:50px;border:2px solid #edc951;border-radius:5px;'></td>
                <td>".$row2['name']."</td>
                <td>".$row2['price']."</td>
                <td><input type='text' value='".$row['amount']."' style='width:75px;'></td>
                <td>".$summ."</td>
                <td><input type='text' value='' style='width:75px;'></td>
             </tr>";
        }
    }
    echo "
          <tr> 
             <td></td>
             <td></td>
             <td></td>
             <td>Total:</td>
             <td>".$ammount."</td>
             <td></td>
          </tr>";
?>
READ ALSO
Можно ли добавиться в исключения?

Можно ли добавиться в исключения?

Можно ли добавиться (программно себя) в исключения Firewall'a? Пишу аналог BittorrentПостоянно Firewall беспокоится, что-то чует, не знает что

229
Как отправить массив по локальной сети?

Как отправить массив по локальной сети?

Сейчас сообщения я отсылаю с помощью:

143
Заставить set сортироваться по убыванию

Заставить set сортироваться по убыванию

Как известно, set - множество в С++, которое отсортировано по возрастаниюМне известно, что можно сделать так, чтобы set был отсортирован по убыванию

157