บทความนี้สอนเขียนโปรแกรมสร้าง QR Code จากฐานข้อมูลด้วยภาษา PHP โดยฐานข้อมูลที่ใช้จะเป็น MySQL ตัวอย่างโค้ดจะเริ่มจากเชื่อมต่อฐานข้อมูล และแสดงรายการสินค้า พร้อมสร้าง QR Code เมื่อสแกนแล้วจะพบข้อมูลสินค้าที่กำหนดไว้ สามารถเขียนโปรแกรมได้ดังนี้
ตัวอย่าง สร้าง QR Code จากฐานข้อมูล PHP
1. ดาวน์โหลด PHP QR Code library จากลิงก์ด้านล่าง โดยคลิกเมนู Download เมื่อดาวน์โหลดแล้วให้แตกไฟล์ และคัดลอก folder phpqrcode ไปวางไว้ใน folder ของ project
https://phpqrcode.sourceforge.net/
2. สร้างฐานข้อมูล และตารางชื่อ product พร้อมนำเข้าข้อมูลจาก SQL ด้านล่าง
CREATE TABLE `product` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO `product` (`id`, `name`) VALUES
(1, 'Computer'),
(2, 'Nodebook'),
(3, 'Mobile Phone');
3. เขียนโปรแกรมด้วยภาษา PHP สร้าง QR Code จากข้อมูลในฐานข้อมูล MySQL
<?php
include('phpqrcode/qrlib.php');
$servername = "localhost";
$username = "root";
$password = "rootpassword";
$dbname = "mydatabase";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = " SELECT id, name FROM product ";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "
<center>
<table width='30%'>
<tr>
<td><b>ID</b></td>
<td><b>Name</b></td>
<td align='center'><b>QR Code</b></td>
</tr>
";
while($row = $result->fetch_assoc()) {
$content = $row["id"]." / ".$row["name"];
ob_start();
QRcode::png($content, null);
$qr_code = base64_encode(ob_get_contents());
ob_end_clean();
echo "
<tr>
<td>".$row["id"]."</td>
<td>".$row["name"]."</td>
<td align='center'>
<img src='data:image/png;base64,".$qr_code."'>
</td>
</tr>
";
}
echo "
</table>
</center>
";
}
$conn->close();
?>
จากโค้ดโปรแกรมอธิบายได้ดังนี้
- เรียกใช้ PHP QR Code library ด้วยการ include ไฟล์ phpqrcode/qrlib.php
- เชื่อมต่อ MySQL ฐานข้อมูลชื่อ mydatabase และตารางชื่อ product
- เขียน SQL แสดงข้อมูลทั้งหมดจากตาราง product
- วนลูป และแสดงข้อมูลในรูปแบบตารางประกอบด้วย ID, Name และ QR Code
- สร้าง QR Code ด้วยคำสั่ง QRcode::png โดยจะเป็นแบบไม่บันทึกเป็นรูปภาพไว้ใน Server
- แต่ละ QR Code จะเก็บข้อมูล id / name ที่อยู่ในตาราง product เมื่อสแกนจะพบข้อมูลดังกล่าว
- แสดง QR Code ออกสู่หน้าจอผ่านแท็ก img ร่วมกับ data:image/png;base64