PHP เลขที่ใบเสร็จจากฐานข้อมูล MySQL บทความนี้สอนเขียนโค้ดสร้างเลขที่ใบเสร็จ โดยอ้างอิงลำดับตัวเลขจากข้อมูลในฐานข้อมูล MySQL ตัวอย่างสร้างเลขที่ใบเสร็จ คือ ปีเดือนและตัวเลขลำดับ สามารถเขียนโปรแกรมได้ดังนี้
ตัวอย่าง สร้างฐานข้อมูลชื่อ demo และตารางชื่อ orders
CREATE TABLE `orders` (
`id` int NOT NULL AUTO_INCREMENT,
`date` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
ตัวอย่าง PHP เลขที่ใบเสร็จจากฐานข้อมูล MySQL
<?php
$c = mysqli_connect("localhost", "root", "", "demo");
mysqli_query( $c, "SET NAMES UTF8" );
$sql = " SELECT MAX(id) AS id FROM orders ";
$q = mysqli_query( $c, $sql );
if( $q ) {
$f = mysqli_fetch_assoc( $q );
$id = $f['id'] + 1;
switch( strlen($id) ) {
case 1 : $id = "000".$id; break;
case 2 : $id = "000".$id; break;
case 3 : $id = "0".$id; break;
}
$orders_id = substr((date("Y")+543), 2).date("m").$id;
echo "เลขที่ใบเสร็จ คือ ".$orders_id;
}
mysqli_close( $c );
?>
ผลลัพธ์
เลขที่ใบเสร็จ คือ 65080001
PHP เลขที่ใบเสร็จ จากตัวอย่างสร้างเลขที่ใบเสร็จ เช่น 65080001 โดย 65 คือปีปัจจุบัน 08 คือเดือนปัจจุบัน และ 0001 คือลำดับตัวเลขของหมายเลขที่ใบเสร็จ มีลำดับขั้นตอนดังนี้
1. ดึงรหัสมากที่สุดของ column id จากตาราง orders ด้วย MAX(id) และบวกค่าเพิ่ม 1
2. ใช้คำสั่ง switch case และ strlen เพื่อนับจำนวน และหมายเลข 0 ให้ครบ 4 ตำแหน่ง เช่น 0001
3. ดึงปี และแปลงเป็น พ.ศ. พร้อมดึง 2 ตำแหน่งด้วย substr(( date("Y") + 543 ), 2) และดึงเดือน ด้วย date("m")
4. นำปี เดือน และลำดับตัวเลขจากฐานข้อมูลมาต่อกัน ได้เป็น PHP เลขที่ใบเสร็จจากฐานข้อมูล MySQL