รหัสสินค้าส่วนใหญ่จะเป็นแบบมีการกำหนดหลักอาจจะ 5-6หลัก และอาจมีคำย่อนำหน้า เช่น

CP000045 ,CP000569 เป็นต้น

ซึ่งแน่นอนวิธีการออกแบบการเก็บข้อมูลเราก็ต้องใช้ฟิลด์นึงเก็บคำย่อ และอีกฟิลด์นึงเก็บหมายเลข ID ซึ่งหากข้อมูลออกมา โดยอิงจาก ตย. ด้านบนก็จะเป็น

CP45 ,CP569

สังเกตมั้ยครับว่าเลขศูนย์ข้างหน้ามันหายไป แล้วเราจะทำอย่างไรให้มันแสดงผลครบ มาดูตัวอย่างเช่น รหัสมี 6 หลัก โดยมีวิธีดังนี้

1. แก้ที่ Mysql ตรงๆ โดยเซ็ต Attributes ให้เป็น UNSIGNED ZEROFILL

CREATE TABLE `product` (

`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`PRODUCT_ID` INT( 6 ) UNSIGNED ZEROFILL NOT NULL

) ENGINE = MYISAM ;

2. ใช้ฟังก์ชั่น str_pad ของ PHP ไม่ต้องยุ่งกับ Database

$input=45;
echo str_pad($input,6, "0", STR_PAD_LEFT); // กำหนดให้เพิ่มเลขศูนย์จากทางซ้ายรวมกันแล้วครบ 6 หลัก
//จะได้เป็น 000045

ฟังก์ชั่น str_pad สามารถเพิ่ม String ทางขวาหรือทั้งสองข้างได้ โดยการกำหนด pad_type ดังนี้

STR_PAD_RIGHT= เพิ่มจากขวา 450000

STR_PAD_LEFT=เพิ่มจากขวา 000045

STR_PAD_BOTH=เพิ่มทั้งสอง 004500

หวังว่าคงมีประโยชน์ครับ