Lucas Craven
Lucas Craven

Reputation: 98

PHP MySQL Dual While Loop giving me problems

I currently have a piece of code that I want to essentially pulls products quantity and prices and then give a grand total

The problem I have is the mathematics is way off... it's essentially multiplying the last quantity with the last price of the item during the loop (I hope I explained that with atleast half an ounce of clarity haha!)

Anyways here is the code, I think it was along the correct lines but somewhere I have gone wrong, Thanks!

<table>
      <tr>
    <th>Product Title</th>
    <th>Nicotine Strength</th>
    <th>Quantity</th>
    <th>Price (inc. VAT)</th>
  </tr>
    <?php 
    $query = "SELECT `product`, `variant`, `quantity` FROM orders_detail WHERE order_id = '$orderid'";
    $result = mysqli_query($con, $query);
    $quantitytotal = 0;
    while ($row = mysqli_fetch_assoc($result)) {
        $product = $row['product'];
        $stuff = $row['quantity'];
        $variant = $row['variant'];
        $linequantity = $stuff;
        $quantitytotal += $stuff;


        $pricequery = "SELECT product_price FROM products WHERE product_name = '$product'";
        $priceresult = mysqli_query($con, $pricequery);
        $pricetag = 0;
        $priceline = 0;
        while ($rowprice = mysqli_fetch_assoc($priceresult)) {
            $price = $rowprice['product_price'];        
            $priceline = $price;
            $pricetag += $price;

        }
        echo "Price: $pricetag<br>";
        echo "Quantity: $quantitytotal<br>";
        $linetotal = $priceline * $linequantity;
        //echo "$product - $linequantity - $linetotal<br>";
        echo  '<tr><td>' . $product .' </td> ' . '<td>' . $variant . '</td>' . ' <td> ' . $linequantity . '</td>' . '<td> £' . $linetotal . '</td> </tr>';  

    }
    $total = $pricetag * $quantitytotal;
        ?> 



    <tr><td>Total Ex Vat:</td><td> Total Inc Vat:</td></tr>

    <tr><td><?php echo "£" . ($total / 1.2);?></td>
    <td><?php   echo "£" . $total; ?></td></tr>
</table>

Upvotes: 0

Views: 45

Answers (1)

Eklavya
Eklavya

Reputation: 18480

You can calculate grand total by adding $linetotal in the loop.

$total=$total+$linetotal;

Initialize $total with 0 before loop.

Upvotes: 2

Related Questions