Devdit
 

PHP เช็คข้อมูลซ้ำ จากฐานข้อมูล MySQL/MariaDB

2.8K

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 ซ้ำ มีข้อมูลนี้แล้วในตาราง” ออกสู่หน้าจอเว็บไซต์

แก้ไข 1 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ