ตัวเลขไม่บวกค่าให้ทำอย่างไรดีค่ะ ข้างบนเป็นโค้ดที่จะนำตัวเลข pr_order มาบวกค่าค่ะ
$pr_order = ((int) $rs1['now_id']) + 1;
ลองดูนะครับไม่รู้ว่าได้หรือเปล่า
Date :
2009-09-28 13:35:07
By :
DownsTream
$pr_order =$rs1['now_id']+1;
เปลี่ยนตัวแปร $pr_order เป็นชื่ออื่นครับ อะไรก็ได้ที่ไม่ใช่ชื่อ field ใน table ที่ถูก query
เช่น $order
Code (PHP)
$order =$rs1['now_id']+1;
echo "ทดสอบ : $order";
Date :
2009-09-28 13:40:25
By :
xbeginner01
ไม่ได้เลยค่ะ ลองมาหลายวิธีแล้วค้า pr_order จะเก็บเป็น CPMK001/2552 แต่จะนำตัวเลข 001 มาบวกค่าขึ้นเรื่อย ๆ น่ะค่ะ แต่มันไม่บวกให้เลย
(Code)
<font color="#FF0000" size="2">เล่มที่/เลขที่ใบขอซื้อ</font> <? echo "$rs[code]";?><?php echo"$rs[code2]";?><?=sprintf("%03d",$pr_order) ?>/<?="$d2"; ?>
Date :
2009-09-28 13:59:06
By :
T_T
แบบนี้บวกกันไม่ได้หรอก -..-
ต้องจับแยกข้อมูลก่อน เอาข้อมูลที่จะบวกมาบวกกันก่อน แล้วค่อยจับมารวมกันใหม่
CPMK001/2552 จำนวนอักษรนี้ตายตัวเปล่า
CPMK มีอักษร 4 ตัว
001 มีอักษร 3ตัว
/2552 มีอักษร 5ตัว
Code (PHP)
$part1 = substr($rs1['now_id'],0,4);
$part2 = substr($rs1['now_id'],4,3);
$part3 =substr($rs1['now_id'],7,5);
$new_value =$part2+1;
$zero="";
for($i=0 ; $i<(3-strlen($new_value)) ;$i++)
$zero .= "0";
$new_value=$zero.$new_value;
$combine = $part1.$new_value.$part3;
echo $combine;
หรือ
Code (PHP)
ereg("([a-zA-Z]{4})([0-9]{3})([/][0-9]{4})",$rs1['now_id'],$part);
$new_value =$part[2]+5;
$zero="";
for($i=0 ; $i<(3-strlen($new_value)) ;$i++)
$zero .= "0";
$new_value=$zero.$new_value;
$combine = $part[1].$new_value.$part[3];
echo $combine;
Date :
2009-09-28 14:49:52
By :
xbeginner01
ตัวเลข CPMK001/2552 คือ
CP หมายถึง ตัวย่อสาขา (ได้จากการ Login)
MK หมายถึง ตัวย่อแผนก (ได้จากการ Login)
001 คือ เลขที่ขอซื้อ (คือ ตัวเลขที่จะนำมาบวก 1)
/2552 คือปี พ.ศ.ที่ทำรายการ
**** CPMK001/2552 **** เก็บใน Database เป็น Varchar ค่ะ นู๋ยิ้มทำไม่ได้จริง ๆ รบกวนช่วยดูให้ด้วยนะคะ Thank you very much.
Date :
2009-09-28 15:10:50
By :
ยิ้ม......ยิ้ม
ตัวย่อนี้จำนวนตายตัวเปล่าครับ คือมีอักษร 4 ตัวเท่านั้นหรือเปล่า
แล้ว pr_order เก็บค่า CPMK001/2552 แบบนี้หรือเปล่า
ลองทดสอบโค้ดข้างบนยังครับได้ไม่ได้ไงเด่วมาดูให้ใหม่
Date :
2009-09-28 15:51:54
By :
xbeginner01
ทอสอบดูแล้วค่ะตามที่คุณ xbeginner01 ให้ code ไว้ ปรากฎว่า ข้อมูลไม่เก็บใน Database แล้วก็ไม่บวกเลยค่ะ ทำมาหลายวันแล้วก็ทำไม่ได้ ตัวย่อ CPMK ไม่ตายตัวคะ ขึ้นอยู่กับพนักงาน Login เข้ามา
CP หมายถึง ตัวย่อสาขา (ได้จากการ Login ซึ่งจะแตกต่างกันขึ้นอยู่ที่ว่าใคร login)
MK หมายถึง ตัวย่อแผนก (ได้จากการ Login ซึ่งจะแตกต่างกันขึ้นอยู่ที่ว่าแผนกใด login)
001 คือ เลขที่ขอซื้อ (จะ run ไปเรื่อย ๆ ค่ะ)
Date :
2009-09-28 16:29:04
By :
ยิ้ม......ยิ้ม
สงสัยผมจะอธิบายผิด :> ผมหมายถึงจำนวนตัวอักษรครับ ตัวย่อรวมกันแล้วมี 4 ตัวรึเปล่า หรือมี4 5 หรือ 6 ตัว
เอางี้ละกันทำที่ละอย่างก่อนละกัน
เริ่มจาก
Code (PHP)
$str_sql1 ="SELECT * FROM pr_decription";
mysql_query("SET NAMES tis620");
$result1=mysql_query($str_sql1);
while($rs1=mysql_fetch_array($result1))
echo $rs1[pr_order]."<br>";
เอาผลมาให้ดูหน่อยน่ะครับ (ถ้าเยอะก็เอาแค่บางส่วนมาก็ได้) อยากเห็น
เอางี้ละกันแอดเอมมาน่ะครับเด่วบอกทางเอมให้ละกัน [email protected]
Date :
2009-09-28 16:42:18
By :
xbeginner01
จำนวนตัวอักษรมี 4 ตัวค่ะ
Date :
2009-09-28 16:54:00
By :
ยิ้ม......ยิ้ม
OH!! ภาพมันมาใหญ่จัง ก็ประมาณนี้น่ะค่ะ ถ้าไม่ได้อย่างไรนู๋คงต้องไปศึกษาเพิ่มเติม คงจะผิดพลาดตั้งแต่เริ่มต้นกะมังคะ คงต้องไล่ดู Code อีกที งานแรกนู๋ก็เจอศึกหนักเลย จะทำได้ไม๊นี่ !!!!!!!!!!!1
Date :
2009-09-28 16:58:16
By :
T_T
$now_id = "CPMK001/2552"; // สมมุติให้เป็นค่านี้
$str_pos = strpos($now_id ,"/");
$str_len = strlen($now_id);
$sub_str1 = substr($now_id,0,$str_pos);
$sub_str1++;
$sub_str2 = substr($now_id,$str_pos,$str_len);
$now_id_new = $sub_str1.$sub_str2; // CPMK002/2552
Date :
2009-09-28 17:15:16
By :
heng
//ค้นหา now_id ของปีนี้
$r = mysql_query("
SELECT
MAX(CAST(MID(pr_order,5,3) AS UNSIGNED)) AS now_id,
RIGHT(pr_order,4) AS year_id
FROM pr_description
GROUP BY year_id
HAVING year_id = YEAR(CURRENT_DATE)+543
");
//แบ่งเป็นสองกรณี
if (mysql_num_rows($r)){ //กรณีพบแถวรายการของปีนี้
$now_id = mysql_result($r,0,'now_id');
} else { //กรณีไม่พบรายการของปีนี้
$now_id = 1;
}
$now_id = sprintf("%02d",$now_id);
echo $now_id;
ตัวทดสอบครับ
SELECT
MAX(CAST(MID(pr_order,5,3) AS UNSIGNED)) AS now_id,
RIGHT(pr_order,4) AS year_id
FROM
(
SELECT 'CPMK001/2552' AS pr_order
UNION
SELECT 'CPMK003/2552' AS pr_order
UNION
SELECT 'CPMK004/2551' AS pr_order
UNION
SELECT 'CPMK002/2552' AS pr_order
) AS t1
GROUP BY year_id
HAVING year_id = YEAR(CURRENT_DATE)+543
Date :
2009-09-28 18:35:44
By :
num
Load balance : Server 00