|
|
|
สอบถามการทำ auto id แบบ มีทั้งตัวหนังสือแล้วก็ตัวเลขอะค่ะ ก่อน insert ลง database ค่ะ |
|
|
|
|
|
|
|
Code (PHP)
$new_id = mysql_result(mysql_query("Select Max(substr(CompName,-$num))+1 as MaxID from computernametb where CompName LIKE '$icomname%'"),0,"MaxID");
if($new_id ==''){ // ถ้าได้เป็นค่าว่าง หรือ null ก็แสดงว่ายังไม่มีข้อมูลในฐานข้อมูล
$icomname = $icomname."001";
}else{
$icomname = $icomname.sprintf("%03d",$new_id);//ถ้าไม่ใช่ค่าว่าง
}
|
|
|
|
|
Date :
2014-07-02 19:00:27 |
By :
เด็กโง่ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$num เอามาจากไหนครับ
รูปแบบคำสั่ง substr('1234567890', -3) จะได้เท่ากับ 890
แต่รูปแบบที่ได้มันเป็น string ครับ ต้อง convert เป็น interger ก่อนครับ
mysql ไม่ใช่ php ครับ ไม่ auto convert ครับ ต้องใช้คำสั่ง cast
(CAST(substr('1234567890',-3) as UNSIGNED INTEGER ) + 1) = 891
ที่คุณต้องทำครับ
Select Max(CAST(substr(CompName,-$num) as UNSIGNED INTEGER ) )+1 as MaxID
|
ประวัติการแก้ไข 2014-07-02 20:01:29
|
|
|
|
Date :
2014-07-02 19:59:37 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมใช้แบบนี้อยู่คับ ในฐานข้อมูลก็เป็น varchar
Code (PHP)
$new_id =mysql_result(mysql_query("Select Max(substr(ID_repair,-4))+1 as MaxID from repair"),0,"MaxID");//เลือกเอาค่า id ที่มากที่สุดในฐานข้อมูลและบวก 1 เข้าไปด้วยเลย ส่วน-4 ตรงนี้ก็เปลี่ยนได้ครับแล้วจะเอาตัวหนังสือเข้ามากี่ตัว
if($new_id==''){ // ถ้าได้เป็นค่าว่าง หรือ null ก็แสดงว่ายังไม่มีข้อมูลในฐานข้อมูล
$ID_repair="W0001";
}else{
$ID_repair="W".sprintf("%04d",$new_id);//ถ้าไม่ใช่ค่าว่าง
}
?>
<input type='hidden' name='ID_repair' value="<?=$ID_repair?>" /> // กรณีทำเป็น hidden
<input name='ID_repair' type='text' id='ID_repair' value="<?=$ID_repair ?>" size='10' disabled="disabled"/>
|
ประวัติการแก้ไข 2014-07-03 08:53:07
|
|
|
|
Date :
2014-07-03 08:52:34 |
By :
pangroupza |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|