2016-11-20 2 views
0

Я пытаюсь сделать код в php с базой данных mysql, и я хочу рассчитать баланс с сохраненным значением и новым введенным значением. например, у меня есть база данных, как это:PHP - Рассчитать баланс с предыдущим значением

id | debit | credit | balance 
----+---------+--------+-------- 
1 | 70000 |  0 | 70000 
2 |  0 | 44000 | 26000 
3 | 45000 | 15000 | 56000 
4 |  0 | 32000 | 24000 
5 |  0 | 10000 | 14000 
6 | 28000 |  0 | 42000 

формула balance = old_balance + new_inputed_debit - new_inputed_credit
так, если я занесены новое значение, как это в HTML форме:

дебет = 30000
кредит = 5000

поэтому сценарий будет суммировать это, когда я нажимаю кнопку ввода balance = 42000 + 30000 - 5000
И база данных будет так:

id | debit | credit | balance 
----+---------+--------+-------- 
1 | 70000 |  0 | 70000 
2 |  0 | 44000 | 26000 
3 | 45000 | 15000 | 56000 
4 |  0 | 32000 | 24000 
5 |  0 | 10000 | 14000 
6 | 28000 |  0 | 42000 
7 | 30000 | 5000 | 67000 <-- New Submited Value 

это мой PHP скрипт:

<?php 
    require('db2.php'); 
    // If form submitted, insert values into the database. 
    if(isset($_POST['submit'])) { 
     $debit = mysqli_real_escape_string($con,$_POST['debit']); 
     $credit = mysqli_real_escape_string($con,$_POST['credit']); 
     $balance = //old_balance + new_inputed_debit - new_inputed_credit 
     $query = "INSERT into `balance` (debit, credit, balance,) VALUES ('$debit','$credit', '$balance')"; 
     if(mysqli_query($con,$query)){ 
      echo "<div class='form'><h3>Inputed Success</h3><br/><a href='Input.php'>Input again</a></div> or <a href='index.php'>back</a>"; 
     }else{ 
     } 
    } 
?> 

И это мой HTML код:

<form name="input_data" action="" method="post"><br /> 
<label style="font-size:16px;">Debit :</label> 
<input type="text" name="debit" placeholder="Ex: 90000" style="margin-left:3px; width:80% !important;" required /><br /> 
<label style="font-size:16px;">Credit :</label> 
<input type="text" name="credit" placeholder="Ex: 90000" style="margin-left:3px; width:80% !important;" required /><br /> 
<span style="float:right;"><input type="reset" name="reset" value="RESET" style="margin-right:8px;" /> <input type="submit" name="submit" value="INPUT" style="margin-right:8px;" /></span> 
</form> 

Кто-нибудь может мне помочь создать скрипт php? Благодарю.

ответ

0

инициализировать баланс с 0, если у вас нет строк в таблице. после этого получить последнюю строку из таблицы и получить old_balance из этой строки. просто поместите этот скрипт после строки $ credit = ..... вы получите old_balance из последней строки или 0, если строк не будет.

$old_balance = 0; 
$sql = "select max(id), balance from balance_table"; 
$result = mysqli_query($con,$sql); 
if(mysqli_num_rows($result) == 1){ 
    $row = mysqli_fetch_assoc($result); 
    $old_balance = $row["balance"]; 
} 
+0

получения ошибки в Warning: mysqli_num_rows() ожидает параметр 1, чтобы быть mysqli_result, булево приведены в balance.php – RA121514

+0

изменить имя таблицы или имя столбца «баланса» на любое другое имя и попытаться выполнить запрос на выборку в phpmyadmin, чтобы проверить, возвращает ли он какие-либо данные. –

+0

Эта ошибка возникает, когда ваш запрос не выполняется успешно. сделайте так, как указано выше. –

Смежные вопросы