2017-02-14 4 views
1

データベースに保存された金額とフォームに入力された金額を使用して債券残高を計算し、 。 phpとmysqlを使用しています。 は、以下の私がphp mysqliを使用してデータをデータに挿入する前に計算する方法

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(); 
} 
+4

あなたはどのような問題に直面していますか? –

+0

が間違った結果になっています。たとえば、bond_amountで5000を入力すると、結果として-5000が得られます – lidave

答えて

0

これを持っているコードは、私は、テーブルの結合に関する混乱を持って

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

を働いています。債券テーブルにはいくつのレコードがありますか。私は債券テーブルから最初に遭遇した金額を取って計算を行うためのSQLクエリを書いています。

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

これは、最小限のデータでサンプルテーブルを作成しようとしました。しかし、これがうまくいかない場合は、私に知らせてください。

+0

現時点で1つのレコード – lidave

+0

次に簡単に私のソリューションを使用できます。 :) –

関連する問題