Я создаю счет-фактуру для своего проекта. Есть 3 страницы. Я новичок в базе данных и php (у меня есть только 1 месяц, чтобы прорваться через эти 2 темы), так что простите меня, если мои коды/логика базы данных отсутствуют.Проблема с расчетной суммой полной переменной
Для всех 3 страниц они уже подключены к базе данных, я вынул имена файлов, чтобы они не загромождали блоки кода.
Первая страница - это форма счета-фактуры. Пользовательские ключи в его/ее имени, затем введите описание, количество, количество и скидки. Нажатие кнопки submit переходит на вторую страницу.
2-я страница - это большая часть обработки завершающего конца циклов переменных, если на странице 1 введено несколько строк ввода. Затем он анализирует все эти входы в таблицу invoicesub. Он также кодирует имя клиента в URL-адресе по ссылке перенаправления внизу.
На третьей странице я хочу отобразить все эти переменные, такие как имя клиента, описания, количество, сумма, сумма, скидка из таблицы, а также составить сумму общей переменной в таблице invoicesub. Я также хочу повторно вставить все переменные печатных переменных в другую таблицу в той же базе данных, которая называется invoicefinal.
Первая страница (форма)
<script type="text/javascript">
var count = 0;
function addTextArea(){
count= count+1;
var div = document.getElementById('name');
div.innerHTML += "<div> <input type='text' name='name[]' value='' "+"id=name"+count+"> </div>";
div.innerHTML += "\n<br />";
var div = document.getElementById('quantity');
div.innerHTML += "<div><input type='text' name='quantity[]' value ='' "+"id=quantity"+count+"></div>";
div.innerHTML += "\n<br />";
var div = document.getElementById('amount');
div.innerHTML += "<div><input type='text' name='amount[]' value ='' "+"id=amount"+count+"></div>";
div.innerHTML += "\n<br />";
var div = document.getElementById('discount');
div.innerHTML += "<div><input type='text' name='discount[]' value ='' "+"id=discount"+count+"></div>";
div.innerHTML += "\n<br />";
}
function removeTextArea(){
document.getElementById("name"+count).remove();
document.getElementById("quantity"+count).remove();
document.getElementById("amount"+count).remove();
document.getElementById("discount"+count).remove();
count = count-1;
}
</script>
</head>
<body>
<form action="invoicesubmit.php" method="POST">
<?php
echo "<table border='2'>\n";
echo "<tr>\n";
echo "<th>Description</th>\n";
echo "<th>Quantity</th>\n";
echo "<th>Amount($)</th>\n";
echo "<th>Discount(%)</th>\n";
echo "</tr>";
echo "<tr>";
echo "<td>"?><input type='text' size="50" name='name[]' value='Examination and Consultation' readonly/><?php "</td>";
echo "<td>"?><input type='text' size="50" name='quantity[]' value='' /><?php "</td>";
echo "<td>"?><input type='text' size="50" name='amount[]' value='' /><?php "</td>";
echo "<td>"?><input type='text' size="50" name='discount[]' value='' /><?php "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>"?><div id="name"></div> <?php "</td>";
echo "<td>"?><div id="quantity"></div> <?php "</td>";
echo "<td>"?><div id="amount"></div> <?php "</td>";
echo "<td>"?><div id="discount"></div> <?php "</td>";
echo "</tr>";
?>
Customer Name:
<br />
<input type="text" name="cust_name" value="" />
<br />
<input type="button" value="Add Description" onClick="addTextArea();">
<input type="button" value="Remove Description" onClick="removeTextArea();">
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
Вторая страница (Вставка переменных в таблицу invoicesub)
if (isset($_POST['submit'])){ // Process the form
$name_array = $_POST['name'];
$quantity_array = $_POST['quantity'];
$amount_array = $_POST['amount'];
$discount_array = $_POST['discount'];
$cust_name_array = mysql_prep($_POST['cust_name']);
for ($i = 0; $i < count($name_array); $i++){
$cust_name = $cust_name_array;
$name = $name_array[$i];
$quantity = $quantity_array[$i];
$amount = $amount_array[$i];
$discount = $discount_array[$i];
$total_amt = ($amount - ($amount * ($discount/100))) * $quantity;
global $connection;
$query = "INSERT INTO invoicesub (";
$query.= " cust_name, description, quantity, amount, discount, total";
$query.= ") VALUES (";
$query.= " '{$cust_name}', '{$name}', {$quantity}, {$amount}, {$discount}, {$total_amt}";
$query.= ")";
$result = mysqli_query($connection, $query);
}
redirect_to("invoicesubmitfinal.php?cname=".urlencode($cust_name));
}
3-й страницы (пытаясь подвести общую переменную)
<?php
echo "<table border='1'>\n";
echo "<tr>\n";
echo "<th>Description</th>\n";
echo "<th>Quantity</th>\n";
echo "<th>Amount($)</th>\n";
echo "<th>Discount(%)</th>\n";
echo "<th>Total_amt</th>\n";
echo "</tr>";
global $connection;
$sql1="SELECT sum(amount) as amount, sum(quantity) as quantity, sum(total) as total FROM invoicesub where cust_name=$name";
$result2 = mysqli_query($connection, $sql1) or die(mysqli_error());
while ($rows = mysql_fetch_array($result2)){
echo "<tr>";
echo "<td>" . $rows['quantity'] . "</td>";
echo "<td>" . $rows['amount'] . "</td>";
echo "<td>" . $rows['discount']. "%" . "</td>";
echo "<td>" ."$". $rows['total'] . "</td>";
echo "<td>" . "$" . $total_amt . "</td>";
echo "</tr>";
echo $rows['amount'];
echo $rows['quantity'];
echo $rows['total'];
}
?>
И проблема в том, что ...? – panoptical
вам понадобятся два запроса. Один, чтобы получить каждый отдельный элемент и отображать его, а затем второй, чтобы получить все итоги. Или вы можете рассчитать итоговые значения в PHP, пока вы печатаете каждый элемент. – Barmar
Предупреждение: mysqli_error() ожидает точно 1 параметр, 0 заданный в /home/mydentis/public_html/test/invoicesubmitfinal.php в строке 17 это проблема, которую я получил. Он исходит из третьей страницы (invoicesubmitfinal) – user3300482