Как я могу получить количество каждого продукта за пределами моего цикла пока - PullRequest
1 голос
/ 23 июня 2019

Я получаю данные из базы данных, идентификатор, имя и цену. Но внутри цикла while тоже есть количество. Я не знаю, как поймать количество каждого продукта. Количество повторяется с новым продуктом внутри цикла while. Но если я хочу поймать количество всех продуктов вне цикла while, я получу только одно значение. Я надеюсь, что кто-то может дать мне ответ с постом (я новичок).

А вот и код

  $arr = array();
  while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
      extract($row);
          $arr[] = $row;


      $_SESSION['cart-checkout'] = $arr;

      $quantity=$_SESSION['cart'][$id]['quantity'];


      $sub_total=$price*$quantity;


      echo "<div class='cart-row'>";
          echo "<div class='col-md-8'>";

              echo "<div class='product-name m-b-10px'><h4>{$name}</h4> 
             </div>";
              echo $quantity>1 ? "<div>{$quantity} items</div>" : "<div> 
              {$quantity} item</div>";

          echo "</div>";

          echo "<div class='col-md-4'>";
              echo "<h4>&#36;" . number_format($price, 2, '.', ',') . " 
              </h4>";
          echo "</div>";
      echo "</div>";

      $item_count += $quantity;
      $total+=$sub_total;

  }

1 Ответ

1 голос
/ 24 июня 2019

Вы на полпути.Вы увеличиваете внутренний цикл, но чтобы получить общее значение, вам нужно распечатать внешний цикл.Также вам нужно объявить переменную сумму в начале.

Попробуйте это:

  $arr = array();
  $total = 0; //declare variable
  while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
      extract($row);
          $arr[] = $row;


      $_SESSION['cart-checkout'] = $arr;

      $quantity=$_SESSION['cart'][$id]['quantity'];


      $sub_total=$price*$quantity;


      echo "<div class='cart-row'>";
          echo "<div class='col-md-8'>";

              echo "<div class='product-name m-b-10px'><h4>{$name}</h4> 
             </div>";
              echo $quantity>1 ? "<div>{$quantity} items</div>" : "<div> 
              {$quantity} item</div>";

          echo "</div>";

          echo "<div class='col-md-4'>";
              echo "<h4>&#36;" . number_format($price, 2, '.', ',') . " 
              </h4>";
          echo "</div>";
      echo "</div>";

      $item_count += $quantity;
      $total+=$sub_total;//increment inside loop

  }
echo $total;//print outside loop
...