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

如何在使用php mysqli将数据插入datadase之前进行计算,php,Php,我想使用数据库中保存的金额和表单中输入的债券金额计算债券余额,然后将结果插入数据库以及其他信息。我正在使用php和mysql。 下面是我的代码 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

我想使用数据库中保存的金额和表单中输入的债券金额计算债券余额,然后将结果插入数据库以及其他信息。我正在使用php和mysql。 下面是我的代码

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();
}
if(isset($\u POST['submit'])){
$ref\u no=mysqli\u real\u escape\u字符串($dbc,$\u POST['ref\u no']);
$cargo_des=mysqli_real_escape_string($dbc,$\u POST['cargo_des']);
$te_no=mysqli_real_escape_字符串($dbc,$\u POST['te_no']);
$bond=mysqli\u real\u escape\u字符串($dbc,$\u POST['bond']);
$bond_no=mysqli_real_escape_字符串($dbc,$\u POST['bond_no']);
$bond\u amount=mysqli\u real\u escape\u字符串($dbc,$\u POST['bond\u amount']);
$date_posted=mysqli_real_escape_string($dbc,$\u POST['date_posted']);
//$bond\u balance=mysqli\u real\u escape\u字符串($dbc,$\u POST['bond\u balance']);
$query=mysqli_query($dbc,“从债券中选择金额”);
while($row=mysqli\u fetch\u数组($query)){
echo$row['amount'];
}
$bond_余额=0;
$examout=$row['amount'];
$amount=$_POST['bond_amount'];
$bond_余额=$examout-$amount;
$q=“插入新保函(参考号、货物编号、交货号、保函、保函号、保函金额、提交日期)”
“价值(“$ref_no”、“$cargo_des”、“$te_no”、“$bond_no”、“$bond_amount”、“$date_hipped”、“$bond_balance”);
$r=mysqli_查询($dbc,$q)或die(mysqli_错误($dbc));
如果($r){
回声“警报(“成功”);
echo“window.open”('page=new_bond','u self');
}
退出();
}
这起作用了

$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;
}
这起作用了

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

我对桌上债券感到困惑。邦德表中有多少条记录。我正在写下sql查询,以便从bond表中获取第一个遇到的金额并进行计算

"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)')";

我尝试过用最少的数据创建示例表。但是,如果这不起作用,请告诉我。

我对table bond感到困惑。邦德表中有多少条记录。我正在写下sql查询,以便从bond表中获取第一个遇到的金额并进行计算

"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)')";

我尝试过用最少的数据创建示例表。但是如果这不起作用,请告诉我。

您面临什么问题?我得到了一个错误的结果。e、 当我在债券金额中输入5000时,我得到-5000作为结果。你面临什么问题?我得到了一个错误的结果。e、 g当我在bond_amount中输入5000时,我得到-5000作为此时的结果音记录,然后您可以简单地使用我的解决方案。:)一次只记录一条,然后您可以简单地使用我的解决方案。:)