I’m learning php and built an experimental form-based calculator (also using html & POST method) that returns values to a table. The calculator is functional when I enter my values and click submit, but I keep getting two “Division by zero” errors on the last line when I first run the code. I can’t seem seem to find a logical solution or explanations when searching here or via Google. Any explanation you can provide to a newb will be appreciated.
<?php error_reporting(E_ALL ^ E_NOTICE); //calculate the difference in price $itemQty = $_POST['num1']; $itemCost = $_POST['num2']; $itemSale = $_POST['num3']; $shipMat = $_POST['num4']; $diffPrice = $itemSale - $itemCost; $actual = ($diffPrice - $shipMat) * $itemQty; $diffPricePercent = (($actual * 100) / $itemCost) / $itemQty ; ?>
Advertisement
Answer
You need to wrap your form processing code in a conditional so it doesn’t run when you first open the page. Something like so:
if($_POST['num1'] > 0 && $_POST['num2'] > 0 && $_POST['num3'] > 0 && $_POST['num4'] > 0){ $itemQty = $_POST['num1']; $itemCost = $_POST['num2']; $itemSale = $_POST['num3']; $shipMat = $_POST['num4']; $diffPrice = $itemSale - $itemCost; $actual = ($diffPrice - $shipMat) * $itemQty; $diffPricePercent = (($actual * 100) / $itemCost) / $itemQty ; }