PHP นับข้อมูลที่ซ้ำกันจากตาราง ฐานข้อมูล MySQL บทความนี้สอนเขียนภาษา PHP ร่วมกับฐานข้อมูล MySQL เพื่อสร้างคำสั่ง SQL สำหรับนับข้อมูลที่ซ้ำกันจากตาราง และแสดงผลบนหน้าเว็บไซต์ สามารถเขียนโปรแกรมได้ดังนี้
ตัวอย่าง ตารางข้อมูล test
+----+------+
| id | name |
+----+------+
| 1 | A |
| 2 | B |
| 3 | C |
| 4 | A |
| 5 | A |
| 6 | C |
+----+------+
ตัวอย่าง PHP นับข้อมูลที่ซ้ำกันจากตาราง ฐานข้อมูล MySQL
<?php
$conn = mysqli_connect( "127.0.0.1", "root", "", "demo" );
mysqli_query( $conn, "SET NAMES UTF8" );
$sql = " SELECT *, COUNT(NAME) AS count_name FROM test GROUP BY name HAVING count_name > 1 ";
$q = mysqli_query( $conn, $sql );
while( $f = mysqli_fetch_assoc( $q )) {
echo $f['id']." / ".$f['name']." / ซ้ำทั้งหมด ".$f['count_name']."<br/>";
}
mysqli_close( $conn );
?>
ผลลัพธ์
1 / A / ซ้ำทั้งหมด 3
3 / C / ซ้ำทั้งหมด 2
PHP นับข้อมูลที่ซ้ำกันจากตาราง ฐานข้อมูล MySQL เริ่มต้นด้วยการเชื่อมต่อ MySQL ด้วย mysqli_connect จากนั้นเขียนคำสั่ง SQL มีรายละเอียดดังนี้
1. SELECT *, COUNT(NAME) AS count_name FROM test คือ แสดงข้อมูลจากตาราง test โดยแสดงทุก columns และนับข้อมูลจาก column name ตั้งชื่อว่า count_name
2. GROUP BY name HAVING count_name > 1 คือ รวมข้อมูลที่ซ้ำกันของ column name และแสดงเฉพาะข้อมูลที่ซ้ำกัน เงื่อนไขคือ column count_name ต้องมีค่ามากกว่า 1
3. ประมวลผลคำสั่ง SQL ด้วย mysqli_query และใช้คำสั่ง mysqli_fetch_assoc ดึงข้อมูล โดย column count_name เก็บการนับข้อมูลที่ซ้ำกันจากตาราง ฐานข้อมูล MySQL