Top Banner
113
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Phptraining
Page 2: Phptraining

สารบัญ การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL

บทนํา บทท่ี 1 การใชงานโปรแกรม AppServ ทําความรูจักกับโปรแกรม AppServ 1 วิธีการติดตั้งโปรแกรม AppServ 2 วิธีการใชงาน AppServ 8 บทท่ี 2 การสรางและการใชงานฟอรมในการรับขอมูล การใชงานอ็อบเจ็คตของฟอรมชนิดตางๆ 9

บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP ทําความรูจักกับภาษา PHP 16 เริ่มตนเขียนโปรแกรมดวยภาษา PHP 17 การจัดการกับ HTML Form 20 ชนิดของขอมูล 22 Operators 26 การคํานวน 29 ประโยคคําสั่งแบบมีเงื่อนไข 32 การจัดการเกี่ยวกับวัน และเวลา 38 การสรางสวนเชื่อมโยงฐานขอมูล MySQL 40

บทท่ี 4 การใชงานฐานขอมูล MySQL

ทําความรูจักกับฐานขอมูล 42 คําศัพทพ้ืนฐาน 43 รูปแบบของฐานขอมูล 44 ความสัมพันธ 49 ประเภทของคีย 52 กฎที่ใชจัดเก็บขอมูลในฐานขอมูลเชิงสัมพันธ 52

Page 3: Phptraining

รูจักกับฐานขอมูล MySQL 54 คําสั่งที่ใชทํางานกับฐานขอมูล MySQL 55 สรุปคําสั่ง SQL 91 การใชโปรแกรมจัดการฐานขอมูลดวย PhpMyAdmin 96 บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่สําเร็จรูปในโปรแกรม Dreamweaver

การติดตอฐานขอมูล 105 การสรางระบบแสดงผลขอมูล 109 การสรางระบบเพิ่มขอมูล 112 การสรางระบบแกไขขอมูล 114 การสรางระบบลบขอมูล 120

สารบัญ(ตอ) การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL

Page 4: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

บทนํา

ปจจุบันระบบคอมพิวเตอรไดเขามามีบทบาทอยางมากตอหนวยงาน หรือองคกรตางๆ ไมวาจะเปน

ภาครัฐหรือภาคเอกชน เพราะระบบคอมพวิเตอรเขามาชวยในการบริหารจัดการขอมลูตางๆ ของหนวยงาน หรือองคกร ซ่ึงในปจจุบันมีขอมลูมีจํานวนมาก และการจดัการขอมูลตางๆ ยังไมเปนระบบมากนัก ทําใหเปนการยากตอการประมวลผลและการสืบคนขอมูล ระบบคอมพิวเตอรจึงเขามาชวยในการเพิ่มความสะดวกรวดเร็ว และงายตอการบรหิารจัดการขอมูล ไมวาจะเปนขอมูลบุคลากร ขอมูลเอกสาร หนังสือราชการ และขอมูลสารสนเทศอ่ืนๆ ดังนั้นการพัฒนาความรูความสามารถในการเขียนโปรแกรมคอมพิวเตอรสําหรับบุคลากรในหนวยงาน จึงเปนสิ่งสําคัญ เพราะสามารถนําความรูที่ไดรับไปสรางหรือพัฒนาโปรแกรมในการบรหิารจัดการขอมูลตางๆไดอยางทันสมัยและเปนระบบ เพื่อเพิ่มความสะดวกรวดเร็วในการจัดเก็บ สืบคน ประมวลผลขอมูล และเพิ่มประสิทธิภาพในการทํางาน ใหเกิดประโยชนสูงสุดตอหนวยงาน

Page 5: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

ทําความรูจักกับโปรแกรม AppServ AppServ คือโปรแกรมที่รวบรวมเอา Open Source Software หลายๆ อยางมารวมกนัโดยมี Package

หลักดังนี ้- Apache - PHP - MySQL - PhpMyAdmin โปรแกรมตางๆ ที่นํามารวบรวมไวทั้งหมดนี้ ไดทําการดาวนโหลดจาก Official Release ทั้งสิ้น โดยตวั

AppServ จึงใหความสําคัญวาทุกสิ่งทุกอยางจะตองใหเหมือนกับตนฉบับ จึงไมไดตดัทอนหรือเพิม่เติมอะไรที่แปลกไปกวา Official Release แตอยางใด เพียงแตมีบางสวนเทานัน้ทีไ่ดเพิ่มประสิทธิภาพการติดตัง้ใหสอดคลองกับการทํางานแตละคน โดยทีก่ารเพิ่มประสิทธิภาพนี้ไมไดไปยุง ในสวนของ Original Package เลยแมแตนอยเพยีงแตเปนการกาํหนดคา Config เทานั้น เชน Apache ก็จะเปนในสวนของ httpd.conf, PHP ก็จะเปนในสวนของ php.ini, MySQL ก็จะเปนในสวนของ my.ini ดังนั้นจึงรับประกันไดวาโปรแกรม AppServ สามารถทํางานและความเสถียรของระบบ ไดเหมอืนกับ Official Release ทั้งหมด

จุดประสงคหลักของการรวมรวบ Open Source Software เหลานี้เพื่อทาํใหการตดิตั้งโปรแกรมตางๆ ที่ไดกลาวมาใหงายขึ้น เพื่อลดขั้นตอนการตดิตั้งที่แสนจะยุงยากและใชเวลานาน โดยผูใชงานเพยีงดับเบิ้ลคลิก Setup ภายในเวลา 1 นาที ทกุอยางก็ตดิตั้งเสร็จสมบูรณระบบตางๆ ก็พรอมที่จะทํางานไดทันทีทั้ง Web Server, Database Server เหตุผลนี้จึงเปนเหตุผลหลักที่หลายๆ คนทั่วโลก ไดเลือกใชโปรแกรม AppServ แทนการที่จะตองมาติดตัง้โปรแกรมตางๆ ที่ละสวน

1 บทที่ การใชงานโปรแกรม AppServ

Page 6: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

2บทท่ี 1 การใชงานโปรแกรม AppServ วิธีการติดตั้งโปรแกรม AppServ

เตรียมโปรแกรมเพื่อติดตัง้ ดาวนโหลดโปรแกรม AppServ จากเว็บไซต http://www.appservnetwork.com/ โดยเลือกเวอรช่ันที่

ตองการติดตั้งระหวางเวอรช่ัน 2.4.x และ 2.5.x โดยความแตกตางของ 2 เวอรช่ันนี้คือ 2.4.x คือเวอรช่ันที่นํา Package ที่มีความเสถียรเปนหลัก เหมาะสําหรับผูที่ตองการความมั่นคงของ

ระบบโดยไมไดมุงเนนทีจ่ะใชฟงกช่ันใหม 2.5.x คือเวอรช่ันที่นํา Package ใหมๆ นํามาใชงานโดยเฉพาะ เหมาะสําหรับนักพัฒนาที่ตองการระบบ

ใหมๆหรือตองการทดสอบ ทดลองใชงานฟงกช่ันใหม ซ่ึงอาจจะไมไดความเสถียรของระบบได 100% เนื่องจากวา Package จากนักพัฒนานั้น ยังอยูในชวงของขั้นทดสอบ ทดลองเพื่อหาขอผิดพลาดอยู ขั้นตอนการตดิตัง้ AppServ

1. ดับเบิ้ลคลิกไฟล appserv-win32-x.x.x.exe เพื่อทําการติดตั้ง จะปรากฏหนาจอตามรปู

Page 7: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

3บทท่ี 1 การใชงานโปรแกรม AppServ

2. เขาสูขั้นตอนเงื่อนไขการใชงานโปรแกรม โดยโปรแกรม AppServ ไดแจกจายในรปูแบบ GNU License หากผูติดตั้งอานเงื่อนไขตางๆ เสร็จสิ้นแลว หากยอมรับเงื่อนไขใหกด Next เพื่อเขาสูการติดตั้งในขั้นตอไป แตหากวาไมยอมรับเงือ่นไขใหกด Cancel เพื่อออกจากการติดตั้งโปรแกรม AppServ ดังรูป

3. เขาสูขั้นตอนการเลือกปลายทางที่ตองการติดตั้ง โดยคาเริ่มตนปลายทางที่ติดตั้งจะเปน C:\AppServ หากตองการเปลี่ยนปลายทางที่ติดตั้ง ใหกด Browse แลวเลือกปลายทางที่ตองการ ตามรูปเมื่อเลือกปลายทางเสร็จสิ้นใหกดปุม Next เพื่อเขาสูขั้นตอนการติดตั้งขั้นตอไป

Page 8: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

4บทท่ี 1 การใชงานโปรแกรม AppServ

4. เลือก Package Components ที่ตองการติดตัง้ โดยคาเริ่มตนนั้นจะใหเลือกลงทุก Package แตหากวาผูใชงานตองการเลือกลงเฉพาะบาง Package ก็สามารถเลือกตามขอที่ตองการออก โดยรายละเอยีดแตละ Package มีดังนี้

- Apache HTTP Server คือ โปรแกรมที่ทําหนาเปน Web Server - MySQL Database คือ โปรแกรมที่ทําหนาเปน Database Server

- PHP Hypertext Preprocessor คือ โปรแกรมที่ทําหนาประมวลผลการทํางานของภาษา PHP - PhpMyAdmin คือ โปรแกรมที่ใชในการบริหารจดัการฐานขอมลู MySQL ผานเว็บไซต เมื่อทําการเลือก Package ตามรูป เรียบรอยแลว ใหกด Next เพื่อเขาสูขั้นตอนการติดตั้งตอไป

Page 9: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

5บทท่ี 1 การใชงานโปรแกรม AppServ

5. กําหนดคาคอนฟกของ Apache Web Server มีอยูดวยกันทั้งหมด 3 สวน ตามรูป คือ Server Name คือชองสําหรับปอนขอมูลช่ือ Web Server ของทานเชน

localhost Admin Email คือชองสําหรับปอนขอมูล อีเมลผูดูแลระบบ เชน root@localhost HTTP Port คือชองสําหรับระบุ Port ที่จะเรียกใชงาน Apache Web Server โดยทัว่ไปแลว ProtocolHTTP นั้นจะมีคาหลักคือ 80 หากวาทาน

ตองการหลีกเลี่ยงการใช Port 80 ก็สามารถแกไขไดหากมีการ เปลี่ยนแปลง Port การเขาใชงาน Web Server แลว ทุกครั้งที่เรียกใช งานเว็บไซตจําเปนที่ตองระบุหมายเลข Port ดวย เชน หากเลือกใช Port 99 ในการเขาเว็บไซตทุกครั้งตองใช http://localhost:99/ จึงจะสามารถเขาใชงานได

Page 10: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

6บทท่ี 1 การใชงานโปรแกรม AppServ

6. กําหนดคาคอนฟกของ MySQL Database มีอยูดวยกนัทัง้หมด 3 สวน ตามรูป คือ Root Password คือชองสําหรับปอน รหสัผานการเขาใชงานฐานขอมลูของ Root หรือผูดูแลระบบทุกครั้งที่เขาใชงานฐานขอมูลในลักษณะที่เปน

ผูดูแลระบบ ใหระบุ user คือ root Character Sets ใชในการกาํหนดคาระบบภาษาทีใ่ชในการจัดเก็บฐานขอมูล,

เรียงลําดับฐานขอมูล,Import ฐานขอมูล, Export ฐานขอมูล, ติดตอฐานขอมูล

Old Password หากทานมีปญหาเกี่ยวกับการใชงาน PHP กับ MySQL API เวอร ช่ันเกาโดยเจอ Error Client does not support authentication protocol requested by server; consider upgrading MySQL clientใหเลือกในสวนของ Old Password เพื่อหลีกเลี่ยงปญหานี ้

Enable InnoDB หากทานตองการใชงานฐานขอมูลในรูปแบบ InnoDB ใหเลือก ในสวนนี้ดวย

Page 11: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

7บทท่ี 1 การใชงานโปรแกรม AppServ

7. ส้ินสุดขั้นตอนการติดตั้งโปรแกรม AppServ สําหรับขั้นตอนสุดทายนี้จะมใีหเลือกวาตองการสั่งใหมีการรัน Apache และ MySQL ทันทีหรือไม จากนั้นกดปุม Finish เพื่อเสร็จสิ้นการติดตั้งโปรแกรม AppServ

Page 12: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

8บทท่ี 1 การใชงานโปรแกรม AppServ วิธีการใชงาน AppServ

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

โปรแกรมภาษา PHP หรือจัดทําเว็บไซตไดทันที โดยขอมลูตางๆ ที่ทําขึ้นนั้นจะตองเกบ็ลงใน C:/AppServ/www เชน หากทําโปรแกรมชื่อวา test.php หลังจากเขียนโปรแกรมเสร็จแลวตองการเริ่มตนทดสอบรันโปรแกรม ใหทําการเปด Browser ขึ้นมา แลวเรียกตรงไปที่ช่ือไฟลโปรแกรมที่สรางขึ้น เชน http://localhost/test.php ดังรูป

Page 13: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

การใชงานอ็อบเจ็คตของฟอรมชนิดตางๆ

อ็อบเจ็คต คือสวนของฟอรมที่ใชในการรับขอมูลจากผูใช กอนที่จะแทรกอ็อบเจ็คตลงบนเว็บเพจ ตองมีการสรางหรือแทรกฟอรมลงในเว็บเพจกอนเสมอ หากมีการแทรกอ็อบเจ็คตลงในสวนที่ไมมฟีอรม Dreamweaver จะถามโดยปรากฏไดอะล็อก “Add form tags?” ใหเลือก Yes เพื่อให Dreamweaver สรางแท็กฟอรมสําหรับอ็อบเจ็คตนั้น

บทที่ การสรางและการใชงานฟอรมในการรับขอมูล 2

Page 14: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

10บทท่ี 2 การสรางและการใชงานฟอรมในการรับขอมูล การใชงานอ็อบเจ็คต Text Field

ตัวอยาง

อ็อบเจ็คตชนิด Text Field จะมีหนาทีใ่นการรับคาขอมูล เพื่อใชในการจัดเก็บขอมูลหรือสงคาบางอยางที่ตองการคนหา เชน ใชในการคนหาขอมูล (Search Engine) เปนตน

วิธีการสราง Text Field ทําไดโดยการคลิกเมนู Insert > Form > Text Field เสร็จแลวใหกําหนดคุณสมบัติของ Text Field โดยใหคลิกเลือกที่ Text Field ในเว็บเพจ หลังจากนัน้ใหไปที่เมนู Window > Properties จะปรากฏคุณสมบัติของ Text Field แสดงในไดอะล็อก Properties

คุณสมบัติของอ็อบเจ็คต Text Field • TextField กําหนดชื่อของออ็บเจ็คต Text Field • Char Width กําหนดความกวางของ Text Field • Max Chars กําหนดจํานวนตัวอักษรสูงสดุที่กรอกขอมลูไดของ Text Field • Type กําหนดชนิดของ Text Field มี 3 ลักษณะ คือ • Single Line กําหนดใหแสดงเปนแบบบรรทัด (Textarea) • Multi Line กาํหนดใหแสดงเปนแบบหลายบรรทัด • Password กําหนดใหแสดงแบบรหัสผาน • Init Val กําหนดคาเริ่มตน

Page 15: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

11บทท่ี 2 การสรางและการใชงานฟอรมในการรับขอมูล การใชงานอ็อบเจ็คต Textarea

ตัวอยาง

อ็อบเจ็คตชนิด Textarea จะมีหนาที่ในการรับคาขอมูลที่มีขนาดใหญ เชน ที่อยู เปนตน วิธีการสราง Text Field ทําไดโดยการคลิกเมนู Insert > Form > Textarea เสร็จแลวใหกําหนด

คุณสมบัติของ Textarea โดยใหคลิกเลือกที่ Textarea ในเว็บเพจ หลังจากนั้นใหไปที่เมนู Window > Properties จะปรากฏคุณสมบัติของ Textarea แสดงในไดอะล็อก Properties

คุณสมบัติของอ็อบเจ็คต Textarea:

• TextField กําหนดชื่อของออ็บเจ็คต Textarea • Char Width กําหนดความกวางของ Textarea • Max Chars กําหนดจํานวนตัวอักษรสูงสดุที่กรอกขอมลูไดของ Textarea • Type กําหนดชนิดของ Textarea คือ Multi Line • Init Val กําหนดคาเริ่มตน

การใชงานอ็อบเจ็คต Button

ตัวอยาง

อ็อบเจ็คตชนิด Button มักถูกนํามาใชเพื่อทาํหนาที่ในการยืนยนัการเพิ่มขอมูล แกไขขอมูล การลบขอมูล หรือยกเลิกการใชงาน

Page 16: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

12บทท่ี 2 การสรางและการใชงานฟอรมในการรับขอมูล วิธีการสราง Button ทําไดโดยการคลิกเมนู Insert > Form > Button เสร็จแลวใหกาํหนดคณุสมบัติ

ของ Button โดยใหคลิกเลือกที่ Button ในเว็บเพจ หลังจากนั้นใหไปที่เมนู Window > Properties จะปรากฏคุณสมบัติของ Button แสดงในไดอะล็อก Properties

คุณสมบัติของอ็อบเจ็คต Button: • Button name กําหนดชื่อของอ็อบเจ็คต Button • Label กําหนดขอความที่จะแสดงบนปุม Button • Action กําหนดชนิดของ Action มี 3 ลักษณะ คือ

o Submit Form กําหนดใหใชสําหรับสงฟอรมไปประมวลผล o Reset Form กําหนดใหใชสําหรับยกเลิกการกรอกขอมลูในฟอรม o None กําหนดใหเปนปุมทีค่ลิกแลวไมทํางานใดๆ

การใชงานอ็อบเจ็คต Check Box

ตัวอยาง

อ็อบเจ็คตชนิด Check Box ทําหนาที่เพื่อแสดงตัวเลือกใหผูใชไดเลือกตวัเลือกที่กําหนดให ซ่ึงสามารถเลือกไดมากกวา 1 ตัวเลือก

วิธีการสราง Check Box ทําไดโดยการคลิกเมนู Insert > Form > Check Box เสร็จแลวใหกําหนดคุณสมบัติของ Check Box โดยใหคลิกเลือกที่ Check Box ในเว็บเพจ หลังจากนั้นใหไปที่เมนู Window > Properties จะปรากฏคุณสมบัติของ Check Box แสดงในไดอะล็อก Properties

Page 17: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

13บทท่ี 2 การสรางและการใชงานฟอรมในการรับขอมูล

คุณสมบัติของอ็อบเจ็คต Check Box • CheckBox กําหนดชื่อของอ็อบเจ็คต Check Box • Checked Value กําหนดคาให Check Box • Initial State กําหนดสถานะเริ่มตนเมื่อแสดงบนเว็บเพจ มี 2 ลักษณะ คือ

o Checked กําหนดใหเร่ิมตนโดยใหสถานะเปนถูกเลือกไว o Unchecked กําหนดใหเร่ิมตนโดยสถานะไมใหถูกเลือก

การใชงานอ็อบเจ็คต Radio Button

ตัวอยาง

อ็อบเจ็คตชนิด Radio Button ทําหนาที่เพื่อแสดงตัวเลือกใหผูใชไดเลือกตัวเลือกทีก่ําหนดให ซ่ึงสามารถเลือกไดเพยีง 1 ตัวเลือกเทานั้น เชน การเลือกระบุเพศ ชาย หรือ หญิง จะเปนการเลือกเพศใดเพศหนึ่งเพียงเพศเดยีวเทานั้น

วิธีการสราง Radio Button ทําไดโดยการคลิกเมนู Insert > Form > Radio Button เสร็จแลวใหกําหนดคุณสมบัติของ Radio Button โดยใหคลิกเลือกที่ Radio Button ในเว็บเพจ หลังจากนั้นใหไปที่เมนู Window > Properties จะปรากฏคุณสมบัติของ Radio Button แสดงในไดอะล็อก Properties

คุณสมบัติของอ็อบเจ็คต Radio Button • RadioButton กําหนดชื่อของอ็อบเจ็คต Radio Button หากเปนการเลือกอยางใดอยางหนึ่ง

จากตัวเลือกตัง้แต 2 ตัวขึ้นไป จะตองกําหนดชื่อของ Radio Button ทุกตัวใหช่ือเหมือนกัน มิฉะนั้น การทํางานของ Radio Button จะไมถูกตอง

• Checked Value กําหนดคาให Radio Button • Initial State กําหนดสถานะเริ่มตนเมื่อแสดงบนเว็บเพจ มี 2 ลักษณะ คือ • Checked กําหนดใหเร่ิมตนโดยใหสถานะเปนถูกเลือกไว • Unchecked กําหนดใหเร่ิมตนโดยสถานะไมใหถูกเลือก

Page 18: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

14บทท่ี 2 การสรางและการใชงานฟอรมในการรับขอมูล

การใชงานอ็อบเจ็คต List/Menu ตัวอยาง

อ็อบเจ็คตชนิด List/Menu ทําหนาที่เพื่อกําหนดคาโดยทีใ่ชไมตองพิมพตัวเลือกที่ตองการลงไป เพยีงแคคลิกเลือกรายการตางๆ ทีไ่ดกําหนดไวใหแลวเทานั้น สามารถเลือกไดเพยีง 1 ตัวเทานั้น

วิธีการสราง List/Menu ทําไดโดยการคลิกเมนู Insert > Form > List/Menu เสร็จแลวใหกําหนดคุณสมบัติของ List/Menu โดยใหคลิกเลือกที่ List/Menu ในเว็บเพจ หลังจากนัน้ใหไปที่เมนู Window > Properties จะปรากฏคุณสมบัติของ List/Menu แสดงในไดอะล็อก Properties

คุณสมบัติของอ็อบเจ็คต List/Menu • List/Menu กําหนดชื่อของอ็อบเจ็คต List/Menu • Type เลือกการทํางานเปนแบบ Menu หรือ List • Initially Selected แสดงคาตัวเลือกที่กําหนดมาจาก List Values

การใชงานอ็อบเจ็คต File Field

ตัวอยาง

อ็อบเจ็คตชนิด File Field นี้ ทําหนาที่ในการแสดงรายชือ่ไฟลตางๆ เพื่อใหผูใชเว็บไซตสามารถเลือกไฟลเหลานั้นขึน้มาใชงาน เชน การอัปโหลดไฟล เปนตน

วิธีการสราง File Field ทําไดโดยการคลิกเมนู Insert > Form > File Field เสร็จแลวใหกําหนดคุณสมบัติของ File Field โดยใหคลิกเลือกที่ File Field ในเว็บเพจ หลังจากนัน้ใหไปที่เมนู Window > Properties จะปรากฏคุณสมบัติของ File Field แสดงในไดอะล็อก Properties

Page 19: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

15บทท่ี 2 การสรางและการใชงานฟอรมในการรับขอมูล

คุณสมบัติของอ็อบเจ็คต File Field • FileField กาํหนดชื่อของอ็อบเจ็คต File Field • Char Width กําหนดความกวางของ File Field • Max Chars กําหนดจํานวนตัวอักษรสูงสดุ

การใชงานอ็อบเจ็คต Hidden Field

อ็อบเจ็คตชนิด Hidden Field นี้ จะทํางานในลักษณะลองหน กลาวคือ มีจุดประสงคเพื่อใชในการประมวลผลขอมูล ที่ไดรับจากการใชงานฟอรมตางๆ ซ่ึงฟลดแบบ Hidden Field นี้ จะไมมกีารติดตอส่ือสารกับผูใชงานฟอรม แตอยางใด รวมทั้งไมมีการแสดงผลบนหนาเว็บเพจดวย

วิธีการสราง Hidden Field ทําไดโดยการคลิกเมนู Insert > Form > Hidden Field เสร็จแลวใหกําหนดคุณสมบัติของ Hidden Field โดยใหคลิกเลือกที่ Hidden Field ในเว็บเพจ หลังจากนั้นใหไปที่เมนู Window > Properties จะปรากฏคุณสมบัติของ Hidden Field แสดงในไดอะล็อก Hidden Field

คุณสมบัติของอ็อบเจ็คต Hidden Field • HiddenField กําหนดชื่อของอ็อบเจ็คต Hidden Field • Value กําหนดคาเริ่มตนสําหรับ Hidden Field

Page 20: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

ทําความรูจักกับภาษา PHP ภาษา PHP ถูกสรางขึ้นในป ค.ศ. 1994 โดย Rasmus Lerdorf ตอมา มีผูใหความสนใจเปนจํานวนมากจึงไดออกเปนแพ็คเกจ “Personal Home Page” ซ่ึงเปนที่มาของ PHP เปน Server Side Script และเปน Open Source ที่ผูใชสามารถดาวนโหลด และโปรแกรมไดฟรี ภาษา PHP จะทํางานรวมกับเอกสาร HTML โดยการแทรกโคดระหวาง Tag HTML และสรางไฟลที่มีนามสกุลเปน .php .php3 หรือ .php4 ซ่ึงไวยากรณทีใ่ชในภาษา PHP เปนการนํารูปแบบของภาษาตางๆ มารวมกันไดแก C, Perl และ Java ท่ําใหผูที่มีพื้นฐานของภาษาเหลานี้อยูแลวสามารถศึกษา และใชงานภาษา PHP ไดไมยาก ความสามารถของภาษา PHP

• เปน Open Source • สามารถติดตั้งบน Win 32 หรือ Linux/Unix ก็ได • เขียนงายเพราะนําเอา Perl และ C มาพัฒนา ผูที่เขียน Perl หรือ C อยูแลวก็สามารถศึกษาไดงาย • ความสามารถพิเศษดานติดตอฐานขอมูล Database • มี Function สําเร็จรูปมาให จากที่เคยเขยีนคาํสั่งมากมายใน Perl, C • เปน Scripting language ที่สามารถแทรกเปน Script tag ตามจุดตางๆภายใน html tag ได

บทที่ การเขียนโปรแกรมดวยภาษา PHP 3

Page 21: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

17บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP เริ่มตนเขียนโปรแกรมดวยภาษา PHP เมื่อทําการติดตั้งชุดติดตั้งโปรแกรม PHP แอพพลิเคชั่นเซิรฟเวอรเรียบรอยแลว ไฟลของ PHP ที่สรางขึ้นจะตองเก็บไวที่ Root Directory เชน AppServ จะอยูที่ c:/AppServ/www/ การแทรก Script PHP ใน HTML

รูปแบบการใชคําสั่ง PHP จะแตกตางจาก CGI ตัวอ่ืนๆ เชน Perl หรือ C เพราะวา PHP ยอมใหเราสอดแทรก คําสั่งตางๆ ลงใน File html ไดเลย โดยสามารถแทรกเปนระยะๆได และแปลงนามสกุล File html จาก *.html เปน *.php รูปแบบการแทรกคําสั่งดังกลาวจะคลายคลึงกบั java script หรือ ASP ตัวอยางการแทรก script php เชน ผลลัพธที่ได เนื่องจาก PHP เปนภาษาที่พัฒนาภายหลังภาษาอืน่ๆ จึงพยายามเอาจุดเดนของแตละภาษามาพัฒนาปรับปรุงใชใน PHP ดังนั้น PHP จึงมีความยืดยุนสูงสามารถใชรูปแบบการแทรกคําสัง่ ไดหลายแบบ เชน

<HTML> <HEAD><TITLE>การทดสอบการแทรก script php</TITLE></HEAD> <BODY> <H1><? echo "This is test script PHP" ?></H1> </BODY> </HTML>

This is test script PHP

Page 22: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

18บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP จากตัวอยางการแทรก Script PHP ดวยรูปแบบตางๆขางตน จะเหน็ไดวาใชไดหลายรูปแบบดังนั้น ใครเคยใชรูปแบบใดมากอนก็เลือกใชในรูปแบบที่ตนถนัดไดเลย ทดสอบการเขียน PHP โปรแกรมแรก ที่นี้เรามาทดสอบการเขียน PHP โปรแกรมแรกกันขอใหดูจากตวัอยาง (ขอใชการแทรก script แบบ SGML Style ซ่ึงเปนที่นิยมกัน) ตัวอยางการเขยีน Script PHP การเขียน Script PHP แบบ C Programing และ Perl Programing

SGML Style <? echo ("This is the PHP Command\n"); ?> XML Style <?php echo("This is the PHP Command\n"); ?> Java Script Style <script language="php"> echo ("This is the PHP Command"\n); </script> ASP Style <% echo ("This is the PHP Command"\n); %>

<HTML> <HEAD><TITLE>การทดสอบการแทรก script php</TITLE></HEAD> <BODY>

Page 23: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

19บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP

ผลลัพธที่ได

จะเห็นไดวาใชคําสั่ง print ของ Perl หรือ echo ของ C ก็ใชได ดังนัน้ถาคุณถนัดเขยีนไมวาจะเปน Perl

หรือ C ก็สามารถเขียน PHP ไดอยางสบาย Comments

การเขียนโปรแกรมที่มีความยาวมาก มีขอมูลคําสั่งเปนพันๆบรรทัด Programmer ไมสามารถจําคําสั่งการทํางานของ Programe ไดทุกบรรทัด ดงันั้นจําเปนตองมีการ Comments เตือนความจําในบรรทัดที่ตองการ และยังเปนประโยชนสําหรับ Programmer คนอื่นที่จะเขามาแกไขดวย PHP มีไดรูปแบบการ Comments ไวใหเราเลือกใชตามความถนัดหลายรูปแบบ ผูใชสามารถเลือกเอาแบบที่ตนเองถนัดไดดังตอไปนี้ ตัวอยางการแทรก Comments

//By C style <? echo "<font color=red>CGI PHP is easy by C style </font><br>\n" ?> //By Perl style <? print "<font color=blue>CGI PHP is easy by Perl style</font>" ?> </BODY> </HTML>

CGI PHP is easy by C style CGI PHP is easy by C style

<? echo "Hi Hello Word"; // การ Comments แบบ C++ echo "Hi Hello Word"; /* การ Comments แบบ C */ echo "Hi Hello Word"; # การ Comments แบบ Perl ?>

Page 24: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

20บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP การจัดการกับ HTML Form

จากที่ผานมาเราไดทดสอบเขยีน PHP กันแลว แตเขียนในรูปของ ภาษา PHP อยางเดยีว ยังมิไดเขียนรวมกับ HTML Form ซ่ึงนับวาเปนหัวใจสาํคัญของ CGI (Command Gate Way Interface) กอนเริ่มเขียน ขอแนะนําใหผูที่ยังไมเคยเขียนหรือไมเขาใจเกี่ยวคําสั่ง Form ของ html ตองกลับไปทบทวนเขยีนใหคลองเสียกอน เพราะถือวา Form เปนประตูดานแรกที่จะนําเราเขาสู CGI (Command Gate Way Interface) และเชือ่มตอ PHP เรามาเริ่มกันเลย

ตัวอยาง file html order.html

<html> <head><title>ShoppingForm สั่งซื้อสินคา</title> </head> <body> <center><h1>Form สั่งซื้อสินคา</h1><center> <form method="POST" action="order.php"> Name <input type="text" name="name"><br> Email<input type="text" name="email"><p> ตองการสั่งซื้อหนังสือ <input type="checkbox" name="book1" value="Database On Web">Database On Web<br> <input type="checkbox" name="book2" value="CGI PHP">CGI PHP<br> <input type="submit" value="Order Now"><input type="reset" value="Reset"> </form> </body> </html>

Page 25: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

21บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP

ตัวอยาง file php order.php

ทดลอง Run

<html> <head><title>Form สั่งซื้อสินคา</title> </head> <? print "คุณ $name <br> "; print "Email $email <br>"; print "สินคาที่คุณตองการสั่ง <br>"; print "$book1<br>"; print "$book2<br>"; ?> </body> </html>

Page 26: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

22บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP

ผลลัพธ

คําอธิบาย ใน file order.html เราไดกําหนดตวัแปรไว ดังนี้

$name = ช่ือผูส่ังสินคา $email = email ของผูส่ังสินคา $book1= สินคาหนังสือ Database On Web $book2= สินคาหนังสือ CGI PHP

ใน file order.php ไดกําหนดตัวแปรเชนเดียวกับ order.html

เมื่อ order.html สงตัวแปรทั้งหมดที่ถูกเลือกและถูกใสขอมูลลงไป จากนั้น order.php ก็จะรับคาตวัแปร และแสดงผลออกทางจอภาพ

ชนิดของขอมูล ในการพัฒนาโปรแกรม ขอมูลมีสวนเกีย่วของเปนอยางมาก และในขณะเดียวกนัขอมูลก็มีมากมายหลายประเภท การจัดจําพวกของขอมูลใหอยูในชนิดเดียวกันจะทําใหสะดวกแกการใชงาน PHP ก็เชนกันไดจัดแบงชนิดของขอมูลไวดังนี้ ชนิดของขอมูล PHP

• integer • floating-point numbers • string • array • object

Page 27: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

23บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP

1. Integer จํานวนเต็ม ตัวอยาง Integer ไดแก

$a = 1234; # decimal number $a = -123; # a negative number $a = 0123; # octal number (equivalent to 83 decimal) $a = 0x12; # hexadecimal number (equivalent to 18 decimal)

2. floating-point numbers เลขทศนิยม

ตัวอยาง floating-point numbers ไดแก $a = 1.234;

$a = 1.2e3; 3. String ตวัอักษร

ตัวอักษร กลุมคําหรือชุดตัวอักษร ใน PHP เราจะใชเครื่องหมายฟนหนู (") ครอมไวหัวทายของชุดตัวอักษร ในลักษณะเดียวกับ Perl และ C และใชเครือ่งหมาย backslash (\) เปนตวัควบคุม ตวัอยาง ไดแก

\n หมายถึง newline \r หมายถึง carriage \t หมายถึง horizontal tab \\ หมายถึง backslash \$ หมายถึง dollar sign \" หมายถึง double-quote

4. Array ชุดของขอมูล เปนการเกบ็ขอมูลเปนชุด เปนแถว หรือกลุมของขอมูล เชน เดือนก็ จะประกอบไปดวย มกราคม กุมภาพนัธ มีนาคม .... เปนตน PHP ไดแบบ Array เปน 2 แบบคือ

แบบมิติเดียว เชน

$day[1]="Monday"; $day[2]="Tuesday";

Page 28: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

24บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP $day[3]="Wednesday"; $day[4]="Thursday"; $day[5]="Friday"; $day[6]="Saturday"; $day[7]="Sunday";

ตัวอยาง Array มิติเดียว

ใหแสดงผลของตัวแปร $day[1] และ $day[2] และ $day[3] โดยเวนบรรทัด

ผลลัพธ ท่ีได

แบบหลายมิติ เชน $a[0][0]=5; $a[0][1]=3

$day[1]="Monday"; $day[2]="Tuesday"; $day[3]="Wednesday"; $day[4]="Thursday"; $day[5]="Friday"; $day[6]="Saturday"; $day[7]="Sunday"; echo "$day[1] <br>"; echo "$day[2] <br>"; echo "$day[3] <br>";

Monday Tuesday Wednesday

Page 29: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

25บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP

ตัวอยาง Array หลายมิต ิ

ใหแสดงผล output ของรถยนตยี่หอ toyota และรุนออกมา ผลลัพธท่ีได

ถาเราเปลี่ยนจาก echo $a["toyota"]["type"]; เปน echo $a["toyota"]["color"];

<? $a = array( "toyota" => array( "color" => "red", "type" => "colora" ), "nissan" => array( "color" => "orange", "type" => "sunny" ), "masda" => array( "color" => "yellow", "type" => "323" ) ); echo $a["toyota"]["type"]; # will output "colola" ?>

colora

Page 30: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

26บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP

ก็จะไดผลลัพท

5. Object วัตถุ เชน ผลลัพธท่ีได

Operators PHP สามารถใช Operator รวมในการพัฒนาโปรแกรมได คุณสมบัติและการใชงาน Operator จะ

แตกตางกันตามชนิดของ Operator โดย PHP ไดจัดแบง Operator ไวดงันี้ ชนิดของ Operator

• Arithmetic Operators • String Operators • Assignment Operators

red

class foo { function do_foo () { echo "Doing foo."; } } $bar = new foo; $bar -> do_foo ();

Doing foo

Page 31: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

27บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP • Bitwise Operators • Logical Operators • Comparison Operators • Operator Precedence

1. Arithmetic Operators การคํานวน

เกี่ยวกับการคํานวนใน PHP ไดกําหนดเครือ่งหมายตางๆแทนสัญลักษณการคํานวนดังนี ้

ตัวอยาง ช่ือ Operator ความหมาย $a + $b การบวก ผลบวกระหวาง $a กับ $b $a - $b การลบ ผลลบของ $a ลบ $b $a * $b การคูณ ผลคูณระหวาง $a กับ $b $a / $b การหาร ผลหารของ $a หาร $b $a %$b Modulus ผลหารของ $a หาร $b โดยปดเปนจํานวนเต็ม

2. String Operators เกี่ยวกับตวัอักษรก็เชนกัน PHPไดกําหนดไวดังนี้

ผลลัพธ string ไมสามารถนํามาคูณหรือคํานวนกนัได แต PHP ไดแปลงสภาพให string

คํานวนไดในความหมายของการนําขอความมาเรียงตอกนั ("."คือการนาํขอความมาตอกัน) จึงไดคําวา Hello World! เพราะการกระทําของ $a ."Word" จึงไดขอความตอกัน (มไิชการคูณดวยตัวอักษร)

$a = "Hello "; $b = $a . "World!"; // now $b = "Hello World!"

Page 32: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

28บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP

3. Assignment Operators PHP สามารถกําหนดคา Assignment หรือเปลี่ยนแปลงคาใหกับตัวแปรได โดยใช Assignment Operator ตามตัวอยางตอไปนี้ 4. Bitwise Operatorst

การเปรียบเทียบและการคํานวนตวัเลขในระดับบติ

Operator Name $a & $b And $a | $b Or ~$a Not $a << $b Shift left $a >> $b Shift right

5. Logical Operators

การเปรียบเทียบเพื่อสรางเงื่อนไขสําหรับตัวแปร 2 ตัว

Operator Name $a and $b And $a or $b Or !$a Not $a && $b And $a || $b Or

$a = 1 $a += 1; // มีคาเหมือนกับ $a=$a + 1; ผลลัพธ = 2 $a --; // มีคาเหมือนกับ $a=$a - 1; ผลลัพธ = 0 $a *=2; // มีคาเหมือนกับ $a=$a * 2; ผลลัพธ = 2 $a /=2; // มีคาเหมือนกับ $a=$a / 2; ผลลัพธ = 0.5

Page 33: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

29บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP

6. Comparison Operators การเปรียบเทียบตวัเลข หรือตัวแปร 2 ตัว

Operator Name $a == $b Equal $a != $b Not equal $a < $b Less than $a > $b Greater than $a <= $b Less than or equal to $a >= $b Greater than or equal to

การคํานวน สําหรับการคํานวนแลว PHP ไดเตรียม Operator ที่ใชงานเกี่ยวกับการคํานวนมาใหแลว คือ Arithmetic Operators ดังไดกลาวไปแลว ทีนี้เราจะมาทดสอบการเขียนโปรแกรม PHP สําหรับการคํานวนกนั อันแรกคือ การบวก การบวก ตัวอยางการบวก

<HTML> <HEAD><TITLE>ตัวอยางการคํานวน</TITLE></HEAD> <BODY> <? $a=30; $b=10; $c=$a + $b; echo "<H1>$c</H1>"; ?> </BODY> </HTML>

Page 34: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

30บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP ผลลัพธท่ีได

30 การลบ ตัวอยางการลบ ผลลัพธท่ีได

20 การคูณ ตัวอยางการคูณ

<HTML> <HEAD><TITLE>ตัวอยางการคํานวน</TITLE></HEAD> <BODY> <? $a=30; $b=10; $c=$a - $b; echo "<H1>$c</H1>"; ?> </BODY> </HTML>

<HTML> <HEAD><TITLE>ตัวอยางการคํานวน</TITLE></HEAD> <BODY> <? $a=30; $b=10; $c=$a * $b; echo "<H1>$c</H1>"; ?> </BODY> </HTML>

Page 35: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

31บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP ผลลัพธท่ีได

300 การหาร ตัวอยางการหาร ผลลัพธท่ีได

3

<HTML> <HEAD><TITLE>ตัวอยางการคํานวน</TITLE></HEAD> <BODY> <? $a=30; $b=10; $c=$a / $b; echo "<H1>$c</H1>"; ?> </BODY>

Page 36: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

32บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP การคํานวนโดยใชเคร่ืองหมายวงเล็บ ตัวอยาง ผลลัพธท่ีได

15

ประโยคคําสั่งแบบมีเงื่อนไข จากบทที่ผานมาเราไดศึกษาถึง Operator การใชงาน Operator ตัวแปรชนิดของตัวแปรตางๆ ตลอดจนคําสั่งพื้นฐานการ Display หรือ Output Process ของ Program (echo หรือ print) มาในบทนี้เราจะนํา Control Structures มาควบคุม Operator ตัวแปร และ คําสั่ง ใหเปนไปตามความตองการที่เราไดออกแบบโปรแกรมไว สําหรับคนที่เคยเขียน Program ภาษาใดภาษาหนึ่งมาแลว จะสามารถเขาใจในบทเรียนนี้โดยงาย หลักการการควบคุม Control Structures นั้น โดยทัว่ไปทุกภาษาจะเหมือนกัน หรือที่เราเรียกวา Logic แตจะแตกตางกันที่ รายละเอียดของคาํสั่ง ดังนั้นถาจะศึกษาการเขียนโปรแกรมใหเขาใจงาย ขอใหอยาพยายามจาํคําสั่ง แตขอใหจําโครงสรางคําสั่งจะดีกวา เมื่อเราขยับไปศึกษาการเขยีนโปรแกรมอืน่ๆ ก็จะเขาใจไดโดยงาย

<HTML> <HEAD><TITLE>ตัวอยางการคํานวน</TITLE></HEAD> <BODY> <? $a=30; $b=10; $c=20; $d=($a * $b)/$c; echo "<H1>$d</H1>"; ?> </BODY> </HTML>

Page 37: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

33บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP คําสั่ง Control Structures แรกที่เราจะศกึษากันก็คือ IF ดงัตอไปนี ้ IF

คําสั่ง if เปนคาํสั่งสําหรับสรางเงื่อนไขการทํางานของโปรแกรมวา ถาเปนจริงก็จะใหทํางานงานหนึ่ง ถาเปนเท็จกจ็ะใหทาํงานอีกงานหนึ่ง ดังแผนภาพ

รูปแบบคําสัง่ if ( เหตุการณ Operator เหตุการณ ){งานที่จะตองทํา}

ตัวอยางคําสัง่

<? $a=500 if ( $a == 500 ){print"<h1>ตัวแปรตวันี้เทากับ 500</h1>";}

?> ผลลัพธ

ตัวแปรตวันี้เทากับ 500

Page 38: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

34บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP

IF ELSE เปนคําสั่ง if เหมือนเดิม แตเพิ่มสถานการณวา ถามีเหตกุารณเปนเท็จเกิดขึ้นจะใหทาํงานอะไร

ดังแผนภาพ

รูปแบบคําสัง่ if ( เหตุการณ Operator เหตุการณ ){งานที่จะตองทํา} else {งานที่จะตองทํา}

ตัวอยางคําสัง่

<? $a=600

if ( $a == 500 ) { print"<h1>ตัวแปรตัวนีเ้ทากบั 500</h1>"; } else { print"<h1>ตัวแปรตัวนีเ้ทากบัไมเทากับ500</h1>"; }

?> ผลลัพธ

ตัวแปรตวันี้ไมเทากับ 500

คําอธิบาย กําหนดให $a มีคาเทากับ 600 คําสั่งสรางเงื่อนไขวา ถา $a เทา 500 ใหพิมพคําวา "ตวัแปรตวันี้

เทากับ 500 ขนาดตัวอักษรเทากับ H1"

Page 39: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

35บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP ถาไมเทากับ 500 ใหพิมพคําวา "ตัวแปรตัวนี้ไมเทากับ 500 ขนาดตัวอักษรเทากับ H1"

ELSE IF คําสั่ง elseif เปนคําสั่งสําหรับสรางเงื่อนไขการทํางานของโปรแกรมวา ถาเหตุการณแรกเปนจริง ก็จะใหทํางานตามที่กําหนดไว แตถาไมเปนจริงใหเขาสูสถานการณที่ 2 ที่เตรียมไว ถาเปนจริงก็ใหทํางานตามที่กาํหนดแตถาไมเปนจริงกใ็หทาํงานตามที่กําหนดไวถัดไปใหดจูากภาพจะเขาใจมากยิ่งขึ้น

รูปแบบคําสัง่ if ( เหตุการณ Operator เหตุการณ )

{ งานที่จะตองทํา } else if ( เหตุการณ Operator เหตุการณ )

{งานที่จะตองทํา} else {งานที่จะตองทํา}

ตัวอยางคําสัง่

<? $a = 20 $b = 30 if ($a > $b) { print "a is bigger than b"; }

elseif ($a == $b) { print "a is equal to b"; } else { print "a is smaller than b";}

?>

Page 40: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

36บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP ผลลัพธ

a is smaller than b คําอธิบาย

กําหนดให $a มีคาเทากับ 20 กําหนดให $b มีคาเทากับ 30

คําสั่งสรางเงื่อนไขวา ถา $a มากกวา $b ใหพิมพคําวา "a is bigger than b" แตถาไมพบวา $a มากกวา $b ก็จะเขาสูสถานการณถัดไป

ถา $a เทากับ $b ใหพิมพวา "a is equal to b" แตถา $a ไมเทา $b ใหพิมพวา "a is smaller than b"

ประโยคคําสัง่แบบวนรอบ WHILE

คําสั่ง while เปนคําสั่งสรางเงื่อนไขใหทํางานวนรอบซ่ําๆกัน จนกวาตวัแปรที่กําหนดจะมีคาครบตามเงื่อนไข while จะนาํเอาเรื่องของการกําหนดคาใหกับตวัแปรหรือ Assignment Operators เขามาเกี่ยวของดวย ถายังจํากันได การ Assignment คาใหกบั Operators ก็คือการสรางเงื่อนไขและกําหนดคาใหกับตัวแปรเปนคาตางๆ จนครบที่กําหนด ถาจะพูดใหเหน็ชัดลองนึกถึงการนับเลข หรือการใหคะแนน ถาถูกตอง จะมีคาเทากับ 1 และเพิ่มคาให 1 คะแนน

Page 41: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

37บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP ตัวอยางคําสัง่

<? $i = 1; while ($i <= 10) { print $i++; } ?>

ผลลัพธ 12345678910

คําอธิบาย

กําหนดให $a มีคาเทากับ 1 จากนั้นสรางเงือ่นไขวาให $a มีคานอยกวาเทากับ10 ลงมา และใหพิมพคา $a คือ 1 – 10

FOR

คําสั่ง for เปนคําสั่งสรางเงื่อนไขใหทํางานวนรอบซ่ําๆกัน จนกวาตัวแปรที่กําหนดจะมีคาครบตามเงื่อนไข เชนเดยีวกบั while โดยจะนําเอาเรื่องของการกําหนดคาใหกับตวัแปรหรือ Assignment Operators เขามาเกี่ยวของดวย ถายังจํากันได การ Assignment คาใหกบั Operators ก็คือการสรางเงื่อนไขและกาํหนดคาใหกบัตัวแปรเปนคาตางๆ จนครบที่กําหนด

รูปแบบคําสัง่ for ( สถานการณ1 ; สถานการณ 2 ; สถานการณ 3; ){ งานที่จะตองทํา}

Page 42: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

38บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP ตัวอยางคําสัง่

<? for ($i = 1; $i <= 6; $i++)

{ print "<h$i>Hi hello</h$i><br>"; } ?>

ผลลัพธ

Hi hello Hi hello Hi hello Hi hello Hi hello Hi hello

คําอธิบาย

กําหนดให $i มีคาเทากับ 1 จากนั้นสรางเงือ่นไขวาให $a มีคานอยกวาเทากับ 6 ลงมา และพิมพเพิ่มคา $i ที 1 ตั้งแต 6 จนถึง 1 ใหพิมพคําวา Hi hello ขนาดตัวอักษร ตั้งแต 6 จนถึง 1 โดยเวนบรรทัด

การจัดการเกี่ยวกับวัน และเวลา ฟงกชนัเกี่ยวกับวัน date() ซ่ึงใชสําหรับแสดงคาวันของเซิรฟเวอรตามที่ตั้งไว และแสดงตามรูปแบบที่กําหนด โดยคาที ่ จะผานใหกับฟงกชันนี้ มี 2 คา ตามรูปแบบที่เรียกใชดังนี ้

date (format,[timestamp]);

Page 43: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

39บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP format เปนขอมูลชนิดขอความ หมายถึงรูปแบบการแสดงผลที่ตองการ timestamp เปนขอมูลชนิดวนัและเวลา ซ่ึงจะระบหุรือไมก็ได คาผลลัพธที่คืนออกมาจากฟงกชันนี้ จึงเปนขอความแสดงวัน ตามรปูแบบที่กําหนดของ format ตัวอยางเชน

จะไดผลลัพธเปน 25 10 2006 รูปแบบการแสดงผลวัน

คาท่ีกําหนด ผลลัพท d วันที่แสดงเปนตัวเลข 2 หลัก j วันที่แสดงคาโดยไมตองมี 0 นําหนา D วันในสัปดาห แสดงตัวยอ 3 ตัวอักษร l วันสัปดาหแสดงคาครบตามชื่อ F เดือนแสดงครบตามชื่อ M เดือนแสดงตัวยอ 3 ตัวอักษร m เดือนแสดงเปนตัวเลข w วันในสัปดาหโดยแสดงเปนตัวเลข y ป ค.ศ. แสดงเปนตัวเลข 2 หลัก Y ป ค.ศ. แสดงเปนตัวเลข 4 หลัก z คาวันในรอบป มีคา 1 - 365

ฟงกชันเกี่ยวกบัเวลา strftime()

strftime("format");

date (d m Y);

Page 44: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

40บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP

เชน จะไดผลลัพธเปน 15:24:24 รูปแบบการแสดงผลเวลา

คาท่ีกําหนด ผลลัพท %H แสดงชั่วโมงแบบ 24 ช่ัวโมง มีคาตั้งแต 00 - 23 %I แสดงชั่วโมงแบบ 12 ช่ัวโมง มีคาตั้งแต 01 - 12

%M แสดงนาท ี%S แสดงวนิาท ี

การสรางสวนเชื่อมโยงฐานขอมูล MySQL MySQL เปนระบบจัดการฐานขอมูลที่ประกอบดวยระบบจัดการฐานขอมูล ซ่ึงเปนโปรแกรมขนาดเล็กแตมีความสามารถสูง สําหรับการติดตอฐานขอมูล MySQL ดวย PHP นั้นมีฟงกชันในการติดตอดังนี้ โดยที ่ hostname หมายถึง ช่ือของ host ที่ MySQL กําลังทํางาน อาจหมายถึงชือ่เครื่อง หรือหมายเลข IP address username หมายถึง ช่ือผูใชที่กําหนดไวในการติดตอกบัฐานขอมูล MySQL password หมายถึง รหัสผานที่ใชรวมกับ username หลังจากที่ผูใชติดตอกับฐานขอมูล และทํางานเรียบรอยแลว ตองปดการติดตอกับฐานขอมูลดวยทกุครั้งโดยใชคําสั่ง mysql_close() เพื่อลดการ overhead

mysql_connect ([hostname(port)[:/path to socket]],[username],[password]);

strftime("%H:%M:%S");

Page 45: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

41บทท่ี 3 การเขียนโปรแกรมดวยภาษา PHP การเรียกใชฐานขอมูล MySQL คําสั่งใน MySQL ที่ใชเรียกฐานขอมูลมาใชงานดังนี ้ การจัดการกับขอมูลในฐานขอมูล การใชคิวร่ีฐานขอมูล เชน เพิ่ม ลบ และแกไข ทําไดโดยเรียกใชฟงกชัน mysql_query() มีรูปแบบดังนี ้ โดยที ่ query หมายถงึ คิวร่ีที่เรียกใชฐานขอมูล database_connect หมายถึง ตัวแปรที่ใชเชือ่มตอกับฐานขอมลู จะกําหนดหรือไมก็ได ตัวอยาง

Mysql_select_db(“ช่ือฐานขอมูล”);

mysql_query(query,[database_connect]);

$query = “select * from book where id = 5”; $result = mysql_query($query);

Page 46: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

ทําความรูจักกับฐานขอมลู ฐานขอมูล คือ กลุมของขอมูลที่มีความสัมพันธกัน โดยอาจถูกจดัเกบ็อยูในแฟมเดยีวกัน หรือหลายแฟมแตจะตองมีการเชื่อมโยงความสัมพันธถึงกัน และสามารถอธิบายความสัมพันธเหลานั้นได ขอมูลที่ถูกจัดเก็บรวมกนัเปนฐานขอมูลจะเปนขอมูลที่ไมมีความซ้ําซอน ซ่ึงตองผานกระบวนการตาง ๆ ที่ใชในการจัดการกับขอมลูกอนที่จะนํามารวมกันเปนฐานขอมลู เชน การควบคุมความถูกตองใหกับขอมูล (Data Integrity) การจัดการกับขอมูล ( Data Manipulate ) และการแกไขปญหาความซ้ําซอนของขอมูลดวยการทํา Normalization เปนตน นอกจากนั้นระบบจัดการฐานขอมูลโดยทั่วไปจะสามารถจํากัดสิทธิ์การใชงานของ ผูใชได ( Data Security ) ทําใหนยิมนําฐานขอมูลมาใชงานกันอยางแพรหลายในปจจบุัน โดยสามารถสรุปประโยชน และความสําคัญของการใชงานฐานขอมูลไดดังนี ้

• ลดความซ้ําซอนของขอมูล ( Data Redundancy ) คือ บางครั้งการจัดเก็บขอมูลในรูปแบบของแฟมขอมูลอาจจะมีขอมูลชุดเดียวกนัอยูใน 2 แฟมขอมลูหรือมากกวา เชน ขอมูลของพนักงานขายที่ช่ือ “ เขมรินทร” ถูกจัดเก็บอยูในแฟมขอมูลพนักงาน ( EMPLOYEE ) ของฝายพนกังาน และแฟมขอมลูพนักงนขาย ( SALESMAN ) ของฝายการตลาดทั้ง ๆ ที่เปนขอมูลของคนคนเดียวกัน เนื่องจากพนกังานขายก็ถือวาเปนพนักงานคนหนึ่งของบริษัท การจัดเก็บในลักษณะดังกลาวจะทาํใหส้ินเปลืองเนื้อที่ ถานําระบบฐานขอมูลมาใชก็จะสามารถแกปญหาความซ้ําซอนนี้ได

• แกปญหาขอมูลไมสอดคลองกัน ( Data Inconsistency ) ปญหานี้เกดิจากความซ้ําซอนของขอมูล คือ การเก็บขอมูลพนักงานไว 2 แฟมขอมูลหรือมากกวา ถาตองมีการเปลี่ยนแปลงขอมูล เชน เปลี่ยนชื่อของพนักงาน แกไขอัตราเงินเดือน หรือเปลี่ยนแปลงเบอรโทรศัพท เปนตน การเปลี่ยนแปลงเหลานี้เกิดขึน้แลวจะกระทบกับทุก ๆ แฟมที่มีขอมูลอยู ซ่ึงอาจทําใหเกิดความผิดพลาดขึ้นได และความผิดพลาดนี้เองจะสงผลใหขอมูลที่ไดไมตรงกัน เชน เปลี่ยนแปลงขอมลูจากแฟมขอมูลพนักงาน (EMPLOYEE) แตลืมเปลี่ยนแปลงขอมูลจากแฟมพนกังานขาย (SALESMAN ) เปนตน

บทที่ การใชงานฐานขอมูล MySQL 4

Page 47: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

43บทท่ี 4 การใชงานฐานขอมูล MySQL

• การใชขอมูลรวมกัน ( Data Sharing ) แตละหนวยงานในองคกรสามารถใชขอมูลรวมกันได คือ ถามีการเก็บขอมูลรวมกันเปนระบบฐานขอมูล จะทําใหทุกหนวยงานสามารถใชขอมูลเดียวกันทั้งหมด แตถาขอมูลไมไดอยูในรูปแบบของฐานขอมูลแลว การใชขอมูลของหนวยงานตาง ๆ จะแยกออกจากกนั

• สามารถกําหนดการรักษาความปลอดภัยของขอมูล ( Data Security ) ไดเพราะระบบฐานขอมูลมีตัวชวยในการจัดการกับขอมลูที่เรียกวา “ระบบจัดการฐานขอมูล” หรือ “DBMS” ( Data Base Management System ) ซ่ึงสามารถตรวจสอบคําสั่งในการเขาใชงานขอมูล และตรวจสอบสิทธิ์ในการเขาใชฐานขอมูลได

• สามารถรักษาความถูกตองของขอมูล ( Data Validity ) ไดโดยระบุกฎเกณฑในการควบคุมความผิดพลาดที่อาจเกิดขึ้นไดจากการปอนขอมูลผิด

• ทําใหขอมูลเปนอิสระจากโปรแกรมที่ใชงานขอมูลนั้น ( Data Independence ) สงผลใหผูพัฒนาโปรแกรมสามารถแกไขโครงสรางของขอมูล โดยไมกระทบตอโปรแกรมที่เรียกใชงานขอมูลนั้น เชน ในกรณีที่ตองการเปลี่ยนขนาดของ Field ถาเปนระบบแฟมขอมูลจะตองเปลี่ยนแปลงตวัโปรแกรมทีอ่างถึง Field นั้นทั้งหมด ซ่ึงตางจากการใชงานระบบฐานขอมูล ที่การอางถึงขอมูลจะไมขึ้นอยูกับโครงสรางทางกายภาพของขอมูล จึงไมสงผลใหตองแกไขโปรแกรมที่เรียกใชขอมูลนัน่มากนกั

เมื่อทราบถึงความหมายและประโยชนของการนําฐานขอมูลมาใชแลว ในหวัขอตอไปจะศึกษาถึงโครงสรางตาง ๆ ของฐานขอมูล ซ่ึงจําเปนตองใชแบบจําลองขอมูลในการนําเสนอ แบบจําลองของขอมูลที่จะใชนําเสนอรายละเอียดและโครงสราง คําศัพทพื้นฐาน การประมวลผลในระบบแฟมขอมูล ไดแบงหนวยของขอมูลไวหลายระดับ ดังนี้ บิท (Bit) หมายถึง หนวยของขอมูลที่มีขนาดเล็กที่สุด ไบท (Byte) หมายถึง หนวยของขอมูลที่เกิดจากการนํา บิท มารวมกันเปนตัวอักษร ฟลด (Field) หมายถึง หนวยของขอมูลที่ประกอบดวยหลายๆ ตัวอักษร เพื่อแทนความหมายของสิ่งหนึ่ง เชน รหัสพนักงาน ช่ือ เปนตน

Page 48: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

44บทท่ี 4 การใชงานฐานขอมูล MySQL

เรคคอรด (Record) หมายถึง หนวยของขอมูลที่เกิดจากการนําเอา ฟลดหลายๆ ฟลด มารวมกัน เพื่อแสดงรายละเอียด ขอมูลในเรื่องใดเรื่องหนึ่ง เชน เรคคอรดหนึ่งๆ ของพนักงานประกอบดวย ฟลดตางๆ เชน รหัสพนักงาน ช่ือแผนก เงินเดือน เปนตน แฟมขอมูล (File) หมายถึง หนวยของขอมูลที่เกิดจากการนําเรคคอรดหลายๆ เรคคอรด มารวมกันสําหรับในระบบฐานขอมูล คําศัพทพื้นฐานที่เกี่ยวของมีดังตอไปนี้ คือ เอนทิตี้ (Entity) เอนทิตี้ หมายถึง ช่ือของสิ่งใดสิ่งหนึ่ง อาจเกี่ยวกับ คน สถานที่ ส่ิงของ การกระทํา ซ่ึงตองการจัดเก็บขอมูลไว เชน เอนทิตี้พนักงาน สินคา ลูกคา การสั่งซื้อ เปนตน แอททริบิวต (Attribute) แอททริบิวต หมายถึง รายละเอียดของขอมูลในเอนทติี้หนึ่งๆ เชน เอนทิตี้พนกังาน ประกอบดวย แอททริบิวตรหัสพนักงาน ช่ือ เงินเดือน หรือเอนทิตี้ลูกคาประกอบดวยแอททริบวิตรหัสลูกคา ช่ือ ที่อยู หมายเลขโทรศัพท หรือเอนทิตี้แผนก ประกอบดวย แอททริบิวตรหสัแผนก ช่ือ เปนตน

รูปแบบของฐานขอมูล รูปแบบของฐานขอมูลแบงออกเปน 3 ประเภท คือ 1. ฐานขอมูลเชิงสัมพันธ (Relational Database) เปนการจัดเก็บขอมูลของเอนทิตี้ในรูปแบบตาราง ที่มีลักษณะเปนสองมิติ คือ เปนแถว (Row) และเปนคอลัมน (Column) ในการเชื่อมโยงขอมูลระหวางตาราง จะเชื่อมโยงโดยใชแอททริบิวตที่มีอยูในทั้งสองตารางเปนตัวเชื่อมโยงขอมูลกัน ตัวอยางเชน ตารางพนักงานและตารางแผนก ถาตองการทราบวาพนักงานรหัส 1001 อยูสังกัดแผนกอะไรจะตองนํารหัสแผนกในตารางพนักงานไปตรวจสอบกับรหัสแผนก (DEPNO) ซ่ึงเปนคีย (Key) ในตารางแผนกเพื่อดึงขอมูลช่ือแผนกออกมา ฐานขอมูลเชิงสัมพันธนี้จะเปนรูปแบบที่นิยมใชในปจจุบัน และเปนฐานขอมูลที่จะกลาวในรายละเอยีดตอไป

Page 49: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

45บทท่ี 4 การใชงานฐานขอมูล MySQL EMPLOYEE (พนักงาน)

EMPNUM EMPNAME HIREDATE SALARY POSITION DEPNO MGRNO 1001 SIRIWAN 06/13/93 3000 CLERK 10 1002 3001 ARLEE 08/15/93 17000 SALESMAN 30 3004 4001 WICHAI 12/26/93 33000 MANAGER 40 2002 1002 JINTANA 10/31/93 30000 CONTROLLER 10 1003 3002 MITREE 12/05/93 29000 MANAGER 30 2002

DEP (แผนก)

DEPNO DEPNAME LOCATION 10 ACCOUNTING SILOM 20 ADMINISTRATION SUKUMVIT 30 MARKETING RATCHADA

2. ฐานขอมูลแบบลําดับขัน้ (Hierarchical Database) โครงสรางของฐานขอมูลแบบลําดับขั้น เปนโครงสรางที่จัดเก็บขอมูลในลักษณะความสัมพันธแบบ พอ - ลูก (Parent - Child Relationship Type : PCR Type) คําวาขอมูลที่กลาวในที่นี้ก็คือ เรคคอรด (Record) นั่นเอง ซ่ึงประกอบดวยคาของฟลด (Field Value) ของเอนทิตี้หนึ่งๆ

แผนก

ช่ือแผนก

รหัสแผนก

สถานที่

Page 50: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

46บทท่ี 4 การใชงานฐานขอมูล MySQL

พนักงาน โครงการ

ช่ือ

รหัส เงินเดือน

รหัส แผนก

เงินเดือน

ช่ือโครงการ

รหัสโครงการ

สถานที่

จากรูป เคารางของฐานขอมูลเชิงลําดับขั้น (Hierarchical Database Schema) ประกอบดวยประเภท

ของเรคคอรด (Record Type) และความสัมพันธ ดังนี ้ 1. ประกอบดวย เรคคอรด 3 ประเภท คอื แผนก (Department) พนักงาน (Employee) และโครงการ (Project) 2. ประกอบดวยความสัมพนัธแบบ PCR 2 ประเภท คือ ความสัมพันธของขอมูลแผนกกับพนกังานและความสัมพันธของขอมูลแผนกกับโครงการ โดยทีม่ีแผนกเปน เรคคอรดประเภท พอ - แม (Parent Record Type) และพนกังานกับโครงการเปนเรคคอรดประเภทลูก (Child Record Type) ความสัมพันธทั้งสองดังกลางขางตนเปนแบบ 1 : N ดังรูป ก. แผนก พนักงาน วิชัย วินยั วิชิต สมบุญ สุรชัย สุรภี สุรเดช ข. แผนก โครงการ สินคา ก สินคา ข สินคา ค คอมพิวเตอร การปรับปรุงการบริหาร

การตลาด การบัญชี

วิจัย บริหาร

Page 51: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

47บทท่ี 4 การใชงานฐานขอมูล MySQL

คุณสมบัติของเคารางของฐานขอมูลเชิงลําดับขั้น มีดังนี้ คือ 1. หากเรคคอรดใดเปนราก (Root) ของเคารางแลว จะมีคุณสมบัติเปนเรคคอรดประเภทลูก (Child Record Type) ไมได 2. ทุกเรคคอรดยกเวนราก (Root) สามารถมีความสัมพันธกับเรคคอรดประเภทพอแมไดหนึ่งความสัมพันธ 3. ทุกเรคคอรด สามารถมีคุณสมบัติเปนเรดคอรดประเภทพอแมได 4. ถาเรดคอรดหนึ่งมีเรคคอรดลูกมากกวา 1 เรดคอรดแลวการลําดบัความสัมพันธของเรดคอรดลูกจะลําดับจากซายไปขวา 3. ฐานขอมูลแบบขายงาน (Network Database) โครงสรางของขายงานประกอบดวยประเภทของเรคคอรด และกลุมของขอมูลของเรคคอรดนั้นๆ เชนเดยีวกับโครงสรางของฐานขอมูลเชิงสัมพันธ และเชิงลําดับขั้น ความสัมพันธระหวางประเภทของเรคคอรดในฐานขอมูล เรียกวา Set Type ซ่ึงสามารถแสดงในแผนภูมิ เรียกวา Bachman diagram อันมปีระกอบดังนี ้ 1. ช่ือของ Set Type 2. ช่ือของประเภทของเรคคอรดหลัก (Owner Record Type) 3. ช่ือของเรคคอรดที่เปนสมาชิก (Member Record Type)

แผนก

ชื่อแผนก

. . .

นักศึกษา

ชื่อนักศึกษา

. . .

Page 52: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

48บทท่ี 4 การใชงานฐานขอมูล MySQL ตัวอยาง เชน จากรูป ประกอบดวย Set Type ที่ช่ือวา วิชาเอก (Major - Dept) โดยมีแผนก (Department) เปนเรคคอรดหลัก (Ower Record Type) และมีนักศึกษาเปนเรคคอรดสมาชิก (Member Record Type) โดยมีความสมัพันธแบบ 1 : N ในฐานขอมูล จะมีกลุมขอมลูที่เกี่ยวของกบัเรื่องวิชาเอก (Set Occurrence หรือ Set Instance) กลุมขอมูลนี้ประกอบดวย ขอมลูจากเรคคอรดหลัก 1 ขอมูล และขอมูลเรคคอรดที่เปนสมาชิก จากรูปดานลาง จะ เห็นวาเรคคอรดหลักคือแผนก (Department) จะมีขอมูลของเรคคอรดที่เปนสมาชิกคือนักศึกษา (Student) ที่เรียนวิชาเอกในแตละสาขา จากตัวอยางนีจ้ะมวีิชาเอก (Major Dept) อยู 4 สาขา (Set Occurrences) โดยที่แตละวิชาเอกจะตองมีช่ือแผนก (Owner Record) ซ่ึงสามารถที่จะมีขอมูลของสมาชิกไดมากกวา 1 เรคคอรด หรือไมมีเลยกไ็ด

เศรษฐศาสตร . . .

นาย ก . . .

นาย ข . . .

นาย ค . . .

นาย ง . . .

นาย จ . . .

บัญชี . . .

นางสาวโสภา . . .

นางสาวสมศรี . . .

นายสิทธิพร . . .

แผนก นักศึกษา

แผนก นักศึกษา รัฐศาสตร . . .

นายรักด ี . . .

นายชชูีพ . . .

วนศาสตร . . .

Page 53: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

49บทท่ี 4 การใชงานฐานขอมูล MySQL ความสัมพันธ (Relationship) หัวใจสําคัญในการออกแบบฐานขอมูลที่มีโครงสรางเชิงสัมพันธหรือ Relational database ก็คือการออกแบบเทเบลิเพื่อเก็บขอมลูกลุมตาง ๆ โดยจะตองสามารถกําหนดความสัมพันธระหวางกลุมขอมูลเหลานั้นได ดังนัน้จะตองวิเคราะหใหไดวาขอมูลเหลานั้นมีความสัมพันธกันอยางไร ซ่ึงความสัมพันธระหวางเทเบิลมีทั้งหมด 3 ลักษณะคือ ความสัมพันธแบบ 1 : 1 (One - to - One) เปนความสัมพันธที่แถวหนึง่แถวในเทเบิลใด ๆ สามารถจับคูกับแถวในอีกเทเบิลหนึง่ไดเพยีงแถวเดียวเทานั้น หรือเปนการจับคูกนัตัวตอตวั ความสัมพันธลักษณะนีจ้ะพบเห็นไดนอย เชน กรณีทีจ่ํานวนคอลัมนในเทเบิลนั้นมีมากเกินไป จนทาํใหเทเบิลมีขนาดใหญไมสะดวกในการประมวลผลและบํารุงรักษา จงึตองแยกขอมูลบางสวนที่สําคัญออกมาเก็บไวอีกเทเบิลหนึ่ง โดยเลือกคอลัมนที่มีคุณสมบัติเหมาะสมเปนตวัเชื่อมความสัมพันธระหวางเทเบิลทั้งสอง ในตัวอยางนี้จะใชรหัสพนักงานเปนตัวเชื่อมเนือ่งจากเปนคอลัมนรวม (commonfield) ของทั้ง 2 เทเบิล ดังรูป

พนักงาน

รหัสพนักงาน ชื่อ นามสกุล ท่ีอยู โทรศัพท 1001 Michael Suyama Coventry House, London (71) 555 - 7773 1002 Laura Callahan 4725-11th Ave. N.E. Seattle (71) 555 - 4848 1003 Robert King Edgeham Hollow, London (206) 555 -1189 1004 Anne Dodsworth 7 Houndstood Rd. London (71) 555 - 4444

ขอมูลสวนตัว

รหัสพนักงาน เงินเดือน เลขท่ีบัตรประกันสังคม 1001 25,000 324 -45-6400 1002 20,000 245 -37-5600

ความสัมพันธแบบ 1 : 1

1

1

Page 54: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

50บทท่ี 4 การใชงานฐานขอมูล MySQL ความสัมพันธแบบ 1 : N (One - to - Many) เปนความสัมพันธที่แถวหนึง่แถวในเทเบิลใด ๆ สามารถจับคูกับแถวในอีกเทเบิลหนึง่ไดหลายแถว ตัวอยางเชน ความสัมพันธระหวางเทเบิลลูกคา และเทเบิลการสั่งซื้อ ลูกคาหนึ่งคนจะมีใบสั่งซื้อสินคาไดหลายใบ ในขณะทีใ่บสั่งซื้อแตละใบจะตองมาจากลูกคาเพียงคนเดียวเทานัน้ หรือตัวอยางของอาจารยที่ปรึกษาที่มีนักศึกษาในความรบัผิดชอบไดหลายคน แตนักศกึษาแตละคนจะมีอาจารยที่ปรึกษาไดเพยีงคนเดยีวเทานัน้ ดังรูป

ลูกคา

รหัสลูกคา ชื่อบริษัท ท่ีอยู 1001 Let’s Stop N Shop 87 Polk St. San Francisco 1002 B’s Beverage Fauntleroy Circus, London

การสั่งซื้อ

รหัสสั่งซื้อ รหัสลูกคา รหัสสินคา

12010 1002 BE - 203 12015 1002 ME - 010

ความสัมพันธแบบ 1 : N

ความสัมพันธแบบ M : N (Many - to - Many) คือลักษณะที่แถวหลาย ๆ แถวในเทเบิลหนึง่ มีความสัมพันธกับอีกหลาย ๆ แถวในอกีเทเบิลหนึ่งพรอมกัน เชน ความสัมพันธระหวางเทเบิลลูกคา และเทเบิลสินคา ลูกคาหนึ่งคนสามารถซื้อสินคาไดหลายชนิด ในขณะที่สินคาแตละชนดิก็จะถูกซื้อโดยลูกคาหลาย ๆ คนไดดวย ถาเรานาํเทเบิลทัง้สองนี้มาเชื่อมโยงกันโดยตรงจะเหน็วาทําไมได เนื่องจากไมมคีอลัมนที่เปนคอลัมนรวมของทั้ง 2 เทเบิล การสรางความสัมพันธแบบ M : N จึงตองใชเทเบลิอ่ืนมาชวยเปนสะพานในการเชื่อมโยงซึ่งในที่นี้จะใชเทเบิลการสั่งซื้อมาชวย ดังรูป

1

N

Page 55: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

51บทท่ี 4 การใชงานฐานขอมูล MySQL

ลูกคา

รหัสลูกคา ชื่อบริษัท ท่ีอยู 1001 Let’s Stop N Shop 87 Polk St. San Francisco 1002 B’s Beverage Fauntleroy Circus, London 1003 Chop - suey Chinese Hauptstr. 29, Bern

การสั่งซื้อ สินคา

รหัสสั่งซื้อ รหัสลูกคา

รหัสสินคา รหัสสั่งซื้อ ชื่อสินคา ปริมาณ

12010 1001 BE - 203 ME - 010 Boston Crab Meat 120 12010 1003 ME - 010 BE -115 Lpoh Collee 15 12016 1002 SE - 057 1 SE - 057 Konbu 24 12025 1003 SE - 057 N BE - 203 Outback Lager 30

ความสัมพันธแบบ M : N

จากภาพจะเกดิความสัมพันธแบบ 1 : N สองความสัมพันธ ความสมัพันธแรกคือความสัมพันธระหวางเทเบิลลูกคา และเทเบิลการสั่งซื้อ ความสัมพันธที่สองคือความสัมพันธระหวางเทเบิลสินคาและเทเบิลการสั่งซื้อ คอลัมนรหัสลูกคาและคอลัมนรหัสสินคาจะถกูนํามาใชเปนคอลัมนรวมเพือ่สรางความสัมพันธระหวางเทเบิลลูกคาและเทเบิลสินคา ใหเปนแบบ M : N จากตัวอยางในรูป ลูกคารหัส 1003 ซ้ือสินคารหัส ME - 010 และ SE - 057 ในขณะที่สินคา SE - 057 ก็ถูกซื้อโดยลูกคารหัส 1002 และ 1003

1

N

Page 56: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

52บทท่ี 4 การใชงานฐานขอมูล MySQL ประเภทของคีย เพื่อเพิ่มประสทิธิภาพในการจัดการฐานขอมูล เชน การอางอิง การคนหา การแกไขขอมูลในแถวใด ๆ หรือการกําหนดความสัมพันธระหวางเทเบิล จะตองกําหนดคียใหกับแตละเทเบลิกอน โดยเลือกใหคอลัมนใด ( อาจมีมากกวา 1 คอลัมน ) เปนคีย มิฉะนั้นจะไมสามารถนําเทเบิลมาเชื่อมโยงสัมพันธกันไดเลย นอกจากนี้การกําหนดคียจะทําใหการอางอิงและประมวลผลขอมูลดวยคอมพิวเตอรสะดวกและรวดเร็วข้ึน รวมทั้งประหยัดเนื้อทีใ่นการเก็บขอมูลอีกดวย เชน กําหนดรหัสประจําตัวใหกับพนักงานทกุคนในเทเบิลพนักงาน เมื่อพนักงานคนใดทํางานลวงเวลาก็จะนําเฉพาะรหัสพนกังานพรอมขอมูลการทํางานไปใสในเทเบิลการทํางานลวงเวลา คียที่ใชในระบบฐานขอมูลมีหลายประเภท ดังนี ้ คียหลัก (Primary Key) หมายถึง แอตทริบิวตหรือกลุมของแอตทริบิวตของเทเบิลหนึ่ง ที่มีขอมูลไมซํ้ากันและมีคาเสมอ (ไมเปน NULL ) ทําใหสามารถระบุไดวาเปนขอมูลแถวใดในเทเบิลนั้น คียหลักจะใชประโยชนในการระบุ ( identify ) ขอมูลที่ตองการเขาถึง ไดแก ถาเปนขอมูลของนักศึกษา ( เทเบิลนักศึกษา ) ตัวคียหลักก็จะเปนรหัสนักศึกษา เปนตน ขอดีของการกําหนดคียหลักอีกขอคือ จะชวยไมใหเกิดการผิดพลาดเนื่องจากปอนขอมูลที่ซํ้ากันในคอลมันที่ไมอนุญาตใหมีขอมูลซํ้า ถาใสขอมูลซํ้าโปรแกรม DBMS จะแสดงขอความเตอืนและไมทํางานตอจนกวาจะแกไขขอมูลใหถูกตอง คียนอก (Foreign Key) คียนอก เปนคียที่ใชเช่ือมเทเบิลที่เกี่ยวของเขาดวยกัน เชน ในเทเบิลลูกคาจะมีคอลัมนรหัสลูกคาเปนคียหลักเราจะใหรหัสลูกคาในเทเบิลลูกคาเชื่อมโยงกับรหัสลูกคาในเทเบิลการสั่งซื้อ เพื่อที่จะไดทราบชื่อและที่อยูของลูกคาที่สั่งซื้อสินคานั้น ในกรณีนี้คอลัมนรหัสลูกคาในเทเบิลการสั่งซื้อจะมีคุณสมบัติเปนคียนอก ( ในขณะที่คอลัมนรหัสลูกคาเมื่ออยูในเทเบิลลูกคา จะมีคุณสมบัติเปนคียหลัก )

Page 57: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

53บทท่ี 4 การใชงานฐานขอมูล MySQL

กฎท่ีใชจัดเก็บขอมูลในฐานขอมูลเชิงสัมพันธ กฎขอท่ี 1 ทุกเทเบิลตองมหีนึ่งคียหลัก (Primary key) กฎขอท่ี 2 ในการสรางความสัมพันธระหวางเทเบิล 2 เทเบิลในฐานขอมูลเชิงสัมพันธ สามารถกําหนด

ดวยคยีนอก ( Foreign Key ) ซ่ึงอาจมีคาเปน NULL ( ไมมีคาขอมูล ) หรือมีคาตรงกับขอมูลของคียหลักในอีกเทเบิลหนึ่งที่มคีวามสัมพันธกันดวย

Page 58: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

54บทท่ี 4 การใชงานฐานขอมูล MySQL รูจักกับฐานขอมูล MySQL นับจากทศวรรษที่ 1980 เปนตนมา ภาษาโปรแกรมมิ่งไดรับการพัฒนาเปนอยางมาก โดยพัฒนาการของภาษาโปรแกรมมิ่งในชวงนี้มีวัตถุประสงคเพื่อสรางภาษาที่ใชงานรวมกันกับระบบสารสนเทศและฐานขอมูลได ภาษา SQL หรือ Structue Query Language ถูกพัฒนาขึ้น และเริ่มมีบทบาทกวางขวาง เนื่องจาก SQL เปนกลไกสําคัญ ซ่ึงควบคุมการทํางานของระบบจัดการฐานขอมูลในปจจุบัน MySQL เปนโปรแกรมจัดการฐานขอมูลที่มีลักษณะเปนฟรีแวร ถูกพัฒนาขึ้นโดยบริษัท MySQL AB ในประเทศสวีเดน บริษัท MySQL AB กอตั้งโดย David Axmark, Allan Larsson และ Michael Monty Widenius โดยมีสมาชิกเปนนักพัฒนาจาก 12 ประเทศทั่วโลก ซ่ึงติดตอส่ือสารกันผานระบบเครือขาย และอินเตอรเน็ต MySQL เติบโต และพัฒนาอยางรวดเร็ว โดยผูใชกลุมตางๆ ไดพยายามพัฒนาฟรีแวรชนิดนี้เพื่อใชงานภายในกลุม และเผยแพรสูผูใชอ่ืนๆ ตอไป เชนเดียวกับรูปแบบการพัฒนาของระบบปฏิบัติการ Linux การพัฒนาที่รวดเร็วนี้ทําใหฟรีแวรเหลานี้แตกแขนงสายพันธุจนยากที่จะหาเคาโครงเดิมได แตนั่นก็ทําใหเกิดความหลากหลาย และรองรับความตองการของผูใชกลุมตางๆ ไดเปนอยางดี หากมองยอนกลับไปถึงจุดประสงคเร่ิมตนของบริษัท MySQL AB ผูเร่ิมพัฒนาซอฟตแวร MySQL จะเห็นวาในปจจุบันวัตถุประสงคเร่ิมตนนั้นสําเร็จลุลวงไปมากทีเดียว โดยวัตถุประสงคของผูผลิตซอฟตแวรมีดังนี้

• ตองการสรางสรรค และพัฒนาซอฟตแวรสําหรับการจัดการฐานขอมูลที่มีขนาดเล็ก แตมี ความสามารถสูง • เปนซอฟตแวรที่มีผูใชทุกมุมโลก • ใชงานงาย • มีการปรับปรุงอยางตอเนื่อง และรวดเร็ว • ปราศจากขอผิดพลาดจากตัวโปรแกรม • ไมมีคาใชจายในการจัดหา (เปนฟรีแวร)

ความสําคัญของ MySQL MySQL มีความสามารถที่ไมยิ่งหยอนไปกวาระบบจัดการฐานขอมูลชนิดอื่น ระบบจัดการฐานขอมูลของ MySQL ประกอบดวย ระบบจัดการฐานขอมูลเชิงเดี่ยว และระบบจัดการฐานขอมูลเชิงสัมพันธ ยิ่งไป กวานั้นภาษา SQL ซ่ึงเปนจุดกําเนิดของ MySQL เปนหัวใจสําคัญของระบบจัดการฐานขอมูลในปจจุบัน ไมวาจะเปน Microsoft Access, Oracles หรือ Lotus Note

Page 59: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

55บทท่ี 4 การใชงานฐานขอมูล MySQL ฐานขอมูล MySQL มีจุดเดนที่ความเร็วในการจัดการ มีความนาเชื่อถือและใชงานงาย ในปจจุบันตลาดการคาซอฟตแวรมีการแขงขันสูง ผลิตภัณฑซอฟตแวรสําหรับจัดการฐานขอมูลมีเปนจํานวนมาก ทางเลือกของผูบริโภคจึงมีมากตามไปดวย ความสามารถ และประสิทธิภาพการทํางานของระบบจัดการฐานขอมูลจึงเปนปจจัยสําคัญอยางหนึ่งในการตัดสินใจของผูใช ระบบจัดการฐานขอมูล MySQL เปนระบบเครือขายแบบ Client / Server Side ซ่ึงประกอบดวย Server และ Client หลายเครื่อง โดย Server มีหนาที่สนับสนุนการจัดเก็บขอมูล บริหารระบบหองสมุดขอมูล และ API ซ่ึงทําใหผูใชไดฐานขอมูลที่จัดการไดงาย และสามารถเชื่อมโยงฐานขอมูลเขากับโปรแกรมประยุกตอ่ืนไดงาย และรวดเร็ว คุณลักษณะเดนของระบบจัดการฐานขอมูล MySQL

• MySQL เปนระบบจัดการฐานขอมูล • MySQL เปนระบบจัดการฐานขอมูลเชิงสัมพันธ • MySQL เปนซอฟตแวรแบบฟรีแวร และเปน Open Source

การใชงานฐานขอมูล MySQL มีคําสั่งในการใชงานที่แตกตางจากภาษาอื่นๆ แตยังยึดหลักของภาษา SQL (Structure Query Language) ซ่ึงจะอธิบายการใชงานคําสั่งตางๆ ของฐานขอมูล MySQL ในหัวขอตอไป คําสั่งที่ใชทํางานกับฐานขอมูล MySQL ขั้นตอนการสราง การใชงาน และการปรบัปรุงฐานขอมูล MySQL เปนเรื่องที่จะตองศึกษา เนื้อหาในสวนนี้จะกลาวถึงวิธีการใชงานระบบจัดการฐานขอมูล MySQL ซ่ึงประกอบดวยรายละเอียดเกีย่วกับการสราง และใชงานฐานขอมูล MySQL ดังนี ้ การเรียกใช MySQL มีวิธีดังนี้

1. เขาสูจอภาพของวินโดว โดยดับเบิลคลิกที่ไอคอน My Computer 2. ดับเบิลคลิกที่ไดรฟ C: จากนั้นดับเบิลคลิกเลือกโฟลเดอร Appserv 3. จากนั้นดบัเบิลคลิกที่โฟลเดอร mysql และ bin ตามลําดับ (C:\AppServ\mysql\bin)

4. ดับเบิ้ลคลิกที่ไอคอน Winmysqladmin จะปรากฏรูปสัญญาณไฟที่บริเวณทาสบาร (Taskbar)

5. เมื่อตองการใชฐานขอมูล MySQL ใหดบัเบิลคลิกที่ไอคอน mysql จะปรากฏจอภาพดังรูป

Page 60: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

56บทท่ี 4 การใชงานฐานขอมูล MySQL

รูปแสดงขั้นตอนการเรียกใชฐานขอมูล MySQL

คําแนะนํา การเขียนแตละคําสั่งใน MySQL จะตองจบดวยเครื่องหมาย semicolon (;) หากไมใสจะทําใหเกิดปญหากับคําสั่งตอไป เพราะ MySQL จะอานเปนคําสั่งเดียวกัน

การสรางฐานขอมูลใน MySQL ฐานขอมูลของ MySQL เปน Database Server สามารถรองรับฐานขอมูลที่มีความแตกตางกันได โดยสามารถสรางฐานขอมูลไดที่ Command Prompt ของโปรแกรม MySQL โดยพิมพโคดคําสั่งดังนี้

create database dbname; โดยที่ dbname หมายถึง ช่ือของฐานขอมูล

ตัวอยาง การสรางฐานขอมูลเพื่อใชงาน พิมพโคดคําสั่ง create database mydata ; โดยที่ mydata เปนชื่อของฐานขอมูล ดังรูป

Page 61: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

57บทท่ี 4 การใชงานฐานขอมูล MySQL

เมื่อสรางฐานขอมูลเสร็จแลว จอภาพของ MySQL จะแสดงขอความวา OK หมายความวาสรางไดสําเร็จ

การสรางตารางใน MySQL กอนการสรางตารางตองมีการเรียกใชงานฐานขอมูลกอน ซ่ึงทําไดดวยคําสั่ง use รูปแบบ คําสั่ง คือ

use dbname; โดยที่ dbname หมายถึง ช่ือของฐานขอมูล

ตัวอยาง การใชคําสั่ง use เพื่อเรียกการใชงานฐานขอมลู ช่ือของฐานขอมูลคือ mydata เรียกใชฐานขอมลูนี้ได ดังรูป

เมื่อมีการเรียกใชงานฐานขอมูลแลว ตอมาจะสรางตารางลงในฐานขอมลู ซ่ึงมีรูปแบบคําสั่ง ดังนี้

CREATE TABLE tablename (column1 type, column2 type...)

โดยที ่ tablename หมายถึง ช่ือตาราง column หมายถึง คอลัมนที่ตองการสราง type หมายถึง ชนิดของคอลัมน

Page 62: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

58บทท่ี 4 การใชงานฐานขอมูล MySQL ตัวอยาง การใชคําสั่ง CREATE TABLE สรางตารางลงในฐานขอมูล ทําไดดังรูป

จากรูปเปนการใชคําสั่ง CREATE เพื่อสรางตารางใหมช่ือ EMPLOYEE ประกอบดวย 8 คอลัมน คือ EmplD. Firstname, Lastname, Address, Workphone, Homephone, Password และ Email กําหนดใหคอลัมน EmpID เปน Primary Key จึงกําหนดเปน Not Null คือ เปนฟลดที่หามมีคาวาง และกําหนดใหเพิ่มแบบอัตโนมัต ิ (auto_increment) หากสรางตารางไดสําเร็จจะปรากฏขอความ “Query OK. 0 row affected (0.00 sec)”

คําอธิบายคยีเวิรด (Keyword)

• Not Null หมายถึง คาของขอมูลในคอลัมนนี้หามเปนคาวาง • Auto_increment หมายถึง เปนคําสั่งพิเศษใน MySQL ใชกบัคอลัมนที่เปนเลข

จํานวนเต็ม (Integer) เมื่อเพิ่มแถวในตารางคางนี้จะ เพิ่มขึ้นครั้งละ 1 โดยอัตโนมัติ ซ่ึงคาเหลานี้จะไมซํ้า กัน ขอมูลในคอลัมนที่นี้ Auto_increment จะตอง กําหนดเปน Index หรือ Primary key ซ่ึงแสดงลําดับ สําหรับอางอิงคาขอมูลดวยเสมอ

• Primary key หมายถึง เปนการกําหนดคาของคอลัมนใหเปน Primary Key • Unsigned หมายถึง เปนการกําหนดคาชนิดเลขจํานวนเต็มใหเปนคาที่ไมมี

เครื่องหมาย

Page 63: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

59บทท่ี 4 การใชงานฐานขอมูล MySQL

การแสดงรายละเอียดในฐานขอมูล การแสดงขอมลูของตารางในฐานขอมูลทําไดโดยใชคําสั่ง SHOW และ DESCRIBE ซ่ึงแตละคําสั่งมีรายละเอียด ดังนี ้

Variation คําอธิบาย

SHOW DATABASES [LIKE database] แสดงรายการของฐานขอมูลทั้งหมดในระบบ

SHOW TABLES [FROM database] [LIKE table]

แสดงตารางทัง้หมดจากฐานขอมูลที่ระบุ หรือฐานขอมลูปจจุบันที่เรียกใชอยู จึงไมจําเปนตองใชคําสั่ง FROM database

SHOW COLUMNS FROM table [FROM database] [LIKE column]

แสดงรายการของคอลัมนในตาราง และฐานขอมูลที่ระบุ หากเปนฐานขอมูลปจจุบันที่กาํลังใชอยูไมจําเปนตองใชคําสั่ง FROM database

SHOW INDEX FROM table [FROM database]

แสดงรายละเอยีดของดัชนี (index) ในตาราง และฐานขอมูลที่ระบุ หากเปนฐานขอมูลปจจุบันที่กําลังใชอยูไมจําเปนตองใชคําสั่ง FROM

SHOW STATUS [LIKE status_item] แสดงสถานะของระบบ SHOW VARIABLES [LIKE variable_name]

แสดงชื่อ และคาของระบบ MySQL

SHOW [FULL] PROCESSLIST แสดงรายการทํางานกับฐานขอมูลวามีผูใชคนใดใชฐานขอมูลใดบาง

SHOW TABLE STATUS [FROM database] [LIKE database]

แสดงสถานะของตารางที่อยูในฐานขอมลูระบุ

Page 64: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

60บทท่ี 4 การใชงานฐานขอมูล MySQL ตัวอยาง การใชคําสั่ง Show databases เพื่อแสดงชื่อฐานขอมูล

ในตัวอยางนีจ้ะมีช่ือฐานขอมูลอยู 2 ช่ือ คือ ฐานขอมูล mydata และฐานขอมูล mysql ตัวอยาง การใชคําสั่ง Show tables เพื่อแสดงชื่อตาราง

เลือกฐานขอมูลที่ตองการจะใชตารางหากใชคําสั่ง show tables กอนจะปรากฏขอผิดพลาดที่แจงวาใหเลือกฐานขอมูลกอน

การใชคําสัง่ DESCRIBE การแสดงคอลัมน หรือโครงสรางของตาราง ยังสามารถใชไดอีกคําสั่งหนึ่ง คือ การใชคําสั่ง

DESCRIBE ซ่ึงแตกตางจากการใชคําสั่ง SHOW tables ที่คําสั่ง DESCRIBE สามารถระบุเฉพาะ คอลัมนที่ตองการแสดงได โดยมีรูปแบบดังนี ้

DESCRIBE table [column];

โดยที ่ table หมายถึง ช่ือตาราง Column หมายถึง คอลัมน

Page 65: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

61บทท่ี 4 การใชงานฐานขอมูล MySQL

ตัวอยาง การใชคําสั่ง DESCRIBE เพื่อแสดงรายละเอียดของตาราง (โครงสรางของตาราง)

จากรูป ใชคําสั่ง DESCRIBE ในการแสดงรายละเอยีดของตาราง employee ที่มีอยูในฐานขอมูลช่ือ mydata โดยมีทั้งหมด 8 คอลัมน พรอมแสดงรายละเอียดของแตละคอลัมน

การเพิ่มขอมูลดวยคําสัง่ INSERT เมื่อสรางฐานขอมูลเรียบรอยแลว ขั้นตอนตอไป คือ การนําขอมูลมาเก็บลงในฐานขอมูล

ดวยคําสั่ง INSERT ซ่ึงมีรูปแบบ ดังนี ้

INSERT [into] table [(column1, column2, column3,...)] VALUES (value1, value2, value3, ...)

โดยที ่ table หมายถึง ช่ือตาราง Column หมายถึง ช่ือคอลัมน จะมีหรือไมกไ็ด Value หมายถึง คาของขอมูลที่ตองการเพิ่ม ตัวอยาง การใชคําสั่ง INSERT ใน MySQL

Page 66: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

62บทท่ี 4 การใชงานฐานขอมูล MySQL จากรูป เปนการใชคําสั่ง INSERT เพื่อเพิม่ขอมูล ‘R02’ , RoomN02’ , NULL เขาไปไวใน

ตารางชื่อ room โดยกอนทีจ่ะมีการจดัการกับตารางในฐานขอมูล การเรียกใชขอมูลดวยคําสัง่ SELECT

หากตองการเรยีกดูขอมูล หรือคนหาขอมูล ทําไดโดยใชคําสั่ง SELECT ซ่ึงสามารถระบุเงื่อนไขตางๆ รวมดวยได การใชคําสั่ง SELECT สามารถแบงเปนหวัขอตางๆ ตามลักษณะการ ใชงาน ดังนี ้

การเรียกใชขอมูลแบบไมมีเงือ่นไข เปนการใชคําสั่ง SELECT เพื่อเรียกดูขอมูลทั้งตาราง มีรูปแบบดังนี ้

SELECT column FROM table; โดยที ่ column หมายถึง ช่ือคอลัมน Table หมายถึง ช่ือตาราง ตัวอยาง การใชคําสั่ง SELECT แบบงายเพื่อเรียกดูขอมลู 1 คอลัมน

จากรูป เลือกแสดงคอลัมน room Name จากตาราง room ซ่ึงกอนการเขาใชตารางจะตองระบุฐานขอมลู ดวยคําสั่ง use

Page 67: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

63บทท่ี 4 การใชงานฐานขอมูล MySQL

ตัวอยาง การใชคําสั่ง SELECT เพื่อเลือกแสดงหลายคอลัมนในคําสั่งเดียว

จากรูป เปนการใชคําสั่ง SELECT เลือกคอลัมน RoomID และ RoomName จากตาราง room เพื่อแสดงรหัสหอง และชื่อหองตางๆ ที่อยูภายในตาราง room

ตัวอยาง การใชคําสั่ง SELECT เพื่อแสดงทุกคอลัมนในตาราง

การเรียกใชขอมูลแบบมีเงื่อนไข

เปนการใชคําสั่ง SELECT เพื่อเรียกดูขอมูลภายในตาราง ตามเงื่อนไขที่กําหนด โดยมีรูปแบบดังนี ้

SELECT column FROM table [WHERE condition] [GROUP BY group_type] [HAVING where_definition] [ORDER BY order_type] [LIMIT limit_criteria];

Page 68: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

64บทท่ี 4 การใชงานฐานขอมูล MySQL

โดยที ่ column หมายถึง ช่ือคอลัมน table หมายถึง ช่ือตาราง condition หมายถึง เงื่อนไขที่ตองการกําหนด gropu_type หมายถึง รายช่ือของคอลัมนที่ใชในการกําหนดกลุม where_definition หมายถึง เงื่อนไขที่ตองการกําหนดกลุมใหกับ

คอลัมนที่ถูกระบุในคําสั่ง GROUP BY order_type หมายถึง ชนิดของการเรียงลําดับ limit_criteria หมายถึง ตําแหนง และจํานวนแถวทีต่องการเลือก

WHERE

เปนคําสั่งที่ใชเรียกดูขอมูลแบบมีเงื่อนไข เปนการระบุคาเฉพาะขอมูลที่ตองการเรียกดู อาจจะใชเงื่อนไข เพือ่ดึงขอมูลบางแถวจากตารางก็ได ซ่ึงภายในคําสั่ง WHERE จะประกอบดวยสวนสําคัญ คือ ช่ือคอลัมน Operator ในการเปรียบเทียบ และขอมูลเฉพาะที่ตองการแสดงเปนเงื่อนไขของคอลัมนที่ระบุ

ตัวอยาง การใชคําสั่ง SELECT แบบมีเงื่อนไข

จากรูป เปนการใชคําสั่ง SELECT เพื่อใหแสดงชื่อของหอง (room Name) จากตารางชื่อ room ภายใตเงื่อนไขที่รหัสของหอง (roomID) จะตองมีคาเทากับ ‘R02’ ซ่ึงกอนการเขาใชคําสั่ง SELECT ตองเรียกใช ฐานขอมูลดวยคําสั่ง use กอน

Operator ที่ใชในคําสั่ง WHERE นอกจากเครื่องหมายทางคณิตศาสตรตางๆ แลวยังประกอบ

ไปดวยคําสั่งอื่นๆ อีก เชน BETWEEN, IN/NOT IN, LIKE, GROUP BY, HAVING, ORDER BY และ LIMIT โดยแตละคําสั่งมีรายละเอียดดังนี ้

Page 69: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

65บทท่ี 4 การใชงานฐานขอมูล MySQL

operator ชื่อ ตัวอยาง คําอธิบาย = เทากับ EmpID=8 ทดสอบวาคาทั้ง 2 เทากัน > มากกวา Average>45.00 ทดสอบวาคาหนึ่งมากกวาอกีคาหนึ่ง < นอยกวา Average<45.00 ทดสอบวาคาหนึ่งนอยกวาอีกคาหนึ่ง >= มากกวาหรือเทากับ Average>=45.00 ทดสอบวาคาหนึ่งมากกวาหรือเทากับอีก

คาหนึ่ง <= นอยกวาหรือเทากับ Average<=45.00 ทดสอบวาคาหนึ่งนอยกวาหรือเทากับอีก

คาหนึ่ง !=หรือ <> ไมเทากับ Salary!=0 ทดสอบวาคาทั้ง 2 ไมเทากนั IS NOT NULL ไมวาง Salary IS NOT

NULL ทดสอบวามีขอมูลอยูในคอลัมน

IS NULL คาวาง Salary IS NULL ทดสอบวาในคอลัมนไมมีขอมูลอยู BETWEEN คาที่อยูระหวาง Average

between 0 and 60.00

ทดสอบวาคานั้นอยูระหวางคา 0 และ 60

IN คาที่อยูในคอลมันที่กําหนด

Name in (“ang”, “pim”)

ทดสอบวาคานั้นอยูในเชตที่กําหนด (ในที่นี้คือตองมีคําวา “ang” หรือ “pim” รวมอยูดวย)

NOT IN คาที่ไมไดอยูในคอลัมนที่กําหนด

Name not in (“ang”,”pim”)

ทดสอบวาคานั้นไมอยูในเชตที่กําหนด (ในทีน่ี้คือตองไมมีคําวา “ang” หรือ “pim” รวมอยูดวย)

LIKE เหมือนกับรูปแบบที่กําหนด

Name like (“ang%”)

ตรวจสอบคาที่เหมือนกับคาที่กําหนด (ในทีน่ี้คือตรวจสอบคาของชื่อที่ขึ้นตนดวยคําวา “ang”)

NOT LIKE ไมเหมือนกับรูปแบบที่กําหนด

Name not like (“ang%”)

ตรวจสอบคาที่ไมเหมือนกบัคาที่กําหนด (ในทีน่ี้คือ ตรวจสอบคาของชื่อที่ไมมีขึ้นตนดวยคําวา “ang”)

Page 70: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

66บทท่ี 4 การใชงานฐานขอมูล MySQL

การเรียกใชขอมูลจากหลายตาราง การเรียกใชขอมูลจากหลายตารางทําได โดยใชคําสั่ง SELECT ใหกําหนดชื่อของตารางแลว

ตามดวย เครื่องหมาย “dot” (.) จากนั้นเขียนคอลัมนที่ตองการจะใหแสดง และที่คําสั่ง FROM ใหระบุตารางที่ตองการ และกาํหนดเงื่อนไขในสวนของ WHERE

ตัวอยาง ในตวัอยางนีจ้ะแสดงการเรียกใชขอมูลจากตาราง 2 ตาราง คือ ตาราง course และตาราง courseprice ของฐานขอมูลช่ือ comlearning โดยตารางทั้ง 2 มีโครงสรางและ ขอมูล ดังนี้

ตาราง course

ตาราง courseprice

Page 71: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

67บทท่ี 4 การใชงานฐานขอมูล MySQL เรียกใชขอมูลจากตาราง course และ courseprice ไดดังรูป

จากรูป แสดงคอลัมน courseid และ coursename จากตาราง course และคอลัมน price จากตาราง courseprice โดยมีเงื่อนไข คือ courseid จากตาราง course ตองเทากับ courseid จากตาราง courseprice

การรวมตารางดวยคําสัง่ JOIN เปนคําสั่งที่ใชสําหรับเลือกขอมูลจาก 2 ตาราง หรือมากกวา โดยคยีในแตละตารางจะม ี

ความสัมพันธกัน การใชคําสั่ง JOIN มีหลายรูปแบบดังนี้ การใช LEFT JOIN เปนการนําเอาขอมูลจาก 2 ตาราง ที่มีความสัมพันธกันผานทางคียมาแสดงผล โดยใชตาราง

ที่อยูทางซายของคําสั่ง JOIN เปนตัวตั้ง จากนั้นจึงเลือกขอมูลจากตารางที่อยูทางขวาของคําสั่ง JOIN ซ่ึงมีคาคียที่ตรงกัน โดยมีรูปแบบดังนี ้

SELECT column FROM tablc1 LEFT JOIN table2 ON table1.field1 compopr table2. field2

โดยที ่ column หมายถึง ช่ือคอลัมนที่ตองการเลือก table1, table2 หมายถึง ช่ือตารางที่ตองการนําขอมูลมา JOIN กัน field1, field2 หมายถึง ช่ือคอลัมนที่ใชในการ JOIN จะตองเปน

ขอมูลชนิดเดียวกัน compopr หมายถึง Operator ที่ใชในการเปรยีบเทียบ

Page 72: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

68บทท่ี 4 การใชงานฐานขอมูล MySQL

ตัวอยาง Select course.courseid, course.coursename, courseprice.price from course left join courseprice on course.courseid = courseprice.courseid; การใช RIGHT JOIN

เปนการนําเอาขอมูลจากทั้ง 2 ตาราง ที่มีความสัมพันธกันผานทางคียมาแสดงผล เชนเดยีวกับคําสั่ง LEFT JOIN แตแสดงโดยใชตารางทีอ่ยูทางขวาของคําสั่ง JOIN เปนตัวตั้ง แลวเลือกขอมูลจากตารางที่อยูทางซายของคําสั่ง JOIN ซ่ึงมีคาคียที่ตรงกนั โดยมีรูปแบบดังนี ้

SELECT column FROM table1 RIGHT JOIN table2 ON table1.field1 compopr table2.field2

คาตัวเลือกตางๆ ดูไดจากหัวขอการใช LEFT JOINE ตัวอยาง Select course.courseid, course.coursename, courseprice.price from course right join courseprice on course.courseid = courseprice.courseid; การปรับปรงุขอมูลดวยคําสัง่ UPDATE การปรับปรุงขอมูลมีรูปแบบคําสั่ง ดังนี้

UPDATE tablename SET column1=expression1, column2=expression2,... [WHERE condition] [LIMIT number]

โดยที ่ tablename หมายถึง ช่ือตาราง column หมายถึง ช่ือคอลัมน expression หมายถึง รูปแบบการคํานวณ หรือคาใหมที่ตองการ

กําหนด condition หมายถึง เงื่อนไขของขอมูลที่ตองการจะเปลี่ยน number หมายถึง ขอบเขตของการปรับปรุง

Page 73: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

69บทท่ี 4 การใชงานฐานขอมูล MySQL ตัวอยางที่ การปรับปรุงขอมูลในตาราง courseprice ดวยคําสั่ง UPDATE

จากรูป เปนการปรับปรุงตาราง courseprice ที่ courseid = ‘DADJV2’ จากราคาเดมิ คือ

1500 เปลี่ยนเปน 3500 การลบแถวจากตารางดวยคาํสั่ง DELETE คําสั่ง DELETE เปนคําสั่งที่ใชในการลบแถวออกจากตาราง โดยสามารถระบุเงื่อนไขของ

แถวที่ตองการลบได มีรูปแบบของคําสั่ง ดังนี ้

DELETE FROM tablename [WHERE condition] [LIMIT number]

โดยที ่ tablename หมายถึง ช่ือตาราง condition หมายถึง เงื่อนไขที่กําหนด number หมายถึง จํานวนแถวทีต่องการลบ

ตัวอยาง การลบแถวออกจากตารางตามเงือ่นไขที่กําหนด

จากรูปเปนการลบแถวที่มี courseid = ‘DADJV2’ ออกจากตาราง course

Page 74: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

70บทท่ี 4 การใชงานฐานขอมูล MySQL

การลบตาราง และฐานขอมูลดวยคําสัง่ DROP DROP เปนคําสั่งที่ใชสําหรับลบตารางออกจากฐานขอมลู หรือใชลบฐานขอมูล โดยมี

รูปแบบ ดังนี ้

DROP TABLE tablename; หรือ DROP DATABASE databasename;

โดยที ่ TABLE หมายถึง คําสั่งสําหรับลบตาราง tablename หมายถึง ช่ือตารางที่ตองการลบ DATABASE หมายถึง คําสั่งสําหรับลบฐานขอมูล databasename หมายถึง ช่ือฐานขอมูลที่ตองการลบ

ตัวอยาง การลบตารางออกจากฐานขอมูลดวยคําสั่ง DROP TABLE Mysql> Drop table course; ตัวอยาง การลบฐานขอมูลดวยคําสั่ง DROP DATABASE Mysql> Drop database mydata;

จากตัวอยาง เปนการใชคําสัง่ DROP DATABASE เพื่อลบฐานขอมูล จะทําใหตารางทั้งหมดที่อยูใน ฐานขอมูล mydata นี้ถูกลบไปดวย ซ่ึงการลบนี้เปนการลบแบบถาวรไมสามารถกูขอมูลคืนได

Page 75: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

71บทท่ี 4 การใชงานฐานขอมูล MySQL สรุปคําสัง่ SQL

SQL Statements ALTER TABLE ALTER TABLE table_ name [ MODIFY | ADD | DROP ] [ colimn _ name ] [ datatype | NULL | NOT | NOT NULL ] [ ADD | DROP ] [ CONSTRAINT constraint _ name ] คําอธิบาย : แกไขโครงสรางของเทเบิ้ล COMMIT

COMMIT [ transaction ] คําอธิบาย : บันทึกทรานแซกซั่นจากบัฟเฟอรฐานขอมูลเก็บลงในฐานะขอมูล CREATEINDEX

CREATE INDEX index _ name ON table _ name ( column _ name ) คําอธิบาย : สรางอินเด็กซบนคอลัมนของเทเบิล CREATE TABLE CREATE TABLE table _ name ( column _ name 1 datatype [ NULL | NOT NULL ], column _ name 2 datatype [ NULL | NOT NULL ]… ) คําอธิบาย : สรางเทเบิล CREATE TABLE AS CREATE TABLE table _ name AS SELECT column _ name 1, column _ name 2,...

Page 76: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

72บทท่ี 4 การใชงานฐานขอมูล MySQL

FROM table _ name [ WHERE conditions ] [ GROUP BY column _ name 1, column _ name 2,...] [ HAVING conditions ] คําอธิบาย : สรางเทเบิลดวยขอมูลจากเทเบิลอ่ืน CREATE VIEW

CREATE VIEW AS SELECT column _ name 1, column _ name 2,... FROM table _ name [ WHERE conditions ] [ GROUP BY column _ name 1 column _ name 2,...] [ HAVING cinditions ] คําอธิบาย : สรางวิว DELETE

DELETE FROM table _ name [ WHERE conditions] คําอธิบาย : ลบแถวขอมูลออกจากเทเบิล DROP INDEX

DROP INDEX index _ name คําอธิบาย : ยกเลิกอินเด็กซของเทเบิล

Page 77: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

73บทท่ี 4 การใชงานฐานขอมูล MySQL DROP TABLE

DROP TABLE table _ name คําอธิบาย : ยกเลิกเทเบิลทีส่รางไว DROP VIEW

DROP VIEW view _ name คําอธิบาย : ยกเลิกววิ GRANT

GRANT privilegel , privilege 2,... TO user _ name

คําอธิบาย : กาํหนดสิทธิการใชงานฐานขอมูล INSERT INSERT INTO table _ name [( column _ name 1, column _ name 2,... VALUES ( ‘ valuel’, ‘ value2’ , ...)

คําอธิบาย : เพิ่มขอมูลลงในเทเบิล INSERT...SELECT

INSERT INTO table _ name SELECT column _ name 1, column _ name 2,...)] FROM table _ name [ WHERE conditions ]

คําอธิบาย : ใสขอมูลลงในเทเบิลที่มีอยูแลว โดยดึงขอมลูที่ตองการมาจากเทเบิลอ่ืน

Page 78: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

74บทท่ี 4 การใชงานฐานขอมูล MySQL REVOKE

REVOKE privilegel, privilege 2,... FROM user _ namr

คําอธิบาย : เรียกสิทธิการใชงานฐานขอมลูคืนจากผูใช

ROLLBACK

ROLLBACK [ savepoint _ name ] คําอธิบาย : ยกเลิกทรานแซกซั่น SAVEPOINT

SAVEPOINT savepoint _ name คําอธิบาย : กาํหนดจุดเวลาของทรานแซกซั่น

SELECT

SELECT [ DISTINCT ] column _ name 1, column _ name 2,... FROM table _ name 1, table _ name 2,... [ WHERE conditions ] [ GROUP by cilumn _ name 1, column _ name 2,...] [ HAVING conditions ] [ ORDER by column _ name 1, column _ name 2,...]

คําอธิบาย : สอบถามขอมูลจากเทเบิลเดยีวหรือหลายเทเบิล UPDATE

UPDATE tablr _ name SET column _ name 1 = ‘ value 1’ , column _ name 2 = ‘ value 2’ , [ WHERE conditions ]

คําอธิบาย : ปรับปรุงหรือแกไขขอมูลในเทเบิล

Page 79: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

75บทท่ี 4 การใชงานฐานขอมูล MySQL

SQL CLAUSES

SELECT

SELECT หรือ SELECT column _ name 1, cilumn _ name 2,... หรือ SELECT DISTINCT ( column _ name 1 ) หรือ SELECT COUNT ( * )

คําอธิบาย : กาํหนดอลัมนทีต่องการแสดงผล

FROM FROM table _ name 1 , table _ name 2,...

คําอธิบาย : กาํหนดเทเบิลที่ตองการดึงขอมูลจากฐานขอมูลมาแสดง WHERE

WHERE < search _ condition > คําอธิบาย : กาํหนดเงื่อนไขในการเลือกแถวขอมูลที่ตองการมาแสดง

GROUP BY

GROUP BY group _ column 1 , group _ column 2,... คําอธิบาย : จดัขอมูลที่มีอยูออกเปนกลุม

HAVING

HAVING < search _ condition > คําอธิบาย : ใชกําหนดเงื่อนไขใหกับกลุมดวย GROUP BY

Page 80: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

76บทท่ี 4 การใชงานฐานขอมูล MySQL ORDER BY

ORDER BY { column _ name , column _ name 2,...[ ASCIDESC ]} [ 1, 2,...,n ]

คําอธิบาย : เรียงลําดับแถวขอมูลตามคอลัมนที่ระบุไวหลัง ORDER BY กอนแสดงผล บนหนาจอ

Page 81: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

77บทท่ี 4 การใชงานฐานขอมูล MySQL การใชโปรแกรมจัดการฐานขอมูลดวย PhpMyAdmin PhpMyAdmin เปนเครื่องมือชวยในการใชงานระบบจัดการฐานขอมูล MySQL ชนิดหนึ่ง มีความสามารถในการบริหารการทํางานของ Server และชวยในการสรางฐานขอมูลของ MySQL จุดเดนอกีประการของ PhpMyAdmin คือ สนับสนุนการทํางานรวมกันของ ฐานขอมูล MySQL และ ภาษา PHP ความสามารถของโปรแกรม PhpMyAdmin มีดังนี ้

• เปนโปรแกรมฟรีแวร • สามารถออกแบบ และสรางฐานขอมูลได • สามารถออกแบบ สราง และแกไขตารางได • จัดการการกําหนดการเชื่อมโยงระหวางฟลด • สามารถบริหารจัดการขอมูลในฐานขอมูลไดเปนอยางด ี• แปลงขอมูลไดมากกวา 41 ภาษา

การเรียกใชโปรแกรม PhpMyAdmin ทําการเปดโปรแกรม Internet Explorer แลวเรียก URL http://localhost/phpmyadmin/ ก็จะปรากฏหนาจอภาพดงัตัวอยาง

Page 82: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

78บทท่ี 4 การใชงานฐานขอมูล MySQL การสรางฐานขอมูล

1. คลิกเลือกที่ (ฐานขอมูล)............ใน Listbox

2. พิมพช่ือฐานขอมูลที่ตองการในชองของ “สรางฐานขอมูลใหม” ในทีน่ีก้ําหนดชื่อเปน “library”

3. คลิกที่ปุม “สราง” โปรแกรมจะทําการสรางฐานขอมูลที่ช่ือ “library” แตยังไมมตีารางดังรูป

Page 83: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

79บทท่ี 4 การใชงานฐานขอมูล MySQL

การสรางตาราง 1. ที่หนาแรกของการใชงานโปรแกรม จอภาพทางซายมือคลิกเลือกฐานขอมูลที่ตองการ ในที่นี้เลือก

“library”

2. พิมพช่ือตารางในชอง “ช่ือ” ในที่นีก้ําหนดใหสรางตารางชื่อ “book” แลวกําหนดจํานวนฟลด เปน 6 จากนั้นคลิกที่ปุม “ลงมือ”

3. จะปรากฏหนาจอใหกรอกขอมูล โดยตัวอยางนี้จะเปนการการสรางตาราง “book” เพื่อเก็บขอมูลโดยมีรายละเอียดดังนี ้

Field Name Data Type Description

Barcode int(5) รหัสหนังสือ Title varchar(50) ช่ือหนังสือ Author varchar(40) ช่ือผูแตง Price varchar(20) ราคา Type varchar(40) ประเภทหนังสือ Year varchar(4) ปที่พิมพ

Page 84: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

80บทท่ี 4 การใชงานฐานขอมูล MySQL

4. เมื่อกรอกขอมลูครบแลว คลิกที่ปุม “บันทกึ” จะปรากฏขอมูลของตาราง “book” ดังรูป

Page 85: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

81บทท่ี 4 การใชงานฐานขอมูล MySQL

การเพิ่มขอมูลลงในตาราง 1. ที่หนาแรกของการใชงานโปรแกรม จอภาพทางซายมือคลิกเลือกฐานขอมูลที่ตองการ ในที่นี้เลือก

“library” จากนั้นเลือกตารางที่ตองการเพิม่ขอมูล ในที่นี้เลือก “book” 2. จากนั้นเลือกทีเ่มนู “แทรก” เพื่อทําการเพิ่มขอมูล

3. กรอกขอมูลตามตองการ เสร็จแลวคลิกที่ปุม “ลงมือ”

4. จะปรากฏหนาแสดงรายละเอยีดการเพิ่มขอมูลใหมดังรูป

Page 86: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

82บทท่ี 4 การใชงานฐานขอมูล MySQL

การเรียกดูขอมูลในตาราง

1. ที่หนาแรกของการใชงานโปรแกรม จอภาพทางซายมือคลิกเลือกฐานขอมูลที่ตองการ ในที่นี้เลือก “library”จากนั้นเลือกตารางที่ตองการเพิม่ขอมูล ในที่นี้เลือก “book”

2. จากนั้นเลือกทีเ่มนู “เปดด”ู เพื่อทําการเรียกดูขอมูล

Page 87: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

83บทท่ี 4 การใชงานฐานขอมูล MySQL

รูปแสดงขอมูลภายในตาราง book

การแกไขขอมูลในตาราง

1. ที่หนาแรกของการใชงานโปรแกรม จอภาพทางซายมือคลิกเลือกฐานขอมูลที่ตองการ ในที่นี้เลือก “library” จากนั้นเลือกตารางที่ตองการเพิม่ขอมูล ในที่นี้เลือก “book”

2. จากนั้นเลือกทีเ่มนู “เปดด”ู เพื่อทําการเรียกดูขอมูล กอนทําการแกไข 3. เลือกแถวของขอมูลที่ตองการแกไขโดยการคลิกที่ “แกไข” หนาแถวขอมูลที่ตองการ

4. จากนั้นโปรแกรมจะแสดงรายละเอียดของขอมูล ใหทําการแกไขตามตองการเสร็จแลวคลิกที่ “ลงมือ”

Page 88: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

84บทท่ี 4 การใชงานฐานขอมูล MySQL

รูปแสดงขอมูลที่ไดทําการเปลี่ยนแปลงภายในตาราง book

Page 89: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

85บทท่ี 4 การใชงานฐานขอมูล MySQL การลบขอมูลในตาราง

1. ที่หนาแรกของการใชงานโปรแกรม จอภาพทางซายมือคลิกเลือกฐานขอมูลที่ตองการ ในที่นีเ้ลือก “library” จากนั้นเลือกตารางที่ตองการเพิม่ขอมูล ในที่นี้เลือก “book” 2. จากนั้นเลือกที่เมนู “เปดด”ู เพื่อทําการเรียกดูขอมูล กอนทําการแกไข 3. เลือกแถวของขอมูลที่ตองการลบโดยการคลิกที่ “ลบ” หนาแถวขอมูลที่ตองการ

4. จากนั้นโปรแกรมจะทําการแสดงหนาตางยืนยนัการลบขอมูลใหตอบ OK

รูปภาพแสดงขอความวาไดทําการลบขอมูลเรียบรอยแลว

Page 90: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

โปรแกรม Dreamweaver MX นั้นยังมีสวนที่ชวยในการพัฒนาโปรแกรมออนไลนไดงายและรวดเร็วมากขึ้นดวยเครื่องมือตางๆ ในบทนี้จะแนะนําการจัดการฐานขอมูลดวยคําสั่งสําเร็จรูปในโปรแกรม Dreamweaver เพื่อความสะดวกรวดเรว็และงายตอการพัฒนาโปรแกรมออนไลน การกําหนดโลคอลไซตในโปรแกรม Dreamweaver เพื่อทํางานรวมกับ PHP และ MySQL กอนการทํางานกับฐานขอมลูและภาษาคอมพิวเตอรเราจาํเปนจะตองกาํหนดลักษณะและชนิดของ โลคอลไซตใหสามารถรองรับการใชภาษา PHP รวมทั้งเชื่อมโยงกับฐานขอมูล MySQL เสียกอน โดยมีขั้นตอนดังนี ้

1. ที่โปรแกรม Dreamweaver MX เลือกคําสั่ง Site > Manage Sites จะปรากฏกรอบโตตอบ Manage Sites

2. คลิกที่ปุม New เลือกที่คําสั่ง Site จะปรากฏกรอบโตตอบ Site Definition ตั้งชื่อ Site ที่ตองการใน ที่นี้ตั้งเปน LIBRARY จากนั้นคลิกที่ปุม Next

5 บทที่ การจัดการฐานขอมูลดวยคําสั่งในโปรแกรม Dreamweaver

Page 91: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

87บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver

3. เลือก Server Technology เปน PHP MySQL จากนั้นคลิกที่ปุม Next

Page 92: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

88บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver

4. เลือกแหลงเกบ็ขอมูลภายในเครื่องในที่นีค้ือ C:\Appserv\www\library\ จากนัน้คลิกปุม Next

5. กําหนด URL ที่จะใชแสดงผลของเว็บไซตที่สรางขึ้นในที่นี้ใส http://localhost/library/ จากนัน้ คลิกที่ปุม Next

Page 93: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

89บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver

6. ทําการเลือก No แลวคลิกที่ปุม Next

7. ระบบจะทําการแสดงรายละเอียดและขอมูลของไซตที่สรางขึ้นใหมจากนั้นคลิกที่ปุม Done

Page 94: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

90บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver

8. จะปรากฏชื่อไซตใหมในกรอบโตตอบ Manage Sites คลิกที่ปุม Done เพื่อออกจากการ กําหนดโลคอลไซต

การกําหนดการเชื่อมตอกับฐานขอมูล

1. เร่ิมตนที่โปรแกรม Dreamweaver MX คลิกเมนู File > New จะปรากฏไดอะล็อก New Document ขึ้นมา ใหคลิกแท็บ General คลิกเลือก Dynamic Page > PHP

2. เปดพาเนล Database โดยเลือกคําสั่ง Window > Database จากนั้นคลิกที่ไอคอน เลือก MySQL Connect

3. จะปรากฏกรอบโตตอบ MySQL Connect ใหกําหนดคาโดยมีรายละเอียดดังรูป

4. เมื่อกําหนดรายละเอียดตามตองการแลวใหคลิกปุม OK 5. เมื่อกําหนดการเชื่อมโยงถูกตอง จะปรากฏชื่อตัวแปรทีใ่ชติดตอฐานขอมูลที่ตั้งไว ในแท็บของ

Databases

Page 95: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

91บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver

การสรางระบบแสดงผลขอมูล

ในสวนของระบบแสดงขอมูลนี้จะประกอบดวยไฟล 1 ไฟล ดังรูป

กอนอื่นทําการสรางไฟล PHP ใหมแลวทาํการบันทึกชือ่ show_book.php แลวทําการสรางตารางสําหรับแสดงผลขอมูล โดยจะเปนการแสดงขอมูลทีละหลายๆ เร็คคอรดลงในเว็บเพจ พรอมทั้งมีการปรับแตงรูปแบบโดยใชเครื่องมือของ Dreamweaver MX กอนดงัรูป

1. เปดพาเนล Sever Behaviors โดยเลือกคําสั่ง Window > Sever Behaviors จากนั้นคลิกที่ไอคอน เลือก Recordset

2. จะปรากฏกรอบโตตอบ Recordset โดยมีรายละเอียดดังนี้

Page 96: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

92บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver

Name กําหนดชื่อเรคคอรดเซ็ตที่ตองการ ในที่นีก้าํหนดเปน show_book Connection ช่ือฐานขอมูลที่ตองการเชื่อมตอ โดยสรางมาแลวในหวัขอการเชื่อมตอ ฐานขอมูลในที่นี ้เลือก conn_library SQL เปนคําสั่ง SQL โดยคําสั่งจะเกิดจากการคลกิปุมคําสั่ง หรือพิมพเพิ่มเองก็ได Variables กําหนดชื่อของตัวแปร และคําสั่งในการรับคาตัวแปร Database Item เลือกรูปแบบที่ตองการดูรายละเอียดของตาราง Add to SQL รูปแบบคําสั่งที่ตองการมีอยู 3 ปุมใหเลือกคือ Select, Where และ Order By ซ่ึงเปนคําสั่งภาษา SQL โดยในที่นี้เลือกคําสั่ง Select 3. คลิกปุม OK จะปรากฏเรคคอรดเซ็ตที่กําหนดใหในแท็บ Bindings ดังรูป

Page 97: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

93บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver

4. จากนั้นแทรกคําสั่งสําหรับแสดงผลขอมูลลงในตารางโดยการคลิกเลอืกและแทรกฟลดตาราง เพื่อแสดงผลขอมูล ตามขั้นตอนทําจนครบทุกชองตาราง ดังรูป

5. จากนั้นคลิกเมาสใหเคอรเซอรอยูในบริเวณบรรทัดที่แสดงผล หลังจากนั้นใหคลิกเลือกแท็ก <TR> บน Tag Selector

6. คลิกที่เมนู Window > Server Behaviors หลังจากนัน้ใหคลิกเครื่องหมายบวก เพื่อเลือกเมนู

Repeat Region เมื่อปรากฏไดอะล็อก Repeat Region ใหกําหนดคาตางๆ ดังรายละเอียดดังรูปดานลางนี้ หลังจากนัน้ใหคลิกปุม OK

Page 98: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

94บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver

7. จากนั้นทําการบันทึก แลวกดปุม F12 จะแสดงผลลัพธบนบราวเซอรดังรูป

การสรางระบบเพิ่มขอมลู ระบบเพิ่มขอมูล คือเว็บเพจที่ทําหนาทีใ่นการรับขอมูลจากผูใชผานฟอรม และบนัทึกการกรอกขอมูลเขาจัดเก็บในฐานขอมูล ในที่นี้จะประกอบดวยไฟล 2 ไฟล ดังรูป

เร่ิมตนที่โปรแกรม Dreamweaver MX คลิกเมนู File > New จะปรากฏไดอะล็อก New Document ขึ้นมา ใหคลิกแท็บ General คลิกเลือก Dynamic Page > PHP หลังจากนั้นคลิกปุม Create บันทึกเปนไฟล insert.php แลวทําการสรางฟอรมสําหรับรับขอมูลโดยใชเครื่องมือของ Dreamweaver MX กอนดงัรูป

Page 99: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

95บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver

1. เปดไดอะล็อก Properties โดยคลิกเมนู Window > Properties หลังจากนั้นใหพิมพช่ือฟอรม frmAdd ที่ชอง Form name

2. เปดแถบ Server Behaviors โดยคลิกเมนู Window > Server Behaviors แลวคลิกที่ปุมเครื่องหมายบวก เลือกรายการ Insert Record จากเมน ูดังรูป

3. เมื่อปรากฏไดอะล็อก Insert Record ขั้นตอนตอจากนี้ กจ็ะเปนการกําหนดคาในไดอะล็อก Insert Record ซ่ึงรายละเอียดการกาํหนดคาตางๆ มีดังตอไปนี ้

Page 100: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

96บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver

4. ทําการบันทึกไฟล insert.php ก็เปนอันเสร็จขั้นตอนการแทรก Insert Record Server behavior 5. ขั้นตอนสุดทายของระบบเพิม่ขอมูลคือ การสรางไฟลแสดงผลการทํางาน ซ่ึงจะประกอบดวย

ขอความ แสดงใหผูใชทราบวาการกรอกขอมูลเสร็จเรียบรอยแลวเทานัน้ ใหสรางเวบ็เพจขึ้นมาและพิมพขอความสําหรับแสดงผลการเพิ่มขอมูล บันทึกเปนไฟลช่ือ insert_ok.php

6. เร่ิมตนโดยใชโปรแกรม Dreamweaver MX เปดไฟล insert.php ขึ้นมา แลวกดปุม F12 โปรแกรม Internet Explorer จะถูกเปดขึ้นมาเรียกใชงานไฟล insert.php หลังจากนัน้ใหทดลองกรอกขอมูลและคลิกปุม Insert เพื่อบันทึกขอมูล เสร็จแลวรอดูผลที่จะแสดงจากไฟล insert_ok.php การสรางระบบแกไขขอมูล ระบบแกไขขอมูล คือระบบเว็บเพจที่จัดทําขึ้นเพื่อใหผูใชสามารถเรียกดูขอมูลเร็คคอรดเดิมจากตารางของฐานขอมูล และผูใชสามารถแกไขปรับปรุงขอมูลใหเปนปจจุบัน หลังจากนั้นก็สามารถบันทึกขอมูลที่แกไขแลวลงในตารางของฐานขอมูลได

Page 101: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

97บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver

กอนอื่นทําการสรางไฟล PHP ใหมแลวทาํการบันทึกชือ่ update.php แลวทําการสรางฟอรมสําหรับแกไขขอมูลโดยใชเครื่องมือของ Dreamweaver MX กอนดังรูป

1. เปดไดอะล็อก Properties โดยคลิกเมนู Window > Properties หลังจากนั้นใหพิมพช่ือฟอรม frmUpdate ที่ชอง Form name

ขั้นตอนการสราง recordset สําหรับคนหาขอมูลเร็คคอรดท่ีตองการแกไข 1. คลิกที่เมนู Window > Server Behaviors หลังจากนัน้ใหคลิกปุมเครื่องหมายบวก และเลือก

รายการ Recordset

Page 102: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

98บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver

2. เมื่อปรากฏไดอะล็อก Recordset ขึ้นมา ใหกําหนดคาตางๆ ดังรายละเอยีดขางลางนี้ หลังจากนัน้คลิกปุม OK

3. บันทึกไฟล update.php ขั้นตอนการแทรกสคริปตสาํหรับแสดงขอมูลเดิมในฟอรม HTML

1. เร่ิมตนเปดโปรแกรม Dreamweaver MX ไปที่ไฟล update.php คลิกที่เมนู Window > Bindings หลังจากนัน้ใหคลิกเครื่องหมายบวก หนารายการ Recordset (update_book) จะปรากฏชื่อฟลด ใหคลิกเลือก และแทรกฟลดลงในออ็บเจ็คตของฟอรมเพื่อแสดงผลขอมูล ดังรูปดานลาง

Page 103: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

99บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver

2. บันทึกไฟล update.php ก็เปนอันเสร็จการแสดงผลขอมูลลงในฟอรม

การแทรก Update Record Server Behavior ลงในเว็บเพจ การแทรก Update Record Server Behavior ก็คือการแทรกสคริปต PHP เพื่อส่ังใหบนัทึกการแกไขขอมูลลงตารางของฐานขอมูล

1. เร่ิมตนที่โปรแกรม Dreamweaver MX เปดไฟล update.php หลังจากนั้นใหคลิกเมาสที่ตําแหนงใดๆ ภายใตเสนประสีแดง ที่เปนขอบเขตของฟอรม

2. คลิกเมนู Insert > Form > Hidden Field หลังจากนัน้คลิกเมาสที่อ็อบเจ็คต Hidden Field จะปรากฏไดอะลอ็ก Properties ของ Hidden Field (หากไมปรากฏไดอะลอ็ก Properties ใหคลิกที่เมนู Windows > Properties) และใหกําหนดคาในไดอะล็อกดังตอไปนี ้

3. เปดแถบ Server Behaviors โดยคลิกเมนู Window > Server Behaviors แลวคลิกที่ปุมเครื่องหมายบวก เลือกรายการUpdate Record จากเมน ู 4. เมื่อปรากฏไดอะล็อก Update Record ใหกําหนดคาตางๆ มีดังตอไปนี ้

Page 104: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

100บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver

5. บันทึกไฟล update.php ก็เปนอันเสร็จขั้นตอนการแทรก Update Record Server behavior การสงและรับคา URL Parameter เพื่อระบุเร็คคอรดท่ีตองการแกไข ขั้นตอนนี้ ก็คอืการทําใหไฟลเว็บเพจ 2 ไฟล show_book.php และ update.php สามารถเชื่อมโยงเพื่อสงและรับคา URL Parameter กันไดนั่นเอง

1. เร่ิมตนที่โปรแกรม Dreamweaver MX เปดไฟล show_book.php ขึ้นมา แลวลากเมาสทําไฮไลตขอความ "แกไข" ดังรูป

2. เปดไดอะล็อก Properties โดยคลิกที่เมนู Window > Properties จะปรากฏไดอะล็อก Properties ขึ้นมา ใหคลิกไอคอนรูป Folder สีเหลือง (Browse for File) ที่ตําแหนงชอง Link เพื่อสรางไฮเปอรลิงคสําหรับ URL Parameter ไปหาไฟล update.php

Page 105: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

101บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver 3. เมื่อปรากฏไดอะล็อก Select File ขึ้นมา ใหคลิกเลือกไฟล update.php เปนการกําหนดวาจะสงคา

URL Parameter ไปที่ไฟลนี ้ หลังจากนัน้ใหคลิกปุม Parameters ที่ดานลางของไดอะล็อก Select File เพื่อกําหนดการสงคา URL Parameter

4. เมื่อปรากฏไดอะล็อก Parameters ขึ้นมา ที่ชอง Name ใหพิมพช่ือ URL Parameter ที่ตองการจะสงไป ในทีน่ี้ใหเราพิมพ key_barcode หลังจากนัน้ใหไปที่ชอง Value เพื่อกําหนดคาที่จะสงไป ในที่นี้เราตองการกําหนดคาใหเปลีย่นไปแบบ Dynamic ตามขอมูลที่แสดงในแตละเร็คคอรด ใหคลิกปุม Dynamic Data ที่ชอง Value

5. เมื่อปรากฏไดอะล็อก Dynamic Data ขึ้นมา ใหคลิกเลอืกฟลด Barcode จาก Recordset (show_book) หลังจากนัน้คลิกปุม OK

6. บันทึกไฟล show_book.php ก็เปนเสร็จขัน้ตอนการกําหนดการสงคา URL Parameter

Page 106: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

102บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver 7. ขั้นตอนสุดทายคือกําหนดใหไฟล update.php รับคา URL Parameter ที่สงมาจากไฟล

show_book.php ซ่ึงวิธีการทํานั้น เราไดทําผานมาแลวใหยอนกลับไปดูในขั้นตอน “การสราง recordset สําหรับคนหาขอมูลเร็คคอรดที่ตองการแกไข" จะเห็นไดวาเราไดมีการเรียกใช URL Parameter “key_barcode” ซ่ึงก็คือคา URL Parameter ที่สงไปจากไฟล show_book.php นั่นเอง การแสดงผลลัพธการแกไขขอมูล ขั้นตอนสุดทายของระบบแกไขขอมูลคือ การสรางไฟลแสดงผลการทํางาน ซ่ึงจะประกอบดวยขอความ แสดงใหผูใชทราบวาการแกไขขอมูลเสร็จเรียบรอยแลวเทานัน้ ใหสรางเวบ็เพจขึ้นมาและพิมพขอความสําหรับแสดงผลการแกไขขอมูล บันทึกเปนไฟล update_ok.php

การใชงานระบบแกไขขอมูล เร่ิมตนโดยใชโปรแกรม Dreamweaver MX เปดไฟล show_book.php ขึ้นมา แลวกดปุม F12 โปรแกรม Internet Explorer จะถูกเปดขึ้นมาเรียกใชงานไฟล show_book.php หลังจากนั้นใหคลิกปุม "แกไข" เพื่อแกไขขอมูลแตละเร็คคอรด เสร็จแลวคลิกปุม Edit เพื่อบันทึกขอมูล รอดูผลที่จะแสดงจากไฟล update_ok.php การสรางระบบลบขอมลู

Page 107: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

103บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver ขั้นตอนการสรางฟอรมและตารางแสดงขอมูลท่ีตองการลบ 1. เร่ิมตนที่โปรแกรม Dreamweaver MX คลิกเมนู File > New จะปรากฏไดอะล็อก New Document ขึ้นมา ใหคลิกแท็บ General คลิกเลือก Dynamic Page > PHP หลังจากนั้นคลิกปุม Create บันทึกเปนไฟล delete.php 2. แทรกฟอรมและตาราง ปรับแตงรูปแบบของเว็บเพจโดยใช Background Image ไฟลรูปภาพ รวมทั้งขอความดังรูป

3. คลิกวางเมาสภายในเสนประสีแดงของฟอรม และคลิกแท็ก <FORM> ที่ Tag Selector 4. เปดไดอะล็อก Properties โดยคลิกเมนู Window > Properties หลังจากนั้นใหกาํหนดคณุสมบัติของฟอรม HTML ในชอง Form name เปน "frmDelete" และ Method เปน "POST" ดังรูป

การสราง Recordset เพื่อคนหาขอมูลเร็คคอรดท่ีตองการลบ ขั้นตอนนี้จะเปนการคนหาเอาขอมูลเร็คคอรดที่ตองการลบ เพื่อนําเอามาแสดงในตารางใหผูใชยนืยันหรือยกเลิกการลบ 1. คลิกที่เมนู Window > Server Behaviors หลังจากนั้นใหคลิกปุมเครือ่งหมายบวก และเลือกรายการ Recordset

Page 108: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

104บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver

2. เมื่อปรากฏไดอะล็อก Recordset ขึ้นมา ใหกําหนดคาตางๆ ดังรายละเอยีดขางลางนี้ หลังจากนัน้คลิกปุม OK

การแสดงผลขอมูลเพื่อยืนยันหรือยกเลิกการลบ ขั้นตอนนี้จะเปนการแทรกสคริปตสําหรับนําเอาฟลดจากการสราง Recordset ในขั้นตอนการคนหาขอมูลมาแสดงผลในฟอรมของเว็บเพจ เพื่อแสดงขอมลูเพื่อยืนยนักอนที่จะลบ 1. เร่ิมตนที่ไฟล delete.php คลิกที่เมนู Window > Bindings หลังจากนั้นใหคลิกเครื่องหมายบวก หนารายการ Recordset จะปรากฏชื่อฟลด ใหคลิกเลือกและแทรกฟลดลงในออ็บเจ็คตของฟอรมเพื่อแสดงผลขอมูล ดังรูป

Page 109: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

105บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver

2. บันทึกไฟล delete.php ก็เปนอันเสร็จการแสดงผลขอมูลลงเว็บเพจ การแทรกสคริปต Delete Record Server Behavior การแทรก Delete Record Server Behavior เปนการแทรกสคริปต PHP สําหรับการลบขอมูลออกจากตารางของฐานขอมูล

1. เร่ิมตนที่โปรแกรม Dreamweaver MX เปดไฟล delete.php หลังจากนั้นใหคลิกเมาสที่ตําแหนงใดๆ ภายใตเสนประสีแดง ที่เปนขอบเขตฟอรมของการลบขอมูล

2. คลิกเมนู Insert > Form > Hidden Field คลิกเมาสที่อ็อบเจ็คต Hidden Field จะปรากฏไดอะล็อก Properties ของ Hidden Field (หากไมปรากฏไดอะล็อก Properties ใหคลิกที่เมนู Windows > Properties) และใหกําหนดคาในไดอะล็อกดงัตอไปนี ้

3. เปดแถบ Server Behaviors โดยคลิกเมนู Window > Server Behaviors แลวคลิกที่ปุมเครื่องหมายบวก เลือกรายการ Delete Record จากเมน ู

Page 110: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

106บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver

4. เมื่อปรากฏไดอะล็อก Delete Record ใหเรากําหนดคาในไดอะล็อก Delete Record กําหนดคาตางๆ ดังตอไปนี้

5. บันทึกไฟล delete.php ก็เปนอันเสร็จขัน้ตอนการแทรก Delete Record Server behavior การสงและรับคา URL Parameter เพื่อคนหาขอมูลเร็คคอรดท่ีตองการลบ ขั้นตอนนี้ ก็คอืการทําใหไฟลเว็บเพจ 2 ไฟล show_book.php และ delete.php สามารถเชื่อมโยงเพื่อสงและรับคา URL Parameter กันไดนั่นเอง

1. เร่ิมตนที่โปรแกรม Dreamweaver MX เปดไฟล show_book.php ขึ้นมา แลวลากเมาสทําไฮไลตขอความ "ลบ"

Page 111: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

107บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver

2. เปดไดอะล็อก Properties โดยคลิกที่เมนู Window > Properties จะปรากฏไดอะล็อก Properties ขึ้นมา ใหคลิกไอคอนรูป Folder สีเหลือง (Browse for File) ที่ตําแหนงชอง Link เพื่อสรางไฮเปอรลิงคสําหรับ URL Parameter ไปหาไฟล delete.php

3. เมื่อปรากฏไดอะล็อก Select File ขึ้นมา ใหคลิกเลือกไฟล delete.php เปนการกําหนดวาจะสงคา URL Parameter ไปที่ไฟลนี ้ หลังจากนัน้ใหคลิกปุม Parameters ที่ดานลางของไดอะล็อก Select File เพื่อกําหนดการสงคา URL Parameter

4. เมื่อปรากฏไดอะล็อก Parameters ขึ้นมา ที่ชอง Name ใหพิมพช่ือ URL Parameter ที่ตองการจะสงไป ในทีน่ี้ใหเราพิมพ Barcode หลังจากนั้นใหไปที่ชอง Value เพื่อกําหนดคาที่จะสงไป ในที่นี้เราตองการกําหนดคาใหเปลีย่นไปแบบ Dynamic ตามขอมูลที่แสดงในแตละเร็คคอรด ใหคลิกปุม Dynamic Data ที่ชอง Value

Page 112: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

108บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver

คาของไดอะลอ็ก คาที่กําหนด Name Barcode Value <?php echo $row_show_book['Barcode']; ?>

5. บันทึกไฟล show_book.php ก็เปนเสร็จขั้นตอนการกําหนดการสงคา URL Parameter 6. ขั้นตอนสุดทายคือกําหนดใหไฟล delete.php รับคา URL Parameter ที่สงมาจากไฟล

show_book.php ซ่ึงวิธีการทํานั้น เราไดทําผานมาแลวใหยอนกลับไปดูในขั้นตอน "การสราง Recordset เพื่อคนหาขอมูลเร็คคอรดที่ตองการลบ" จะเหน็ไดวา เราไดมีการเรียกใช URL Parameter “Barcode” ซ่ึงก็คือคา URL Parameter ที่สงไปจากไฟล show_book.php นั่นเอง การแสดงผลลัพธการลบขอมูล ขั้นตอนสุดทายของระบบลบขอมูลคือ การสรางไฟลแสดงผลการทํางาน ซ่ึงจะประกอบดวยขอความ แสดงใหผูใชทราบวาการลบขอมูลเสร็จเรียบรอยแลวเทานั้น ใหสรางเว็บเพจขึ้นมาและพิมพขอความสําหรับแสดงผลการลบขอมูล บันทึกเปนไฟล delete_ok.php

การใชงานระบบลบขอมูล เร่ิมตนโดยใชโปรแกรม Dreamweaver MX เปดไฟล show_book.php ขึ้นมา แลวกดปุม F12 โปรแกรม

Page 113: Phptraining

การเขียนโปรแกรมออนไลนดวยภาษา PHP และ MySQL โดย เสกสรรค ศิวิลัย

109บทท่ี 5 การจัดการฐานขอมูลดวยคําสัง่ในโปรแกรม Dreamweaver Internet Explorer จะถูกเปดขึ้นมาเรียกใชงานไฟล show_book.php หลังจากนั้นใหคลิกปุม "ลบ" เพื่อลบขอมูลทีละเร็คคอรด เสร็จแลวคลิกปุม ตกลง หรือ ยกเลิก เพื่อยืนยันหรือยกเลิกการลบขอมูล รอดูผลการทํางานที่จะแสดงผลจากไฟล delete_ok.php