PHP ดึงข้อมูล 2 ตารางมาแสดงบนเว็บไซต์ ฐานข้อมูล MySQL บทความนี้สอนการเขียนภาษา PHP ร่วมกับ MySQL เพื่อดึงข้อมูล 2 ตารางมาแสดงบนเว็บไซต์ผ่านคำสั่ง SQL คือ INNER JOIN สามารถเขียนโปรแกรมได้ดังนี้
ตัวอย่าง ข้อมูลในตาราง book และตาราง category
ตาราง book
+---------+-------------+-------------+
| book_id | book_name | book_cgy_id |
+---------+-------------+-------------+
| 1 | PHP & MySQL | 1 |
| 2 | Python | 1 |
| 3 | SQL | 2 |
| 4 | Java | 2 |
+---------+-------------+-------------+
ตาราง category
+--------+-------------+
| cgy_id | cgy_name |
+--------+-------------+
| 1 | Programming |
| 2 | Networking |
+--------+-------------+
ตัวอย่าง PHP ดึงข้อมูล 2 ตารางมาแสดงบนเว็บไซต์ ฐานข้อมูล MySQL
<?php
$con = mysqli_connect("localhost", "root", "", "demo");
mysqli_query( $con, "SET NAMES UTF8" );
$sql = " SELECT * FROM book INNER JOIN category ON ( book_cgy_id = cgy_id ) ";
$q = mysqli_query( $con, $sql );
while( $f = mysqli_fetch_assoc( $q ) ) {
echo $f['book_id']." ".$f['book_name']." / ".$f['cgy_name']."<br/>";
}
mysqli_close( $con );
?>
ผลลัพธ์
1 PHP & MySQL / Programming
2 Python / Programming
3 SQL / Networking
4 Java / Networking
PHP ดึงข้อมูล 2 ตารางมาแสดงบนเว็บไซต์ จากตัวอย่างเป็นการดึงข้อมูลจากตาราง book และตาราง category ผ่าน columns book_cgy_id (Foreign Key) และ cgy_id (Primary Key) ฐานข้อมูล MySQL/MariaDB โดยใช้ชุดคำสั่ง mysqli โดยมีรายละเอียดดังนี้
1. เชื่อมต่อฐานข้อมูล demo ด้วยคำสั่ง mysqli_connect
2. สร้างชุดคำสั่ง SQL การเชื่อมข้อมูล 2 ตารางผ่าน INNER JOIN category ON ( book_cgy_id = cgy_id )
3. ประมวลผลคำสั่ง SQL ด้วย mysqli_query
4. ใช้คำสั่ง while วนลูปจากการดึงข้อมูลด้วยคำสั่ง mysqli_fetch_assoc
5. ภายใน while ใช้คำสั่ง echo พิมพ์ข้อมูลจากตารางออกสู่หน้าเว็บไซต์ ผ่านชื่อ column
6. ปิดการเชื่อมต่อฐานข้อมูลด้วย mysqli_close