1. ホーム
  2. php

[解決済み] PHPの警告です。ゼロによる除算

2022-02-16 20:20:52

質問

私はphpを学んでおり、テーブルに値を返す実験的なフォームベースの電卓(html & POSTメソッドも使用)を作りました。値を入力して送信をクリックすると電卓は機能しますが、最初にコードを実行すると最後の行で2つの "ゼロによる分割"エラーが発生し続けます。ここやGoogleで検索しても、論理的な解決策や説明が見つからないようです。初心者のためにどんな説明でもしていただけるとありがたいです。

<?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 ;

?>

解決方法は?

フォーム処理のコードを条件付きでラップして、最初にページを開いたときに実行されないようにする必要があります。次のようなものです。

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 ;
}