หน้าแรก/บทความ/สร้างรหัสสินค้าด้วย PHP
กลับหน้าบทความ
🏷️PHP

สร้างรหัสสินค้าด้วย PHP

วิธีสร้างรหัสสินค้าแบบมีเลขนำหน้าศูนย์ให้ครบ N หลัก ด้วย MySQL UNSIGNED ZEROFILL หรือฟังก์ชัน str_pad ของ PHP

ศิริชัย ธีรภัทรสกุล (ตั้ม)อ่าน 3 นาที12 มกราคม 2551
#PHP#MySQL#str_pad#ZEROFILL#Database

รหัสสินค้าส่วนใหญ่จะเป็นแบบมีการกำหนดหลัก อาจจะ 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 ดังนี้:

pad_type ผลลัพธ์ คำอธิบาย
STR_PAD_RIGHT 450000 เพิ่มจากขวา
STR_PAD_LEFT 000045 เพิ่มจากซ้าย
STR_PAD_BOTH 004500 เพิ่มทั้งสองข้าง

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

🚀 รับพัฒนาเว็บไซต์ & เว็บแอพพลิเคชั่น

สนใจดูตัวอย่างงานหรือสอบถามเพิ่มเติม ติดต่อได้เลยครับ โค้ดโมทีฟ (CodeMotive)