ช่วยผมดู code ระบบรับชำระค่างวดหน่อยครับ มันคำนวนผิด
มันดึงค่าออกมาผิดครับ
รูปที่ 1 คือ จะทำการชำระครั้งที่ 3 ของ รหัสบัญชีนี้
พอดึงค่าคงเหลือ ออกมา ซึ่งจริง ๆ แล้วมันต้องเป็น 13,000 จากรูปที่ 2
แต่กลายเป็น 12,000
ทุกรหัสบัญชี พอชำระครั้งที่ 3 เลขที่ดึงออกมาจะเพี้ยนทุกที
รบกวนช่วยผมด้วยครับ code ผมผิดตรงไหน
รูปที่ 1 หน้านี่คือหน้ารับชำระค่างวด
รูปที่ 2 ข้อมูลที่ชำระไป 2 ครั้งแล้ว
Code คิวรี่ (PHP)
<?php require_once('Connections/satcha.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
mysql_query("SET NAMES UTF8");
mysql_query("SET character_set_results=utf8");//ตั้งค่าการดึงข้อมูลออกมาให้เป็น utf8
mysql_query("SET character_set_client=utf8");//ตั้งค่าการส่งข้อมุลลงฐานข้อมูลออกมาให้เป็น utf8
mysql_query("SET character_set_connection=utf8");//ตั้งค่าการติดต่อฐานข้อมูลให้เป็น ut
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$now = (date("Y") + 543) . date("-m-d");
$time = date("G:i:s"); //เผื่ออยากใส่วันเวลาคนละช่อง
$cal_balance=(double)$_POST['l_loan'] - (double)$_POST['ol_money'];
$insertSQL = sprintf("INSERT INTO order_loan (l_id, ol_lastdate, ol_time, l_loan,i_interest,ol_interest, ol_money,ol_total,ol_balance, l_status) VALUES (%s, substr(now(),1,10),substr(now(),12,19), %s,%s, %s, %s, %s, %s, 'ชำระแล้ว')",
GetSQLValueString($_POST['l_id'], "text"),
GetSQLValueString($_POST['l_loan'], "double"),
GetSQLValueString($_POST['i_interest'], "double"),
GetSQLValueString($_POST['ol_interest'], "double"),
GetSQLValueString($_POST['ol_money'], "double"),
GetSQLValueString($_POST['ol_total'], "double"),
GetSQLValueString($cal_balance, "double"));
mysql_select_db($database_satcha, $satcha);
$Result1 = mysql_query($insertSQL, $satcha) or die(mysql_error());
$insertGoTo = "payment.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
?>
Code หน้าCheck(PHP)
<?php require_once('Connections/satcha.php'); ?>
<?php
$l_id=$_POST['l_id'];
$sql="select o.l_loan,sum(l.ol_money) as pay,l.l_loan-sum(l.ol_money) as sum
from order_loan l RIGHT JOIN loan o on o.l_id=l.l_id
where o.l_id='$l_id' group by o.l_id ";
// echo $sql;
mysql_select_db("satcha", $satcha);
$result = mysql_query($sql, $satcha) or die(mysql_error());
while($row = mysql_fetch_array($result)){
if ($row['sum']==null) {
echo $row["l_loan"];
}else{
echo $row["sum"];
}
}
?>
รูป table order_loan
Tag : PHP, HTML/CSS, JavaScript
ประวัติการแก้ไข 2015-07-16 05:37:54 2015-07-16 05:40:45 2015-07-16 05:48:40
Date :
2015-07-16 05:34:07
By :
Alzheimertzz
View :
819
Reply :
2
ขอ structure ของทั้งสองตาราง หน่อยครับ ถ้าเห็นก็คงจะ design ได้ดีกว่า
อันนี้เป็นตัวอย่างตามที่เห็น
Code (PHP)
$sql="
select
o.l_id,
o.l_loan as cost,
sum(l.ol_money ) as pay,
(min(l.ol_balance) - l.ol_money ) as next_balance
from loan o
left join order_loan l
using (l_id)
where o.l_id='$l_id'
";
ปล. อยากแนะนำ alias name ตั้งชื่อให้ใกล์เคียงกับชื่อจริงหน่อยจะได้ไม่หลง
(แฮะๆ เกือบหลง)
order_loan as o loan as l อย่างนี้น่าจะไม่งงชื่อนะครับ
Date :
2015-07-16 08:34:03
By :
NewbiePHP
ประวัติการแก้ไข 2015-07-16 08:44:15
Date :
2015-07-16 08:41:36
By :
watcharop
Load balance : Server 03