สร้างรหัสสินค้า หรือหมายเลข ID ด้วย str_pad()
บันทึกโดย วันที่ 12 January 2008 | 532 views
รหัสสินค้าส่วนใหญ่จะเป็นแบบมีการกำหนดหลักอาจจะ 5-6หลัก และอาจมีคำย่อนำหน้า เช่น
CP000045 ,CP000569 เป็นต้น
ซึ่งแน่นอนวิธีการออกแบบการเก็บข้อมูลเราก็ต้องใช้ฟิลด์นึงเก็บคำย่อ และอีกฟิลด์นึงเก็บหมายเลข ID ซึ่งหากข้อมูลออกมา โดยอิงจาก ตย. ด้านบนก็จะเป็น
CP45 ,CP569
สังเกตมั้ยครับว่าเลขศูนย์ข้างหน้ามันหายไป อ่า…เราจะทำอย่างไรให้มันแสดงผลครบล่ะ ผมขออุปมาว่ารหัสมี 6 หลักแล้วกันนะครับ
วิธีแก้แบบที่ 1 แก้ที่การออกแบบ database โดยเซ็ต 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 ;
วิธีแก้แบบที่ 1 ใช้ฟังก์ชั่น str_pad อันที่เกรี่นหัวไว้เน่าะ ^_^
$input=45; echo str_pad($input,6, "0", STR_PAD_LEFT); // กำหนดให้เพิ่มเลขศูนย์จากทางซ้ายรวมกันแล้วครบ 6 หลัก //จะได้เป็น 000045
จะว่าไป str_pad สามารถเพิ่มทางขวาหรือทั้งสอง้างก็ได้โดยการกำหนด pad_type ดังนี้
STR_PAD_RIGHT= เพิ่มจากขวา 450000
STR_PAD_LEFT=เพิ่มจากขวา 000045
STR_PAD_BOTH=เพิ่มทั้งสอง 004500


Business is the salt of life
March 12th, 2009 at 11:02 am