จนปัญญาจริง ๆค่ะ พี่วิน พี่ Plakrim พี่ ๆทุกคนรบกวนช่วยทีนะคะ
Code (PHP)
<?
require_once "include/functions.php";
require_once "include/connectdb.php";
$test1=mysql_query("select * from pointofproduct") or die( mysql_error());
$row1 = mysql_fetch_array($test1);
//while($row=mysql_fetch_array($test1))
//{
$s_date = date2time($row1["SDATE"]);
$e_date = date2time($row1["EDATE"]);
$date = date2time($date);
if ($date >= $s_date && $date <= $e_date){
//echo "ok...";
//echo date("Y-m-d" , $date) ." | ".date("Y-m-d", $s_date)." | ".date("Y-m-d", $e_date)."<br><br>";
$sql_fr = "update memberpoint,(
select a.psh_mbcode as mbcode ,sum(pp.point1*a.psd_qty) as sumpoint from a$newexcelfiles as a right join pointofproduct as pp on a.psd_keyin=pp.barcode group by a.psh_mbcode) as subquery set memberpoint= memberpoint+subquery.sumpoint
where subquery.mbcode=memberpoint.membercode";
mysql_query($sql_fr);
}else{
//echo "no...";
//echo date("Y-m-d" , $date) ." | ".date("Y-m-d", $s_date)." | ".date("Y-m-d", $e_date)."<br><br>";
}
//}
?>
การทำงาน
ตาราง pointofproduct มี 3 รายการ
รหัสสินค้า a11 มี 100 แต้ม วันเริ่มเล่นแต้ม 2008-12-24 ถึงวันที่ 2009-10-24
รหัสสินค้า a12 มี 20 แต้ม วันเริ่มเล่นแต้ม 2008-12-24 ถึงวันที่ 2009-10-24
รหัสสินค้า a13 มี 30 แต้ม วันเริ่มเล่นแต้ม 2008-12-24 ถึงวันที่ 2009-10-28
การซื้อขาย มี 2ไฟล์ excel คือ 2009-10-23 และ 2009-10-27
มีรายการซื้อขายเหมือนกันคือ
2009-10-23 มีรายการ
ซื้อ a11 ไปจำนวน 1 ชิ้น (จำนวนที่ซื้อ คูณกับแต้มของรหัสสินค้านี้เท่ากับ 100 แต้ม)
ซื้อ a12 ไปจำนวน 3 ชิ้น (จำนวนที่ซื้อ คูณกับแต้มของรหัสสินค้านี้เท่ากับ 60 แต้ม)
ซื้อ a13 ไปจำนวน 1 ชิ้น (จำนวนที่ซื้อ คูณกับแต้มของรหัสสินค้านี้เท่ากับ 30 แต้ม)
รวมวันที่ 23 นี้ มีแต้มรวม 190 แต้ม
2009-10-27 มีรายการซื้อ
ซื้อ a11 ไปจำนวน 1 ชิ้น (จำนวนที่ซื้อ คูณกับแต้มของรหัสสินค้านี้เท่ากับ 100 แต้ม แต่รายการที่ซื้อเกินกำหนดของตาราง pointofproduct จึงไม่เอาแต้มไปบวก)
ซื้อ a12 ไปจำนวน 3 ชิ้น (จำนวนที่ซื้อ คูณกับแต้มของรหัสสินค้านี้เท่ากับ 60 แต้ม แต่รายการที่ซื้อเกินกำหนดของตาราง pointofproduct จึงไม่เอาแต้มไปบวก))
ซื้อ a13 ไปจำนวน 1 ชิ้น (จำนวนที่ซื้อ คูณกับแต้มของรหัสสินค้านี้เท่ากับ 30 แต้ม รายการซื้อวันนี้ยังอยู่ในวันที่กำหนดของตาราง pointofproduct)
เมื่อเอาวันที่ซื้อทั้ง 2 วันมารวมกัน จะได้แต้ม 190+30 = 220 แต้ม
ปัญหาอย่างเดียวที่เกิดขึ้นคือ มันจะบวกได้เฉพาะ 190 เท่านั้น เมื่ออีพไฟล์ excel ที่ตรงเงื่อนไขเข้าไปอีก (2009-10-27) มันจะไม่บวกแต้มให้อีก 30 แต้ม ซึ่งไฟล์ 2009-10-27 ตรง 1 เงื่อนไขคือ a13
*** ช่วยทีนะคะ แต้มมันบวกไม่ครบ่ะค่ะ ไม่รู้แก้ตรงไหนอ่ะค่ะ แก้มา 1 อาทิตย์แล้วค่ะ
ไฟล์ functions.php
Code (PHP)
<?
require_once "include/functions.php";
require_once "include/connectdb.php";
$test1=mysql_query("select * from pointofproduct") or die( mysql_error());
$row1 = mysql_fetch_array($test1);
//while($row=mysql_fetch_array($test1))
//{
$s_date = date2time($row1["SDATE"]);
$e_date = date2time($row1["EDATE"]);
$date = date2time($date);
if ($date >= $s_date && $date <= $e_date){
//echo "ok...";
//echo date("Y-m-d" , $date) ." | ".date("Y-m-d", $s_date)." | ".date("Y-m-d", $e_date)."<br><br>";
$sql_fr = "update memberpoint,(
select a.psh_mbcode as mbcode ,sum(pp.point1*a.psd_qty) as sumpoint from a$newexcelfiles as a right join pointofproduct as pp on a.psd_keyin=pp.barcode group by a.psh_mbcode) as subquery set memberpoint= memberpoint+subquery.sumpoint
where subquery.mbcode=memberpoint.membercode";
mysql_query($sql_fr);
}else{
//echo "no...";
//echo date("Y-m-d" , $date) ." | ".date("Y-m-d", $s_date)." | ".date("Y-m-d", $e_date)."<br><br>";
}
//}
?>
Tag : - - - -
Date :
2010-04-01 09:49:34
By :
yingnoi
View :
950
Reply :
5
ช่วยทีนะคะ
Date :
2010-04-01 10:46:14
By :
yingnoi
ไม่มีใครดูให้เลยเหรอคะ แงๆๆๆๆๆๆ
Date :
2010-04-02 09:10:49
By :
yingnoi
มันยาวอะ ขี้เกียจอ่านทำความเข้าใจหลายรอบ เอาแบบสั้นๆ ง่ายๆ ไปทีละนิดดีกว่าไหมครับ
Date :
2010-04-02 12:34:37
By :
plakrim
Code (PHP)
update
memberpoint,
(
select a.psh_mbcode as mbcode ,sum(pp.point1*a.psd_qty) as sumpoint
from a$newexcelfiles as a
right join pointofproduct as pp
on a.psd_keyin=pp.barcode
where a.PSH_DATE between pp.SDATE and pp.EDATE
group by a.psh_mbcode
) as subquery
set memberpoint= memberpoint+subquery.sumpoint
where subquery.mbcode=memberpoint.membercode
Date :
2010-04-02 15:50:09
By :
xbeginner01
Load balance : Server 00