如何使用php mysqli将数据插入数据库之前进行计算

如何使用php mysqli将数据插入数据库之前进行计算

问题描述:

I want to calculate the bond balance using amount saved in the database and bond amount inputted on a form then insert the result to the database plus the other information. am using php and mysql. below is the code I have

if (isset($_POST['submit'])) {
    $ref_no = mysqli_real_escape_string($dbc, $_POST['ref_no']);
    $cargo_des = mysqli_real_escape_string($dbc, $_POST['cargo_des']);
    $te_no = mysqli_real_escape_string($dbc, $_POST['te_no']);
    $bond = mysqli_real_escape_string($dbc, $_POST['bond']);
    $bond_no = mysqli_real_escape_string($dbc, $_POST['bond_no']);
    $bond_amount = mysqli_real_escape_string($dbc, $_POST['bond_amount']);
    $date_lodged = mysqli_real_escape_string($dbc, $_POST['date_lodged']);
    //$bond_balance = mysqli_real_escape_string($dbc, $_POST['bond_balance']);
    $query = mysqli_query ($dbc, "SELECT amount FROM bond");
    while( $row = mysqli_fetch_array($query) ) {
        echo $row['amount'];
    }
    $bond_balance = 0;
    $examout = $row['amount'];
    $amount = $_POST['bond_amount'];
    $bond_balance = $examout - $amount;
    $q = "INSERT INTO new_bond (ref_no, cargo_des, te_no, bond, bond_no, bond_amount, date_lodged) "
            . "VALUES ('$ref_no','$cargo_des','$te_no','$bond','$bond_no','$bond_amount','$date_lodged','$bond_balance')";
    $r = mysqli_query($dbc, $q) or die(mysqli_error($dbc));
    if ($r) {
        echo '<script>alert("Success")</script>';
        echo "<script>window.open('?page=new_bond','_self')</script>";
    }
    exit();
}

我想使用数据库中保存的金额和表格上输入的债券金额来计算债券余额然后插入结果 到数据库加上其他信息。 我正在使用php和mysql。 下面是我的代码 p>

  if(isset($ _ POST ['submit'])){
 $ ref_no = mysqli_real_escape_string($ dbc)  ,$ _POST ['ref_no']); 
 $ cargo_des = mysqli_real_escape_string($ dbc,$ _POST ['cargo_des']); 
 $ te_no = mysqli_real_escape_string($ dbc,$ _POST ['te_no']); 
  $ bond = mysqli_real_escape_string($ dbc,$ _POST ['bond']); 
 $ bond_no = mysqli_real_escape_string($ dbc,$ _POST ['bond_no']); 
 $ bond_amount = mysqli_real_escape_string($ dbc,$ _POST ['  bond_amount']); 
 $ date_lodged = mysqli_real_escape_string($ dbc,$ _POST ['date_lodged']); 
 // $ bond_balance = mysqli_real_escape_string($ dbc,$ _POST ['bond_balance']); 
 $ query =  mysqli_query($ dbc,“SELECT amount FROM bond”); 
 while($ row = mysqli_fetch_array($ query)){
 echo $ row ['amount']; 
} 
 $ bond_balance = 0; 
  $ examout = $ row ['amount']; 
 $ amount = $ _POST ['bond_amount']; 
 $ bond_balance = $ examout  -  $ amount; 
 $ q =“INSERT INTO new_bond(ref_no,cargo_des,t  e_no,bond,bond_no,bond_amount,date_lodged)“
。  “VALUES('$ ref_no','$ cargo_des','$ te_no','$ bond','$ bond_no','$ bond_amount','$ date_lodged','$ bond_balance')”; 
 $ r =  mysqli_query($ dbc,$ q)或die(mysqli_error($ dbc)); 
 if($ r){
 echo'&lt; script&gt; alert(“Success”)&lt; / script&gt;'; 
 echo  “&lt; script&gt; window.open('?page = new_bond','_ self')&lt; / script&gt;”; 
} 
 exit(); 
} 
  code>  pre> \  n  div>

this worked

$query = mysqli_query ($dbc, "SELECT amount FROM bond");
    while( $row = mysqli_fetch_array($query) ){        
    $bond_balance = 0;
    $examout = $row['amount'];
    $amount = $_POST['bond_amount'];
    $bond_balance = $examout - $amount;
}

I have a confusion regarding table bond. How many records are there in bond table. I am writing down the sql query for taking the first encountered amount from bond table and doing the calculations.

"INSERT INTO new_bond (ref_no, cargo_des, te_no, bond, bond_no, bond_amount, date_lodged) "
            . "VALUES ('$ref_no','$cargo_des','$te_no','$bond','$bond_no','$bond_amount','$date_lodged','((SELECT amount FROM bond LIMIT 1) - $amount)')";

I have tried this creating sample tables with minimal data. But let me know if this doesn't work.