PHP เช็คข้อมูลซ้ำ จากฐานข้อมูล MySQL/MariaDB บทความนี้สอนการเขียนคำสั่ง SQL เพื่อเช็คข้อมูลว่าซ้ำหรือไม่ กรณีไม่ซ้ำให้พิมพ์ข้อมูลใหม่ กรณีถ้าซ้ำให้แสดงข้อความแจ้งเตือน สามารถเขียนโปรแกรมได้ดังนี้
ตัวอย่าง ข้อมูลภายในตาราง member
+----+----------+
| id | username |
+----+----------+
| 5 | devdit |
+----+----------+
ตัวอย่าง PHP เช็คข้อมูลซ้ำ จากฐานข้อมูล MySQL/MariaDB
<?php
$username = "devdit/";
$conn = mysqli_connect( "127.0.0.1", "root", "", "demo" );
mysqli_query( $conn, "SET NAMES UTF8" );
$sql = " SELECT id FROM member WHERE ( username = '{$username}' ) ";
$q = mysqli_query( $conn, $sql );
$f = mysqli_fetch_assoc( $q );
// ข้อมูลไม่ซ้ำ
if( empty($f['id']) ) {
$sql = "
INSERT INTO
member
( id, username )
VALUES
( NULL, '".$username."' )
";
$q = mysqli_query( $conn, $sql );
if( $q ) {
echo "เพิ่มข้อมูลลงตารางเรียบร้อยแล้ว";
}
// ข้อมูลซ้ำ
} else {
echo "ข้อมูล Username ซ้ำ มีข้อมูลนี้แล้วในตาราง";
}
mysqli_close( $conn );
?>
ผลลัพธ์
ข้อมูล Username ซ้ำ มีข้อมูลนี้แล้วในตาราง
PHP เช็คข้อมูลซ้ำ จากฐานข้อมูล MySQL/MariaDB มีรายละเอียดดังนี้
1. สมมติให้ตัวแปร username เก็บค่าที่ต้องการเช็คว่าซ้ำกับข้อมูลในตาราง member หรือไม่
2. เขียนคำสั่ง SELECT id FROM member WHERE ( username = '{$username}' ) หมายความว่าให้ดึง id จากตาราง member เงื่อนไข column username ต้องเท่ากับค่าในตัวแปร username
3. ประมวลผลคำสั่ง SQL ด้วย mysqli_query และดึงข้อมูลด้วย mysqli_fetch_assoc จากนั้นใช้คำสั่ง if( empty($f['id']) ) เช็คว่าข้อมูลซ้ำหรือไม่ กรณี $f['id'] เป็นค่าว่างคือไม่ซ้ำ ให้ทำการ INSERT ข้อมูลใหม่
4. กรณี $f['id'] ไม่ใช่ค่าว่าง คือมีข้อมูลแปลว่าซ้ำให้ทำการพิมพ์ข้อความ “ข้อมูล Username ซ้ำ มีข้อมูลนี้แล้วในตาราง” ออกสู่หน้าจอเว็บไซต์