猿问

多个复选框和使用 php 计算价格

我在数据库数据库中有表服务。它有3个字段id,service_type,金额。


我有html表单,其中有复选框来选择服务类型,我选择了服务类型,但金额必须自动计算并存储在数据库金额列中。但是当我从复选框中选择服务时,一个错误被选中并存储在数据库中,但价格未存储。我的脚本如下:


       <input type="checkbox" name="services[]" value="oilchange" 

      <input type="checkbox" name="services[]" value="acrepair" 

      <input type="checkbox" name="services[]" value="tyrechange" 


    <input type="submit" name="btnservice"  value="Confirm Services">

现在php脚本如下:


<?php $price=0.0;if (isset($_POST['services'])) {


$service=$_POST['services'];

$c=count($service);




for ($i=0; $i < $c; $i++) { 

     if ($service[$i]==fullservice) {


        $price=$price+5000;

        $iq="INSERT INTO tblservices( amount) VALUES ('$price')";

        $run=mysqli_query($con,$iq);

        if ($run) {


        }

     }

      elseif ($service[$i]==tyrebalance) {

         # code...

        $price=$price+4000;

        $iq="INSERT INTO tblservices( amount) VALUES ('$price')";

        $run=mysqli_query($con,$iq);

        if ($run) {


        }

     }

      elseif($service[$i]==oilchange) {

         # code...

        $price=$price+3000;

        $iq="INSERT INTO tblservices( amount) VALUES ('$price')";

        $run=mysqli_query($con,$iq);

        if ($run) {


        }

     }

      elseif ($service[$i]==acrepair) {

         # code...

        $price=$price+2000;

        $iq="INSERT INTO tblservices( amount) VALUES ('$price')";

        $run=mysqli_query($con,$iq);

        if ($run) {


        }

     }

      elseif ($service[$i]==tyrechange) {

         # code...

        $price=$price+1000;

        $iq="INSERT INTO tblservices( amount) VALUES ('$price')";

        $run=mysqli_query($con,$iq);

        if ($run) {


        }

     }

}

}

我是新人对不起,这就是为什么我不能上传图像,我需要赢得声誉,所以我可以发布图像,以便更好地或详细解释我的问题。


侃侃尔雅
浏览 146回答 1
1回答

万千封印

我可以在您的示例中看到两种类型的查询。在这里共享单个服务类型插入和插入与总价格。希望这有帮助!!<div class="container">&nbsp; &nbsp; <form action="" method="post">&nbsp; &nbsp; &nbsp; &nbsp; <input type="checkbox" name="services[]" value="oilchange"&nbsp; />oilchange&nbsp; &nbsp; &nbsp; &nbsp; <input type="checkbox" name="services[]" value="acrepair"&nbsp; />acrepair&nbsp; &nbsp; &nbsp; &nbsp; <input type="checkbox" name="services[]" value="tyrechange" />tyrechange&nbsp; &nbsp; &nbsp; &nbsp; <br/>&nbsp; &nbsp; &nbsp; &nbsp; <input type="submit" name="btnservice"&nbsp; value="Confirm Services">&nbsp; &nbsp; </form> <?php&nbsp; &nbsp; $serviceChargeArr = array(&nbsp; &nbsp; &nbsp; &nbsp; 'fullservice' => 5000,&nbsp; &nbsp; &nbsp; &nbsp; 'tyrebalance' => 4000,&nbsp; &nbsp; &nbsp; &nbsp; 'oilchange' => 3000,&nbsp; &nbsp; &nbsp; &nbsp; 'acrepair' => 2000,&nbsp; &nbsp; &nbsp; &nbsp; 'tyrechange' => 1000&nbsp; &nbsp; );&nbsp; &nbsp; $priceTotal = 0.0;&nbsp; &nbsp; if (isset($_POST['btnservice'])) {&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; if (isset($_POST['services'])) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $serviceArr&nbsp; &nbsp; = $_POST['services'];&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $serviceArrCnt = count($serviceArr);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //QUERY 1 - insert each with respect to clicked checkboxes&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for ($i = 0; $i < $serviceArrCnt; $i++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($eachPrice = $serviceChargeArr[$serviceArr[$i]]) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $insertArr[] = "('$serviceArr[$i]', '$eachPrice')";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (!empty($insertArr)) {//sigle insert query -each service and its price will be inserted&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $query="insert into tblservices (service_type, amount)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; values".implode(", ",$insertArr ).";";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo $query."<br/>";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }//QUERY 1 ENDS&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //QUERY 2 - insert single row with comma separated values and total price&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for ($i = 0; $i < $serviceArrCnt; $i++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($eachPrice = $serviceChargeArr[$serviceArr[$i]]) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $priceTotal += $eachPrice;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (!empty($serviceArr)) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $seviceList = implode(',', $serviceArr);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $query="insert into tblservices (service_type, amount)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; values ('{$seviceList}' , '{$priceTotal}') ;";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo $query."<br/>";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }//QUERY 2 ENDS&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if($query) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $run = mysqli_query($con, $query);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($run) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo "<br/> SUCCESS : inserted";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo "<br/> ERROR : try again<br/>Mysql Error: ".$con->error;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; ?></div>
随时随地看视频慕课网APP
我要回答