ตอนที่ 14 PHP & PDO : การกำหนดพารามิเตอร์ด้วย bindParam()

ในตอนที่ 14 นี้เราจะเริ่ม JOIN ตารางกันแล้วนะคะ
แต่สิ่งที่อยากให้สนใจ ไม่ใช่คำสั่ง JOIN ในภาษา SQL
เรามาดูในเรื่องของการ bindParam() ก่อนค่ะ
เรื่องการ JOIN เราจะลงลึกรายละเอียดในตอนต่อ ๆ ไป

เงื่อนไข : ของเราในตอนนี้มีอยู่ว่า
สมชาย เขียนหนังสืออะไรบ้าง ในประเภท การพัฒนาโปรแกรม

ตอนนี้ในตารางประเภทหนังสือของเรามี 3 ประเภท ดังนี้

mystou-com-php-pdo-basic-2-4-01

ข้อมูลรายการหนังสือเรามีดังนี้

mystou-com-php-pdo-basic-2-4-02

การ JOIN ตารางก็คือ การนำตารางมารวมกันนะคะ
เราจะต้องดึงข้อมูลทั้ง 2 ตารางขึ้นมา
แล้วตรวจสอบเงื่อนไขที่ต้องการ ทีละเงื่อนไข
เราก็จะได้ผลลัพธ์ออกมา

จิตนาการว่า เรารับค่า “ประเภทหนังสือ” มาจากที่อื่นนะคะ
เช่น เรากำลังใช้โทรศัพท์ ค้นข้อมูลหนังสืออยู่
ตอนนี้เราเลือกนักเขียนชื่อ “สมชาย” มาละ

และเราอยากรู้ว่าแต่ละหมวดหมู่นั้น
สมชาย” เขียนหนังสืออะไรบ้าง ?
เราจะเขียนโปรแกรมอย่างไร ?
เพื่อให้ได้คำตอบตามต้องการ ???
ลองอ่านโค้ดดูนะคะ

เราจะได้ผลลัพธ์ดังนี้

mystou-com-php-pdo-basic-2-4-03

คราวนี้เราเปลี่ยนเงื่อนไขนะคะ
ไม่อยากดูประเภทของ “การพัฒนาโปรแกรม” ละ
ไปดูประเภทอื่นบ้าง…
ประเภท “ฐานข้อมูล” ละ ? “สมชาย” เขียนหนังสืออะไรบ้าง ?

นึกออกมั้ยคะว่าจะไปเปลี่ยนโค้ดตรงไหน ? ^_^

ตรงนี้ค่ะ เปลี่ยนรหัส จาก 1 ไปเป็น 2

ทำการ “save” แล้วดูผลลัพธ์ จะได้ดังนี้

mystou-com-php-pdo-basic-2-4-04

แล้วประเภทที่ 3 ที่เป็นหนังสือเกี่ยวกับการท่องเที่ยวละ
สมชาย” เขียนหนังสือพวกนี้หรือไม่ ?

เปลี่ยนโค้ดที่เดิมค่ะ

ทำการ “save” แล้วดูผลลัพธ์ จะได้ดังนี้

mystou-com-php-pdo-basic-2-4-05

ปรากฏว่า นักเขียนชื่อ “สมชาย” ไม่ได้เขียนหนังสือประเภทท่องเที่ยวนะคะ
ไม่มีข้อมูลเลย แสดงว่าทำแต่งาน ไม่ได้เที่ยวค่ะ ^_^
เลยไม่มีความรู้เรื่องการท่องเที่ยว และไม่ได้เขียนหนังสือประเภทนี้ออกมา

เป็นอย่างไรบ้างคะ บทความนี้สนุกหรือปล่าว ?
จริง ๆ แล้วการเขียนโปรแกรมก็มีแค่นี้แหละค่ะ
เขียนขึ้นมาเพื่อ “แก้ปัญหา
ไม่ว่าจะเอาไปใช้ในศาสตร์ไหน ๆ ก็ตาม

มันก็เกี่ยวข้องกับชีวิตของเรา
เราพูดถึงมัน และอธิบายถึงมันด้วยภาษามนุษย์ได้
สื่อสารกับคนอื่นให้เข้าใจได้
เพียงแต่ว่าเราไม่ได้วิ่งไปค้นหนังสือในห้องสมุดโดยตรง

ไม่ได้วิ่งไปดูหนังสือประเภทต่าง ๆ แล้วหยิบมาตอบคนถาม

เราแค่ “เก็บข้อมูล ลงในฐานข้อมูล”
เราแค่ “เขียนคำสั่งต่าง ๆ ขึ้นมาเพื่อให้มันทำงานแทนเรา”

สิ่งเหล่านี้เป็นโค้ดเบื้องหลังค่ะ
ต่อไปเราก็ไปออกแบบหน้าจอโปรแกรมสวย ๆ
มีภาพปกหนังสือ มีรายละเอียด มีราคา ฯลฯ
มีปุ่ม ต่าง ๆ ให้เรากด เพื่อให้ได้คำตอบกลับมา

อยากรู้อะไร ก็มาเขียนคำสั่ง หรือ เขียนโค้ดเอาไว้
ถึงเวลาใช้ อยากรู้อะไรก็แค่มาคลิก ๆ ก็ได้คำตอบแล้ว

สิ่งเหล่านี้แหละค่ะคืองานของเรา…
นอกจากนี้ก็มีสิ่งที่ต้องคิดอีก ในเรื่องของประสิทธิภาพ
เรื่องของความเป็นมิตรกับผู้ใช้ ฯลฯ
ค่อย ๆ เรียนรู้ไปค่ะ “กรุงโรม ไม่ได้สร้างเสร็จในวันเดียว

แค่เรารักในสิ่งที่เราทำ
เรารู้ว่าสิ่งนี้ “แก้ปัญหา” ให้ผู้คนได้มากมาย
สิ่งที่เราทำมันมีคุณค่า มีประโยชน์กับผู้อื่น
มันทำให้ชีวิตเค้าดีขึ้นกว่าเดิม จากที่เคยเป็นอยู่
เค้าเหล่านั้นมีความสุขที่ได้ใช้สิ่งที่เราสร้างขึ้น

แค่นี้มันก็ทำให้เรามีพลังที่จะเรียนรู้ทุกสิ่งทุกอย่างแบบไม่สิ้นสุด
เพื่อสิ่งที่ดีกว่า เพื่อวันที่ดีกว่า เพื่อโลกที่สวยงามยิ่งขึ้น
สู้ต่อไปนะคะ อย่างพึ่งท้อไปซะก่อนล่ะ ^_^


เรื่องที่เกี่ยวข้อง :
PHP and PDO Basic : แบบ 2 ตาราง
ตอนที่ 11 phpMyAdmin : การสร้างตารางที่มีความสัมพันธ์กัน 2 ตาราง
ตอนที่ 12 phpMyAdmin : กรอกข้อมูล (INSERT)
ตอนที่ 13 PHP & PDO : การผูกค่าตัวแปรด้วย bindValue()
ตอนที่ 14 PHP & PDO : การกำหนดพารามิเตอร์ด้วย bindParam()
ตอนที่ 15 PHP & PDO : การส่งค่าทาง URL แบบ GET
ตอนที่ 16 PHP & PDO : MySQL INNER JOIN [ coming soon !!! ]
ตอนที่ 17 PHP & PDO : MySQL OUTER JOIN [ coming soon !!! ]
ตอนที่ 18 PHP & PDO : การ Insert ข้อมูล
ตอนที่ 19 PHP & PDO : การ Insert ข้อมูลและขอ id กลับมา lastInsertId()
ตอนที่ 20 PHP & PDO : การ Delete และนับแถวที่มีการเปลี่ยนแปลง rowCount()
ตอนที่ 21 PHP & PDO : การ Update และนับแถวที่มีการเปลี่ยนแปลง rowCount()


ธมนวรรณ มณีจันทร์

ธมนวรรณ มณีจันทร์

|:- เราเชื่อมั่นว่าการเสียสละและการแบ่งปันจะทำให้โลกใบนี้สวยงามมากขึ้น ทุกๆ จุดเริ่มต้นของการเรียนรู้ นำไปสู่การเรียนรู้ถัดไป เว็บไซต์แห่งนี้ขอเป็นส่วนหนึ่งของการแบ่งปันความรู้ที่ไม่มีที่สิ้นสุด มาร่วมกันผลักดันโลกของเราให้หมุนไปพร้อมกับพลังแห่งความรักด้วยกันนะคะ :) >>> |:- About Me! -:|