3 回答

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊
你有一些奇怪的疑問。單引號(hào)絕對不能用于列別名,為什么要按 system_id 分組?通過使用聯(lián)接,您的計(jì)算將大大簡化,如果我是您的老師,我希望看到聯(lián)接。
這將立即解決分配問題:
SELECT s.system_id
, sum(amount_paid) as sumitem_cost
, sum(fee) as total
FROM students s
JOIN payments p on s.system_id = p.payment_by
JOIN invoices i on p.invoice_id = i.id

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超8個(gè)贊
$total_price每次與新學(xué)生打交道時(shí),您都需要?dú)w零(init) 。您沒有明確地這樣做,因此第一次使用$total_price它時(shí)會(huì)被創(chuàng)建為零,但隨后您會(huì)進(jìn)一步迭代并不斷添加它,最終得到累積值。所以只需添加
$total_price = 0;
對于每個(gè)while循環(huán)迭代:
while($row = mysqli_fetch_assoc($students)){
$total_price = 0;
...

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊
你可以試試這個(gè)代碼
<?php
$students = mysqli_query($conn, "SELECT * FROM students GROUP BY system_id");
$grandBalanceForAllStudent = 0 ;
while($row = mysqli_fetch_assoc($students)){
$user_uid = $row['system_id'];
$exam = $row['exam_number'];
$total_price = 0 ;
//getting payments balances
//gettingshopping cart details
$Balance_query = mysqli_query($conn, "SELECT SUM(amount_paid) AS 'sumitem_cost' FROM payments WHERE payment_by='$user_uid' ");
$balance_data = mysqli_fetch_array($Balance_query);
$balance_price = $balance_data['sumitem_cost'];
$py = mysqli_query($conn, "SELECT * FROM payments WHERE payment_by='$user_uid' AND status!='rejected' GROUP BY invoice_id");
while($rowpy = mysqli_fetch_assoc($py)){
$paidAmout = $rowpy['amount'];
$invoiceId = mysqli_real_escape_string($conn, $rowpy['invoice_id']);
$PaymentStatus = mysqli_real_escape_string($conn, $rowpy['status']);
//Getting invoice
$Invoice = mysqli_query($conn, "SELECT * FROM invoices WHERE id='$invoiceId'");
while($rowInv = mysqli_fetch_assoc($Invoice)){
$NewFeeId = $rowInv['id'];
$sql = mysqli_query($conn,"SELECT SUM(fee) as total FROM invoices WHERE id='$invoiceId'");
$row = mysqli_fetch_array($sql);
$sum = $row['total'];
$total_price += $row[‘fee’];
}}
$BalanceToPay = $total_price - $balance_price;
// you can keep for your data
$grandBalanceForAllStudent += $BalanceToPay ;
echo'<br>'.$exam.':' . $BalanceToPay ;
}
?>
- 3 回答
- 0 關(guān)注
- 164 瀏覽
添加回答
舉報(bào)