บทที่ 4 PHP with Database Teerapong sangraksawong
PHP with Database Application DB DBMS
PHP มีความสามารถในการติดต่อกับฐานข้อมูลต่างๆ ๆ มากมาย เช่น dBase,Informix,Oracle และ Mysql เป็นต้น รวมทั้งการติดต่อผ่าน ODBC โดย MySQL นับเป็นระบบจัดการฐานข้อมูลที่ได้รับความนิยมเป็นอย่างสูงในปัจจุบัน เนื่องจากสามารถทำงานข้าม Platform ได้ ในการใช้ PHP ติดต่อกับระบบจัดการฐานข้อมูลนั้น จำเป็นต้องใช้คำสั่ง SQL ร่วมด้วย
การสร้างส่วนเชื่อมโยงฐานข้อมูล MySQL เป็นระบบจัดการฐานข้อมูลที่ประกอบด้วยระบบจัดการฐานข้อมูล และฐานข้อมูล ซึ่งเป็นโปรแกรมฟรีแวร์ขนาดเล็ก แต่มีความสามารถสูง สำหรับการติดต่อกับ MySQL ด้วย PHP นั้นมีฟังก์ชันในการติดต่อ ดังนี้ mysql_connect(hostname,username,password) โดย hostname คือ ชื่อของ host ที่ mysql กำลังทำงาน เช่น ชื่อเครื่องหรือหมายเลข IP Username คือ ชื่อผู้ใช้ที่กำหนดไว้ในการติดต่อกับฐานข้อมูล MySQL Password คือ รหัสผ่านที่ใช้ร่วมกับ username
การเรียกใช้ฐานข้อมูล MySQL คำสั่งใน MySQL ที่เรียกใช้ฐานข้อมูลมาใช้งานใน php คือ mysql_select_db(“ชื่อฐานข้อมูล”); เช่น mysql_select_db(“computer”);
การจัดการกับข้อมูลในฐานข้อมูล การเพิ่ม ลบ แก้ไข เรียกดูข้อมูลในฐานข้อมูล จะใช้คำสั่ง mysql_query() มีรูปแบบดังนี้ mysql_query(query); เช่น <? $query = “select * from part”; $result = mysql_query($query);
สรุป ก่อนที่เราจะทำการเรียกข้อมูลจากฐานข้อมูลได้นั้น ต้องใช้คำสั่งตามขั้นตอนดังนี้ สร้างส่วนเชื่อมโยงฐานข้อมูล (mysql_connect) เรียกใช้ฐานข้อมูล (mysql_select_db) จัดการกับข้อมูลในฐานข้อมูล(mysql_query)
ผลลัพธ์จากการเรียกข้อมูลจากฐานข้อมูล subid subname subunit s01 computer 3 s02 logic s03 Internet 2 s04 programming ผลจากการเรียกข้อมูลจากฐานข้อมูล จะอยู่ในรูปแบบ array หรือ ชุดข้อมูลดังตัวอย่าง โดยจะมีข้อมูลอยู่จำนวนกี่คอลัมน์ หรือ กี่แถวนั้น ขึ้นอยู่กับเงื่อนไขในการเรียกข้อมูลจากคำสั่ง mysql_query เช่น $result = mysql_query(select * from subject)
การนับจำนวนแถว subid subname subunit s01 computer 3 s02 logic s03 Internet 2 s04 programming หลังจากที่เราได้ผลจากการเรียกข้อมูลมาจากฐานข้อมูลนั้น หากเราอยากรู้ว่าข้อมูลที่เราเรียกมานั้น มีจำนวนกี่แถว เราสามารถใช้คำสั่ง mysql_num_rows ได้ เช่น $numrows = mysql_num_rows($result); echo $rows; // แสดงผลลัพธ์ จากการนับจำนวนแถว
การแสดงผลข้อมูล subid subname subunit s01 computer 3 s02 logic s03 Internet 2 s04 programming การนำข้อมูลมาแสดงผล สามารถใช้คำสั่ง mysql_fetch_array เพื่อดึงข้อมูลในแถวที่ชี้อยู่ (เริ่มจากแถวแรก) มาเก็บไว้ที่ array (เราสามารถสร้างตัวแปรมาเก็บได้) แล้วจึงค่อยนำไปแสดงผล เช่น $row = mysql_fetch_array($result);
การแสดงผลข้อมูล s01 computer 3 1 2 ผลจากคำสั่ง mysql_fetch_array ส่งผลให้ตัวแปร $row เก็บข้อมูล array ดังตัวอย่างข้างบน เมื่อเราต้องการแสดงผลข้อมูล เราก็สามารถแสดงผลได้โดยผ่านตัวแปร $row แต่ต้องระบุ ลำดับของข้อมูลด้วย เนื่องจาก ตัวแปร $row เก็บข้อมูลชนิด array อยู่ เช่น echo $row[0]; -> s01 echo $row[2]; -> 2
การแสดงผลข้อมูล หรือเราจะระบุชื่อฟิลด์แทนก็ได้ เช่น s01 computer 3 1 2 หรือเราจะระบุชื่อฟิลด์แทนก็ได้ เช่น echo $row[“subid”]; -> s01 echo $row[“subname”]; -> 2
การแสดงผลข้อมูล subid subname subunit s01 computer 3 s02 logic s03 Internet 2 s04 programming เมื่อเสร็จสิ้นคำสั่ง mysql_fetch_array หนึ่งครั้ง ตัวชี้ข้อมูลก็จะชี้ข้อมูลแถวถัดไป หากเราใช้คำสั่ง mysql_fetch_array อีกครั้งหนึ่ง ข้อมูลที่ได้ ก็จะเป็นข้อมูลในแถวถัดไป
การวนรอบแสดงผล เราสามารถใช้คำสั่ง while เพื่อช่วยในการแสดงผลข้อมูลได้ เช่น while($row = mysql_fetch_array($result)) { echo $row[0].“<br>”; }