Docstoc

php - PDF

Document Sample
php - PDF Powered By Docstoc
					        บทที่ 1
แนะนําโปรแกรม AppServ
 (PHP Application Server)



                            1
 Web application development with PHP
                                                                                                       STUDENT DEVELOPMENT 2008



                Web Application หรือ Web-based Application คือ Application (โปรแกรม
       ประยุกต) ที่ถูกเรียกใชงานโดยใช Web browser ผานเครือขายคอมพิวเตอร เชน Internet หรือ
       Intranet

               ในปจจุบันมีอยูหลายเทคโนโลยี ที่สนับสนุนการพัฒนา Web application
       เชน PHP , ASP, ASP.NET, JSP ฯลฯ

               เนื้อหาในหลักสูตรนี้จะกลาวถึงการพัฒนา Web application โดยใช PHP ดังนั้นใน
       สวนแรกจะแนะนําโปรแกรมตางๆ ที่จําเปนสําหรับการพัฒนา Web application โดยใช PHP



ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                  2
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 โปรแกรม Appserv
                                                                                                       STUDENT DEVELOPMENT 2008



             โปรแกรม Appserv (PHP Application Server) เปนการรวมชุดโปรแกรม
     OpenSource ที่จําเปนในการพัฒนา Web application ไวใน package เดียวกัน ประกอบดวย
     PHP Script Language               ตัวแปลภาษา PHP script
     Apache Web Server                 Web Server
     MySQL Database Server             ระบบจัดการฐานขอมูล MySQL
     phpMyAdmin Database Manager โปรแกรมที่ใชจัดการฐานขอมูล MySQL ผาน browser

              ซึ่งโปรแกรม AppServ จะทําใหสามารถติดตั้งโปรแกรมเหลานี้ ไดในขั้นตอนเดียว
     โดยไมตองติดตั้งและปรับแตงทีละโปรแกรม
              โปรแกรม Appserv เปนโปรแกรมประเภท OpenSource (แจกฟรี)
     สามารถ download ไดที่ http://prdownloads.sourceforge.net/appserv/

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                  3
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 การติดตั้งโปรแกรม Appserv
                                                                                                       STUDENT DEVELOPMENT 2008



       Double click ที่

       จะปรากฎ




       ใหเลือก Next และในหนาจอถัดไป ใหเลือก I Agree
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                  4
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 การติดตั้งโปรแกรม Appserv
                                                                                                       STUDENT DEVELOPMENT 2008



       ในหนาจอตอมา จะใหระบุวาจะติดตั้งชุดโปรแกรมลงใน Folder ใด
       ใหระบุ Folder ที่ตองการติดตั้ง ชุดโปรแกรม แลวเลือก Next




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                  5
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 การติดตั้งโปรแกรม Appserv
                                                                                                       STUDENT DEVELOPMENT 2008



       จะปรากฏหนาจอ ใหระบุโปรแกรมที่ตองการติดตั้ง ถาระบุแลวใหเลือก Next




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                  6
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 การติดตั้งโปรแกรม Appserv
                                                                                                       STUDENT DEVELOPMENT 2008


     จะปรากฏหนาจอ ใหระบุรายละเอียด
     Server Name
     ชื่อเครื่อง Server หรือ หมายเลข IP
     Address ที่จะติดตั้งโปรแกรม
     กรณีที่ตองการติดตั้งในเครื่อง PC ปกติ
     แลวจําลองเปน Web server ใหพิมพ
     localhost หรือ 127.0.0.1
     Email Address
     เมลของผูดูแล Web Server หรือ ผู
     ติดตั้งโปรแกรม
     Port
     พอรตที่ใหบริการของ Web Server
     (คามาตรฐานคือ 80)
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                  7
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 การติดตั้งโปรแกรม Appserv
                                                                                                         STUDENT DEVELOPMENT 2008


  ในหนาจอตอมา จะใหปรับแตงตัวเลือก
  ของโปรแกรม MySQL ซึ่งเปน
  โปรแกรมจัดการฐานขอมูล MySQL
  สวนแรก ใหใสรหัสผานของผูดูแล
  ระบบฐานขอมูล (Database
  Admistraror)
  ซึ่งเปน user ชื่อ root
                               ้
  แลวยืนยันรหัสผาน เดิมอีกครังในชอง
  ถัดไป (ตัวอยางกําหนดเปน mysql)
  ใน Character Sets ใหระบุ TIS620
  Thai ถาตองการเก็บขอมูลที่มีตัวอักษร
                                                                        แลวเลือก Install เพื่อเริ่มทําการติดตั้งชุดโปรแกรม
  ภาษาไทยในฐานขอมูล
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                    8
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 การติดตั้งโปรแกรม Appserv
                                                                                                       STUDENT DEVELOPMENT 2008


     รอจนกระทั่งติดตั้งโปรแกรมเสร็จ แลวเลือก Finish




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                  9
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 การติดตั้งโปรแกรม Appserv
                                                                                                                 STUDENT DEVELOPMENT 2008



    โปรแกรมตางๆ จะถูกติดตั้งภายใต Folder C:\AppServ (ถาไมระบุเปนตําแหนงอื่นๆ)




                                                                                                   Root Directory (Home Directory)
                                                                                                   ของ Web Site จะอยูภายใต
                                                                                                   C:\AppServ\www



ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                           10
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 การติดตั้งโปรแกรม Appserv
                                                                                                       STUDENT DEVELOPMENT 2008


    และโปรแกรมตางๆ เหลานั้น ก็จะปรากฎใน start menu




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 11
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 การทดสอบโปรแกรม Apache Web Server
                                                                                                       STUDENT DEVELOPMENT 2008

             หลังจากติดตั้งชุดโปรแกรมแลว โปรแกรม MySQL Server และ Apache Web Server
   จะถูกสั่ง ใหเริ่มตนทํางาน (Start) โดยอัตโนมัติ เมื่อเปดเครื่อง
             การทดสอบวา Apache Web Server ทํางานหรือไม ทําไดโดยการพิมพ
             http://localhost หรือ http://127.0.0.1 ใน URL ของ browser




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 12
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 การทดสอบโปรแกรม MySQL Server
                                                                                                        STUDENT DEVELOPMENT 2008

                       เราสามารถทดสอบวา MySQL Server ไดถูกติดตั้งอยางสมบูรณหรือไม
               โดย click ที่ link phpMyAdmin Database Manager



                                                                                           Click Link




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                  13
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 การทดสอบโปรแกรม MySQL Server
                                                                                                               STUDENT DEVELOPMENT 2008



              หรือ เรียกใชโดยพิมพ http://localhost/phpMyAdmin ใน URL ของ Web browser




                                                                                              จะมีการถาม User name
                                                                                              และ password
                                                                                              ของผูใชฐานขอมูล
                                                                                              ซึ่งกอนหนา เรากําหนด
                                                                                              password เปน
                                                                                              mysql

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                         14
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 การทดสอบโปรแกรม MySQL Server
                                                                                                       STUDENT DEVELOPMENT 2008


              ซึ่งถาพิมพ User name และ Password ถูกตอง จะปรากฎหนาจอดังรูปดานลาง




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 15
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 โปรแกรม Appserv
                                                                                                       STUDENT DEVELOPMENT 2008


            phpMyAdmin ถูกติดตั้งใน folder C:\AppServ\WWW\phpMyAdmin
  ซึ่ง C:\AppServ\WWW\ คือ Root Directory (Home Directory) ของ Web Site




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 16
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 การสั่ง Start/Stop Service และ การปรับแตงคาตางๆ
                                                                                                                   STUDENT DEVELOPMENT 2008

            เราสามารถสั่ง Start/Stop บริการของ Apache Web Server และ MySQL Server
            รวมทั้งปรับแตงคาของโปรแกรมตาง ผานทาง start menu ได ดังรูปดานลาง
                                                                                                       สั่ง Start/Stop บริการของ
                                                                                                       Apache Web Server และ
                                                                                                       MySQL Server


                                                                                                              การปรับแตงคา
                                                                                                              ของโปรแกรมตาง



ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                             17
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
        บทที่ 2
แนะนํา WWW และ HTML




                      18
 World Wide Web (WWW)
                                                                                                       STUDENT DEVELOPMENT 2008


             WWW เปนบริการรูปแบบหนึ่งใน Internet เปนการสงขอมูลขาวสารในรูป เอกสาร
    Hypertext โดยใช Internet เปนตัวกลางในการรับสง
    องคประกอบของ WWW
    Web Server
             โปรแกรมที่ติดตั้งบนเครื่อง Server ที่ทําหนาที่คอยสงขอมูล(response) ในรูปเอกสาร
    Hypertext หรือ Web page ให Web browser หรือทํางานตามคํารองขอ(request) ที่มาจาก
    Web browser
    Web Browser
             โปรแกรมที่เปนเครื่องมือที่ใชในการอาน เอกสาร Hypertext เชน Internet Explorer,
    Mozilla Firefox ฯลฯ
    HTTP (HyperText Transfer Protocol)
             เปน protocol หรือ ขอตกลงที่ Web Server และ Web Browser ใชในการติดตอสื่อสาร
    ระหวางกัน
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 19
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 World Wide Web (WWW)
                                                                                                       STUDENT DEVELOPMENT 2008

     เอกสาร Hypertext
              ภายในเอกสาร Hypertext จะมีการเนน
     ขอความที่สามารถเชื่อมโยง (Link)
     ไปยังขอมูลรายละเอียดของขอความนัน   ้
              ซึ่งขอมูลที่เชื่อมโยงไป อาจจะอยู
     ภายในคอมพิวเตอรเครื่องเดียวกัน หรืออยูใน
     เครื่องคอมพิวเตอรเครื่องใดๆ ใน internet ก็ได




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 20
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 World Wide Web (WWW)
                                                                                                       STUDENT DEVELOPMENT 2008


    การรองขอ(request) เอกสาร Hypertext

                Browser                                                                                        Web Server

                                                             ผูใชรองขอ (Request) เอกสาร Hypertext
                                                             บน Web server

                                                                           HTTP Protocol


                                                       Web Server ตอบสนอง (Response) โดยสงเอกสาร Hypertext ไป
                                                       แสดงผลบน Browser




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 21
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 World Wide Web (WWW)
                                                                                                       STUDENT DEVELOPMENT 2008

 คําศัพทพื้นฐาน
 Web Page
         หรือเอกสาร Hypertext หมายถึง เอกสารที่ถูกสรางขึ้นมาดวยภาษา HTML (Hypertext
 Markup Language) เพื่อนําไปใชในการนําเสนอขอมูลขาวสารของบริการ World Wide Web ภายใน
 เอกสารจะประกอบไปดวยรายละเอียดขอมูลตาง ๆ เชน รูปภาพ ตาราง ขอความ และเสียง ฯลฯ




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 22
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 World Wide Web (WWW)
                                                                                                       STUDENT DEVELOPMENT 2008

 คําศัพทพื้นฐาน
   Web Site
             หมายถึง แหลงรวบรวมขอมูลในรูปแบบของ Web Page
             หรืออาจกลาวไดวา Web Site คือ ที่เก็บกลุมของ Web Page ที่สัมพันธกัน
             (Site หมายถึง ที่ตั้ง)
    Homepage
            หมายถึง Web Page หนาแรก(หรือหนาหลัก) ของ Web Site

           อาจเปรียบวา Web Server คือ ตูเก็บหนังสือ Web Site คือ หนังสือแตละเลม
           ดังนั้น Web Server มีไดหลาย Web Site แตละหนาในหนังสือ (Web site) คือ
           Web Page และหนาแรกของหนังสือแตละเลม คือ Homepage


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 23
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 World Wide Web (WWW)
                                                                                                       STUDENT DEVELOPMENT 2008

การระบุตําแหนง Web page
        การระบุตําแหนง Web page จะใชรูปแบบที่เรียกวา URL (Uniform Resource Locator)
               http://www.payap.ac.th/sites/faculty.html
         ชื่อ protocol
                             ชื่อเครื่อง Server (Host)
                                                  ชื่อ Directory (Folder)

                                                                                      ชื่อ web page




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 24
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 World Wide Web (WWW)
                                                                                                            STUDENT DEVELOPMENT 2008

  Default Homepage
           โดยปกติเมื่อพิมพชื่อ Web site ใดๆ โดยไมระบุชื่อ Web page Web Server จะสง web
  page หนาแรก (home page) กลับมาให browser โดยอัตโนมัติ

                                                                                        กรณีนี้ Web Server จะสง Homepage
                                                                                        ชื่อ welcome.html กลับมาให browser




              ชื่อ Homepage ของแตละ Web site อาจจะไมเหมือนกัน ขึ้นอยูกับการกําหนดชื่อ
    default homepage ใหกับ Web Server
              สวนใหญจะตั้งชื่อเปน index.html, index.htm, welcome.html, idex.asp, index.php,
    index.jsp
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                      25
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 World Wide Web (WWW)
                                                                                                       STUDENT DEVELOPMENT 2008

     ประเภทของ Web page
     Static Web page
              เปน Web page ที่ถูกเขียนโดยใชภาษา HTML (HyperText Markup Language)
     มีนามสกุลเปน .html หรือ .htm
              ขอมูลใน Web page จะอยูนิ่งๆไมเปลี่ยน จนกวา ผูเขียน Web pageจะแกไขขอมูล และ
     Upload เขาไปเก็บใน Web Site อีกครัง้
              สามารถแสดงผลไดอยางรวดเร็ว เพราะไมมีการประมวลผลใดๆ บน Web Server
     Web Server เพียงแตสงไฟล .html หรือ .htm ไปให browser เพื่อแสดงผล




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 26
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 World Wide Web (WWW)
                                                                                                       STUDENT DEVELOPMENT 2008

     ประเภทของ Web page
     Dynamic Web page
                เปน Web page ที่ถูกเขียนโดยใชภาษา Script (Script Language เปนภาษาที่จะแปล
     คําสั่งแลวประมวลผลตามคําสั่งทีละคําสั่ง) รวมกับ ภาษา HTML
                โดย คําสั่งของภาษา Script ใชควบคุมการทํางาน และคําสั่งของภาษา HTML ใช
     สําหรับจัดรูปแบบการแสดงผล (ดังนั้นในไฟลจึงประกอบดวย code ของภาษา Script และcode
     ของ ภาษา HTML เก็บอยูรวมกัน)
                นามสกุลของ web page ประเภทนี้มีหลากหลาย ขึ้นอยูกับภาษา Script ที่เลือกใช เชน
                .php เทคโนโลยี PHP ซึ่งใชภาษา PHP script ในการพัฒนา
                .asp       เทคโนโลยี ASP ซึ่งใชภาษา VB script ในการพัฒนา
                .aspx เทคโนโลยี ASP.Net ซึ่งใชภาษา VB.Net หรือ C# ในการพัฒนา
                .jsp       เทคโนโลยี JSP ซึ่งใชภาษา Java ในการพัฒนา

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 27
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 World Wide Web (WWW)
                                                                                                       STUDENT DEVELOPMENT 2008


     Dynamic Web page (ตอ)

     หมายเหตุ โปรแกรม(ชุดคําสั่ง) ที่ทํางานบน Server ไมวาถูกเขียนโดยใชภาษาใดๆ
              จะจัดวาเปนโปรแกรมประเภท CGI (Common Gateway Interface)


             การใชงาน Dynamic Web page นอกจากจะตองมีโปรแกรม Web Server บน Server
     (Host) แลวจะตองมีโปรแกรมอื่นๆ ที่เกี่ยวของดังนี้
             ตัวแปลภาษา Script ซึ่งจะแปลภาษา Script ใหอยูในรูปแบบ HTML
             Database Server      ในกรณีที่มีการเก็บขอมูลในฐานขอมูล



ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 28
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 World Wide Web (WWW)
                                                                                                               STUDENT DEVELOPMENT 2008


     Dynamic Web page (ตอ)                                                            Web Server สง คําสั่งscript ใหตัวแปลภาษา
                                                                                       เพื่อทําการแปลและทํางานตามคําสั่งทีละคําสั่ง
                                                                                       ซึ่งคําสั่งอาจมีการติดตอกับฐานขอมูลบน Database Server
                                                                                       สุดทายผลลัพธจากการทํางานจะถูกแปลงใหอยูในรูป
                                                                              รองข HTML เพื่อสงกลับไปแสดงผลบน browser
                                                                                 อ
                                                                                      ไฟล l
                                                                                บน W ogin.as
                                                                     login            eb S e          p
                                                                           .asp              rver
                                                                    ผลลัพ        ถูกปร
                                                                           ธกลับ ะมวลผ
                                                                              ใ
                                                                                   นรูปแ ล แลว
                                                                                        บบ H  สง
                                                                             สงขอ             TML
                                                                       ประม มลที่ผูใ
                                                                                    ู
                                                                              วลผล         ชปอน
                                                                                    บน W           ไป
                                                                                           e b Se
                                                                                                  rv er                            Database


                                                                     สงผลลัพธในรูปแบบ HTML
                                                                         กลับไปให Browser             Web Server

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                               29
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 World Wide Web (WWW)
                                                                                                       STUDENT DEVELOPMENT 2008


     Dynamic Web page (ตอ)
               ขอมูลบน Web page แบบ Dynamic Web page จะเปลี่ยนแปลงตามปฏิสัมพันธ
     (Interactive) กับผูใชขณะนั้น เชน ขอมูลถูกแสดงตามชื่อบัญชี(Account) ของผูใชแตละคน
               การแสดงผลทําไดชากวาแบบ Static Web page (.HTML) เพราะ ตองมีการ
     ประมวลผลบางอยางบน Web Server เชน การคนหาขอมูลในฐานขอมูล
               เขียนไดยากกวา Static Web page เพราะตองเขียนคําสั่ง Script เพื่อทํางานตามที่
     ตองการ
               อาจตองมีการติดตั้งโปรแกรมอื่นๆ เพิ่มเติมบน Server เชน Web Server, ตัว
     แปลภาษา Script, Database Server




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 30
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 HTML (HyperText Markup Language)
                                                                                                                     STUDENT DEVELOPMENT 2008

              HTML เปนภาษาคอมพิวเตอรชนิดหนึ่ง ที่ใชในการพัฒนา Web page หรือ เอกสาร
     HTML ซึ่งถูกแสดงผลบน Web Browser
              การสราง Web page ดวยภาษา HTML จสรางเปนไฟลขอความ (Text File) ที่มี
     นามสกุลเปน .htm หรือ .html ซึ่งผูพัฒนาอาจใชโปรแกรม Text Editor ใดๆ ในการสรางก็ได
     เชน โปรแกรม Notepad, EditPlus ฯลฯ
              เมื่อ Web page ถูกแสดงผลบน Web Browser จะไมปรากฏ code เหลานั้น แตจะแสดง
     เปนผลลัพธที่ประกอบไปดวยขอความ รูปภาพ หรือเสียง ตามที่ผูพัฒนากําหนด
              Web page หรือ เอกสาร HTML                                                                Web Browser




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                               31
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 HTML (HyperText Markup Language)
                                                                                                       STUDENT DEVELOPMENT 2008

     Static Web Page
               เปน Web page ที่สรางขึ้นโดยใชคําสั่งในภาษา HTML เพียงอยางเดียว
     จะมีลักษณะเปน Web page อยางงาย ซึ่งนําเสนอขอมูล เชน ขอความ รูปภาพ ฯลฯ
     เพียงอยางเดียว โดยไมมีปฏิสัมพันธ (Interactive) กับผูใช

                     ซึ่ง Web page ลักษณะเชนนี้เรียกวา Static Web Page




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 32
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 HTML (HyperText Markup Language)
                                                                                                       STUDENT DEVELOPMENT 2008

  Dynamic Web Page
         ในปจจุบันมีภาษาที่ใชในการเขียน Web page ใหมีปฏิสัมพันธกับผูใชไดอยาง
                                                  ้
  หลากหลาย เชน รับขอมูลจากผูใช แลวนําขอมูลนันไปประมวลผล หรือเก็บลงในฐานขอมูล
         ซึ่ง Web page ที่สามารถมีปฏิสัมพันธกับผูใชได เรียกวา Dynamic Web Page

          ภาษาที่ใชพัฒนา Dynamic Web page มีอยูมากมายหลายภาษา เชน PHP, JavaScript,
  VBScript ซึ่งภาษาเหลานี้จัดเปนภาษา Script (Script Language)

  Script Language คือ ภาษาที่มีการแปลความหมายคําสั่งแลวทํางานตามคําสั่งนั้นทีละคําสั่ง




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 33
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 HTML (HyperText Markup Language)
                                                                                                       STUDENT DEVELOPMENT 2008

             ในปจจุบัน Web page สวนใหญ จะถูกเขียนใหเปนแบบ Dynamic
     Web Page โดยใชภาษา Script ตางๆ และภายใน Script เหลานั้น ก็ยังคงจําเปนตองใชคําสั่งใน
     ภาษา HTML รวมดวย เพื่อจัดรูปแบบการแสดงผลบน Browser
             ดังนั้นภาษาที่เปนพื้นฐานสําคัญ ในการเขียน Web page ทุกประเภท ก็คือ
     ภาษา HTML
            สรุป Static Web Page
                            นามสกุล .html หรือ .html
                            ประกอบดวยคําสั่งในภาษา HTML เทานัน       ้
                            เนื้อหาไมเปลี่ยนแปลงจนกระทั่งมีการแกไข Web page บน Server
                 Dynamic Web Page
                            นามสกุล .php , .jsp , .asp, .aspx ฯลฯ
                                                                          ่
                            ประกอบดวยคําสั่งในภาษา Script ใดๆ เพื่อสังใหทํางานตามตองการ และ
                                               ่
                                          คําสังในภาษา HTML เพื่อจัดรูปแบบการแสดงผล
                            เนื้อหาเปลี่ยนแปลงเมื่อมีปฏิสัมพันธกับผูใช
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 34
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 HTML (HyperText Markup Language)
                                                                                                       STUDENT DEVELOPMENT 2008

     โครงสราง Web page ในภาษา HTML
              เอกสาร HTML หรือ Web page ประกอบดวย 2 สวน หลัก ๆ ไดแก
             สวนขอความที่ตองการใหแสดงผลบน Web Browser และ
             สวนที่เปนคําสั่ง ที่เรียกวา Tag (แท็ก) ซึ่งอยูในเครื่องหมาย < >
                        โดยคําสั่งสามารถพิมพเปนตัวพิมพเล็กหรือตัวพิมพใหญก็ได

                     Tag แบงเปน 2 ประเภท ไดแก
                     Tag เดี่ยว
                               มีเฉพาะ Tag เปด (< >) เชน
                               <HR> , <BR>
                     Tag เปด/ปด
                               มีทั้ง Tag เปด และ Tag ปด (< > ... </ >) เชน
                                    เชน <B> …</B>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 35
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 HTML (HyperText Markup Language)
                                                                                                       STUDENT DEVELOPMENT 2008


                     ภายใน Tag สามารถมีสวนขยายเพิ่มเติม ซึ่งเรียกวา Attributes

               โดยที่แตละ Tag (คําสั่ง) สามารถมี attribute ที่แตกตางกันได และอาจมีจํานวน
     attribute ไมเทากัน ในกรณีที่มี attribute มากกวา 1 ตัว จะใช ชองวาง แบงแยก attribute

                     และคาของ attribute อาจใช ” ” หรือ ’ ’ คลอม หรือไมใชอะไรคลอมเลยก็ได




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 36
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 HTML (HyperText Markup Language)
                                                                                                       STUDENT DEVELOPMENT 2008


     ตัวอยาง <IMG> เปน Tag ที่ใชแสดงรูปภาพบน Web page ซึ่งมีรูปแบบดังนี้
              <IMG SRC=”filename” WIDTH=”n” HEIGHT=”n” ALT=”text”
                      BORDER=”n”>
              โดยที่ attribute
                        SRC       เปนการกําหนดชื่อแฟมรูปภาพที่จะนํามาแสดง
                        WIDTH เปนการกําหนดความกวางของรูปภาพ
                        HEIGHT เปนการกําหนดความสูงของรูปภาพ
                        ALT       เปนการกําหนดคําอธิบายรูปภาพ
                        BORDER เปนการกําหนดความกวางของเสนขอบภาพ

                     เชน         <IMG SRC=c:\windows\Zapotec.bmp WIDTH=100 HEIGHT=100
                                    ALT=Picture1 BORDER=5>

                     สังเกต <IMG> เปน Tag เดี่ยว และคาของ attribute ไมใช ” ” หรือ ’ ’ คลอม
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 37
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 HTML (HyperText Markup Language)
                                                                                                       STUDENT DEVELOPMENT 2008

            โครงสราง Web page พื้นฐานในภาษา HTML มีรายละเอียดดังนี้
                                      <html>
                                      <head>
                                      <title>
เปนคําสั่ง                                    ขอความที่ตองการแสดงเปนชื่อเรื่อง บน Browser
กําหนด                                </title>
จุดเริ่มตน                           </head>
และจุดสิ้นสุด                         <body>
ของเอกสาร                                      สวนของเนื้อหา
HTML                                           เปนสิ่งที่ตองการใหแสดงผลบนหนาเว็บเพจ
                                               และคําสั่งใดๆ ที่ตองการใชปรับแตงหนาเว็บเพจ
                                               :
                                               :
                                      </body>
                                      </html>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 38
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 HTML (HyperText Markup Language)
                                                                                                       STUDENT DEVELOPMENT 2008


  ทดลองสราง Web page โดยใชโปรแกรม Notepad
                                  แลว Save ในไฟลชื่อ index.html
                                  ลงใน Directory C:\AppServ\WWW ซึ่งเปน
                                  Root Directory (Home Directory) ของ Web site

   Tag HTML อาจเปนตัวพิมพเล็ก หรือตัวพิมพใหญก็ได




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 39
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 HTML (HyperText Markup Language)
                                                                                                       STUDENT DEVELOPMENT 2008


 ทดลองเรียก Web page จาก Web browser (Internet Explorer)
 โดยพิมพ http://localhost/index.html




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 40
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 HTML (HyperText Markup Language)
                                                                                                       STUDENT DEVELOPMENT 2008


 ในเอกสาร HTML ไมจําเปนตองพิมพ Tag อยางครบถวน สามารถละ Tag <HTML> , <HEAD>,
<TITLE> (ถาไมใช) และ <BODY> ได ซึ่ง Browser รุนใหมๆ จะสามารถตีความได
                                                                                                          ถาไม TAG ใดๆ
                                                                                                                   
                                                                                                          ถือวาอยูใน
                                                                                                          <BODY>
                                                                                                          …
                                                                                                          </BODY>




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 41
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 Tag ที่สําคัญ
                                                                                                       STUDENT DEVELOPMENT 2008

   สวนหัวของเอกสาร Web page <HEAD> ... </HEAD>
           ภายในสวนหัวของเอกสาร Web page อาจประกอบดวย
   TITLE Tag
           <TITLE> … </TITLE>

   META Tag
             <META> … </META>
             เปน tag ที่ใชบรรยายลักษณะของ Web page เพื่อให browser ทํางานกับขอมูลบนWeb
   page ไดถูกตอง
             ใน tag META ประกอบดวย Attribute อยูเปนจํานวนมากเชน


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 42
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญ
                                                                                                       STUDENT DEVELOPMENT 2008

      Attribute ที่ใชสําหรับ กําหนดคําอธิบายเกี่ยวกับเนื้อหาของ web page
                              กําหนดใหมีการ Refresh web page ใหมโดยอัตโนมัติ
                              กําหนด font หรือ character encoding
                              กําหนดรายละเอียดของการคนหาใหกับ search engine
     ตัวอยาง

     <HEAD>
     <TITLE>ขอความอธิบายชื่อเรื่องของเว็บ</TITLE>
     <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset =TIS-620">
     <META NAME="Author" CONTENT="ชื่อผูพัฒนาเว็บ">
     <META NAME="KeyWords" CONTENT="ขอความ 1, ขอความ 2, …">
     </HEAD>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 43
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญ
                                                                                                       STUDENT DEVELOPMENT 2008

     สวนเนื้อหาของเอกสาร Web page <BODY> ... </BODY>
     สวนนี้เปนสวนสําคัญที่สุด เพราะเปนที่เก็บเนื้อหาของ Web Page ทั้งหมด ซึ่ง
     อาจจะเปน ขอความ, ตาราง, รูปภาพ , เสียง, ภาพเคลื่อนไหว

     <BODY>
       …
       …
       …
       …
       …
       …
       …
       …
     </BODY>


     ซึ่ง Tag สวนใหญในสวนของเนื้อหา เปน Tag ที่ใชในการจัดรูปแบบการแสดงผล
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 44
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญ
                                                                                                       STUDENT DEVELOPMENT 2008



     BODY Tag
           Tag BODY มี attribute ที่สําคัญดังนี้
                  LINK                                                             ่
                                        กําหนดสีของ Link (จุดเชื่อมโยงไปยังขอมูลอืน)
                  BGCOLOR               กําหนดสีพื้นหลังของ Web Page
                  TEXT                  กําหนดสีใหกับตัวอักษร
                  BACKGROUND กําหนดชื่อไฟลรูปภาพที่จะนํามาทําเปนพื้นหลัง

        สีที่ระบุในคําสั่ง HTML จะระบุเปนเลขฐานสิบหก ในรูปแบบ #RRGGBB
        โดยที่คาที่เปนไปไดของแตละสี คือ 00 ถึง FF เชน สีแดงที่เขมที่สุดคือ #FF0000

     ตัวอยาง
                     <BODY BGCOLOR=#FFFF00 TEXT=#0000FF>ทดสอบสี<BODY>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 45
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญในสวนเนื้อหา (BODY)
                                                                                                       STUDENT DEVELOPMENT 2008

     HEADING Tag
              ใชกําหนดลักษณะ(ขนาด) ของหัวเรื่อง (Heading)
              ในรูปแบบ <Hn> … </Hn> โดยที่ n มีคา 1 ถึง 6
     ตัวอยาง
              <H1>หัวเรื่องแบบที่ 1</H1>
              <H4>หัวเรื่องแบบที่ 4</H4>
     การกําหนดลักษณะ (Style) ตัวอักษร
             ใชกําหนดลักษณะการแสดงตัวอักษณ ประกอบดวย Tag
             <B> … </B>        กําหนดตัวหนา (Bold)
             <U> … </U>        กําหนดตัวขีดเสนใต (Underline)
             <I> … </I>        กําหนดตัวเอียง (Italic)

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 46
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญในสวนเนื้อหา (BODY)
                                                                                                       STUDENT DEVELOPMENT 2008

     ตัวอยาง ใชรวมกับ Tag กอนหนา

             <BODY
             BGCOLOR=#FFFF00 TEXT=#0000FF><B><I>ตัวหนาและเอียง</I></B>
             </BODY>

     การกําหนดลักษณะ (Style) ตัวอักษร (ตอ)
             ใชกําหนดลักษณะการแสดงตัวอักษร ประกอบดวย Tag
             <SUB> … </SUB>                  กําหนดตัวหอย (Subscript)
             <SUP> … </SUP>                  กําหนดตัวยก (Superscript)
             <STRIKE> … </ STRIKE>           กําหนดเสนขีดฆาตัวอักษร


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 47
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญในสวนเนื้อหา (BODY)
                                                                                                       STUDENT DEVELOPMENT 2008


     FONT Tag
              เปนการกําหนดรูปแบบตัวอักษร ซึ่งจะใช <FONT> … </FONT>
              โดย Tag Font ประกอบดวย attribute
              FACE กําหนดชื่อ Font (Font name หรือ Font Face)
              COLOR กําหนดสีตัวอักษร
                                                             ื
              SIZE กําหนดขนาดตัวอักษร ซึ่งขนาดที่เปนไปไดคอ 1 - 6
     ตัวอยาง ใชรวมกับ Tag กอนหนา
       <BODY BGCOLOR=#FFFF00 TEXT=#0000FF>
       <B><I>
       <FONT FACE=LilyUPC SIZE="4" COLOR=#FF0000>ตัวหนาและเอียง</FONT>
       </I></B>
       </BODY>
     คําถาม มีการกําหนดสีตัวอักษร 2 ที่ ทั้ง BODY และ FONT จะใชสีของสวนใด ?
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 48
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญในสวนเนื้อหา (BODY)
                                                                                                       STUDENT DEVELOPMENT 2008


     MARQUEE Tag
                                      ่ ่
              ใชกําหนดตัวอักษรใหเคลือนทีในรูปแบบ <MARQUEE> … </MARQUEE>
     ตัวอยาง ลองทดสอบกับตัวอยางกอนหนา
     การขึ้นบรรทัดใหม
              ใช Tag <BR> ซึ่งเปน Tag เดี่ยว
     การขีดเสน
              ใช Tag <HR> ซึ่งเปน Tag เดี่ยว
     การแสดงตัวอักษรพิเศษบน Browser
              การแสดง <        ใช &lt; (Less Than)
              การแสดง >        ใช &gt; (Greather Than)
              ชองวาง         ใช &nbsp;
     การใสหมายเหตุ (Comment)
              หมายเหตุหรือคําอธิบาย ซึ่งไมแสดงบน Browser อยูภายใน Tag <!- … ->
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 49
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญในสวนเนื้อหา (BODY)
                                                                                                       STUDENT DEVELOPMENT 2008


     การจัดยอหนา (Paragraph)
           ใช Tag <P> …</P> เพื่อขึ้นยอหนาใหม โดยจะมีการเวนบรรทัดวางกอนหนา
     1 บรรทัด
            ซึ่งใน <P> สามารถระบุ attribute ALIGN เพื่อจัดแนว
              โดยที่คาใน ALIGN อาจเปน LEFT , RIGHT หรือ CENTER

     ตัวอยาง                       <P ALIGN=CENTER>
                                    ทดสอบ<BR>ยอหนา
                                    </P>




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 50
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญในสวนเนื้อหา (BODY)
                                                                                                       STUDENT DEVELOPMENT 2008



     การจัดรูปแบบขอความเหมือนพิมพ (Pre-format Text)
               ใช Tag <PRE> …</PRE> เพื่อใหรูปแบบของขอความที่ปรากฏบน Browser เหมือนกับ
     สิ่งที่พิมพในเอกสาร HTML
              โดยปกติการเคาะชองวางในเอกสาร HTML จะไมมีผลตอการแสดงผลบน Browser
              ดังนั้นถาตองการใหมีชองวางระหวางตัวอักษร ตองใช &nbsp; 1 ตัวแทนชองวาง 1
     ชองวาง และถาตองการใหเวนบรรทัดก็จะใช <BR>

                ซึ่งในกรณีที่การจัดรูปแบบเปนจํานวนมาก จะนิยมใช <PRE> …</PRE>




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 51
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญในสวนเนื้อหา (BODY)
                                                                                                            STUDENT DEVELOPMENT 2008


     การจัดรูปแบบขอความเหมือนพิมพ (Pre-format Text) (ตอ)

     ตัวอยาง
      กรณีจัดรูปแบบเอง                                                                     กรณีใช Tag <PRE> จัดรูปแบบ
         COMPUTER<BR>                                                                            <PRE>
         &nbsp;&nbsp;&nbsp;&nbsp;200<BR>                                                         COMPUTER
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;50<BR>                                                       200
                                                                                                     50
                                                                                                 </PRE>



ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                      52
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญในสวนเนื้อหา (BODY)
                                                                                                       STUDENT DEVELOPMENT 2008


     การเชื่อมโยง (Link)
               การเชื่อมโยงเปนการทําใหเอกสารขณะนั้น สามารถทําการเชื่อมโยงไปยังเอกสารอื่นได
               การเชื่อมโยงจะใช Tag <A> … </A> (Anchor)
               ซึ่ง Tag นี้ จะมี attribute ที่สําคัญคือ HREF (HyperText Reference)
               โดยมีรูปแบบ คือ
                    <A HREF= ”เอกสารเปาหมาย”>ขอความที่เปนจุดเชื่อมโยง</A>

     ตัวอยาง
                          <A HREF="http://www.payap.ac.th">หนาหลัก</A>




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 53
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญในสวนเนื้อหา (BODY)
                                                                                                       STUDENT DEVELOPMENT 2008


     การเชื่อมโยง (Link) (ตอ)
               นอกจากจะใช ขอความเปนจุดเชื่อมโยงแลว ยังสามารถใชรูปภาพเปนจุดเชื่อมโยงได
     โดยมีรูปแบบคือ
                <A HREF= ”เอกสารเปาหมาย”><IMG SRC= ”ไฟลรูปภาพ” > </A>

     ตัวอยาง <A HREF="http://www..payap.ac.th"><IMG SRC = "pyulogo.jpg"> </A>


                     และสามารถสราง Link เพื่อสง e-mail ได เชน
                     <A HREF="mailto:pumin@payap.ac.th">ติดตอผูเขียน</A>
                     หรือสราง Link เพื่อ Download file เชน
                     <A HREF="turboc.zip">download file</A>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 54
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญในสวนเนื้อหา (BODY)
                                                                                                       STUDENT DEVELOPMENT 2008


     การเชื่อมโยง (Link) (ตอ)
               และเราสามารถกําหนดตําแหนงของการแสดงเอกสารที่เชื่อมโยงไป ไดโดยใช
     attribute TARGET= ”Option”
               โดย Option ที่เปนไปไดคือ
                     _BLANK แสดงใน Browser หนาใหม
                     _PARENTจะ Reset Browser แลวแสดงในหนานั้น
                     _SELF                                         ้
                                      แสดง FRAME (กรอบ) ที่ link นันอยู
                     _TOP             แสดงใน FRAME บนสุด
                     NAME             แสดงใน FRAME ที่ระบุ (ชื่อ)
                     หมายเหตุ                      จะกลาวถึง FRAME ในภายหลัง
     ตัวอยาง
         <BODY>
         <A HREF="http://www..payap.ac.th" TARGET="_BLANK">Goto PAYAP</A>
         </BODY>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 55
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญในสวนเนื้อหา (BODY)
                                                                                                       STUDENT DEVELOPMENT 2008


     การแบงสวนจอภาพ
              เราสามารถแบงจอภาพออกเปนสวนๆ เพื่อใหแตละสวนสามารถแสดง Web page ได
     อยางอิสระ ซึ่งแตละสวนของจอภาพจะเรียกวา Frame (กรอบ) การเปลี่ยนแปลงของ Web page
     ใน Frame ใดๆจะไมกระทบกับ Web page ใน Frame อื่น
              การแบงสวนของจอภาพ จะมี 2 tag ที่เกี่ยวของ
              คือ       tag     FRAMESET         ใชกําหนดกลุมของ Frame
              และ tag           FRAME            ใชกําหนดการแสดงผลของแตละ Frame
              บน Browser อาจประกอบดวยหลายๆ Frameset
              ในแตละ Frameset ประกอบดวยๆ Frame และในแตละ Frame แสดงได 1 page

                     ขอควรจํา การสราง Frame เปนการแบงจอภาพ (Browser) ออกเปนสวน
                     ซึ่งจะไมใช Tag <BODY> … </BODY>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 56
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญในสวนเนื้อหา (BODY)
                                                                                                       STUDENT DEVELOPMENT 2008


     FRAMESET Tag
           <FRAMESET>…</FRAMESET> ใชกําหนดกลุมของ Frame
     รูปแบบ <FRAMESET FRAMEBORDER="NO/YES"
              BORDER= "ขนาดเสนขอบ" BORDERCOLOR="สี"
              ROWS="ขนาดพื้นที่ในแนวนอน ระบุเปน Pixel หรือ % ของ Browser,…
              COLS="ขนาดพื้นที่ในแนวตั้ง ระบุเปน Pixel หรือ % ของ Browser,…
              </FRAMESET>
     ตัวอยาง <FRAMESET FRAMEBORDER="YES"
              BORDER= "5" BORDERCOLOR= "FF0000"
              ROWS= "30%,40%,60%"
              </FRAMESET>
     เปนการแบงจอภาพดานแนวนอนเปน 3 สวน ในอัตราสวน 30% 40% 60% ของ Browser
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 57
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญในสวนเนื้อหา (BODY)
                                                                                                            STUDENT DEVELOPMENT 2008

  FRAME Tag
        <FRAME> เปน Tag เดี่ยว ใชกําหนด Web page ที่จะนํามาแสดงในแตละสวน
                  รูปแบบ <FRAME NAME = " ตั้งชื่อเพื่ออางถึง"
                          SRC = " ชื่อไฟลที่จะนํามาแสดง"
                          SCROLLING= "YES|NO|AUTO" >
  ตัวอยาง
 <HTML>
 <FRAMESET FRAMEBORDER="YES"
    BORDER="5" BORDERCOLOR="#FFFF00"                                                                                          20%

    ROWS="20%,40%,20%">
    <FRAME SRC="Page1.html">                                                                                                  40%
    <FRAME SRC="Page2.html">
    <FRAME SRC="Page3.html">
 </FRAMESET>                                                                                                                  20%

 </HTML>
                                                                                       สังเกตุ ไมใช Tag <BODY> … </BODY>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                      58
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญในสวนเนื้อหา (BODY)
                                                                                                       STUDENT DEVELOPMENT 2008

     การใช Frame กับการเชื่อมโยง (Link)
                 ใน attribute TARGET ของ <A> … </.A> (Anchor หรือ Link) สามารถกําหนดได
     วาเมื่อ click Link เอกสารที่ถูกเชื่อมโยงนั้นจะถูกแสดง ณ ตําแหนงใด

                     _BLANK                        แสดงใน Browser หนาใหม
                     _PAREN                        จะ Reset Browser แลวแสดงในหนานั้น
                     _SELF                         แสดงใน FRAME ที่ link นั้นอยู
                     _TOP                          แสดงใน FRAME บนสุด
                     NAME                          แสดงใน FRAME ที่ระบุ (ชื่อ)

                 ในกรณีใช TARGET=”NAME” ซึ่งตองระบุชื่อ Frame ที่จะนําเอกสารไปแสดง

                  ดังนั้นตองใช attribute NAME เพื่อตั้งชื่อ FRAME สําหรับการอางถึงดวย
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 59
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญในสวนเนื้อหา (BODY)
                                                                                                       STUDENT DEVELOPMENT 2008

  ตัวอยาง




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 60
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญในสวนเนื้อหา (BODY)
                                                                                                        STUDENT DEVELOPMENT 2008


 การสรางตาราง (Table)
        ตารางประกอบดวยสวนหลักคือ หัวของตาราง (Header) และ สวนของขอมูล (Data)
 ซึ่งการสรางตาราง จะใช Tag ที่สําคัญดังนี้
                <TABLE>…</TABLE>                                              กําหนดการสรางตาราง
                <CAPTION>…< /CAPTION>                                         กําหนดขอความที่ปรากฎบนตาราง
                <TR>…</TR>                                                    กําหนดแถวของตาราง (Table Row)
                <TH>…</TH>                                                    ขอความหัวตาราง (Table Header)
                <TD>…</TD>                                                    กําหนดคอลัมน หรือ ขอมูล (Table Data)



ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                  61
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญในสวนเนื้อหา (BODY)
                                                                                                       STUDENT DEVELOPMENT 2008


 โดยใช Tag เหลานี้รวมกันในรูปแบบ
          <TABLE>
          <CAPTION>ขอความที่ปรากฎบนตาราง</CAPTION>
          <TR>
          <TH>ขอความหัวตาราง</TH>                                                                        มีเฉพาะแถวแรก
          </TR>
          <TR>
          <TD>ขอมูล</TD>… <TD>ขอมูล</TD>                                                                 แถวตอๆไป
          </TR>
          <TR>
          <TD>ขอมูล</TD>… <TD>ขอมูล</TD>
          </TR>
           ...
          </TABLE>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 62
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญในสวนเนื้อหา (BODY)
                                                                                                       STUDENT DEVELOPMENT 2008


     TABLE Tag
          Tag Table ประกอบดวย attribute ที่สําคัญดังนี้
     < TABLE ALIGN= ”left|center|right”
             BORDER= ”ขนาดเสนกรอบ”
             BACKGROUND=”ไฟลรูปภาพ”
             BGCOLOR=”สีพื้น” BORDERCOLOR=”สีเสนกรอบ”
             CELLPADDING=”ระยะหางระหวางคอลัมน” (เพิ่ม/ลด ขนาดของเสนตาราง)
             CELLSPACING = ”ระยะหางระหวางแถว” (เพิ่ม/ลด ความสูงของแถว)
             WIDTH = ความกวาง HEIGHT = ความสูง >

                      ตัวเลขขนาด ระยะหรือความกวาง/ความสูง ระบุเปน Pixel หรือ % ก็ได

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 63
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญในสวนเนื้อหา (BODY)
                                                                                                       STUDENT DEVELOPMENT 2008

  TR Tag (Table Row)
       Tag TR การกําหนดแถว ประกอบดวย attribute ที่สําคัญดังนี้
         <TR ALIGN= ”Left|Center|Right”
                 VALIGN= ”Top|Middle|Bottom”
                 BGCOLOR= ”สี”
                 BORDERCOLOR=”สี”>
                 …
         </TR>
  TD Tag (Table Data)
       Tag TD กําหนดขอมูลในแตละคอลัมน ประกอบดวย attribute ที่สําคัญดังนี้
         <TD ALIGN= ”Left|Center|Right”
                 VALIGN= ”Top|Middle|Bottom”
                 WIDTH= ”ความกวาง”
                 HEIGHT=”ความสูง”         >
                 …
         </TD>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 64
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญในสวนเนื้อหา (BODY)
                                                                                                       STUDENT DEVELOPMENT 2008


 แบบฝกหัด
                จงสราง web page ชื่อ table.html เพื่อแสดงขอมูลในตาราง ดังรูปดานลาง




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 65
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
       ่
 Tag ทีสําคัญในสวนเนื้อหา (BODY)
                                                                                                       STUDENT DEVELOPMENT 2008

 เฉลย <HTML>
            <HEAD>
            </HEAD>
            <BODY>
            <TABLE BORDER="1" BORDERCOLOR= "#FF00FF">
            <TR BGCOLOR="#00FF00">
                    <TH></TH><TH>Computer</TH><TH>Printer</TH><TH>Paper</TH></TR>
            <TR BGCOLOR="#FF0000" ALIGN="RIGHT">
                    <TD ALIGN="LEFT">มกราคม
            </TD><TD>20</TD><TD>80</TD><TD>480</TD></TR>
            <TR BGCOLOR="#FF0000" ALIGN="RIGHT">
                    <TD ALIGN="LEFT">กุมภาพันธ
            </TD><TD>45</TD><TD>35</TD><TD>800</TD></TR>
            <TR BGCOLOR="#FF0000" ALIGN="RIGHT">
                    <TD ALIGN="LEFT">มีนาคม
            </TD><TD>36</TD><TD>28</TD><TD>1450</TD></TR>
            <TR BGCOLOR="#FF0000" ALIGN="RIGHT">
                    <TD ALIGN="LEFT">เมษายน
            </TD><TD>40</TD><TD>46</TD><TD>1200</TD></TR>
            </TABLE>
            </BODY>
            </HTML>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 66
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008


               ในเอกสาร HTML จะใช FORM เปนที่บรรจุ สวนรับขอมูล(INPUT) จากผูใช
    ดังนั้นถาตองการรับขอมูลจากผูใช จําเปนจะตองสราง FORM เสมอ
                                                           Form จะไมปรากฎรูปราง
                                                           เปนเพียงขอบเขต ที่ใชบรรจุสวนรับขอมูล
                                                           (Input) เทานั้น
                                                           จากตัวอยางประกอบดวย Input ชนิด
                                                           TEXT (กรอบรับขอความ)
                                                           PASSWORD (กรอบรับรหัสผาน
                                                           SUBMIT(ปุมคําสั่ง)

           โดยปกติขอมูลที่ปอนใน Form จะถูกสงให Web page หนาอื่น ซึ่งบรรจุโปรแกรมประเภท
                                                                ู
  CGI ( คือ Web page ประเภท Dynamic Web page) เพื่อนําขอมูลที่ผใชปอนไประมวลผล
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 67
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008

  Form Tag
          Tag Form ประกอบดวย attribute ที่สําคัญ ดังรูปแบบ ตอไปนี้
          <FORM METHOD="POST/GET" ACTION="URL">
          ...
          </FORM>

  โดยที่          METHOD เปนรูปแบบของวิธีในการสงขอมูล ซึ่งอาจจะเปน

                  GET            เปนการสงขอมูลพวงทายไปกับ URL ซึ่งสามารถมองเห็นขอมูล
                                                            
                                 ที่สงบน Address bar และมีขอจํากัด คือ จะสงไดไมเกิน 255 ตัวอักษร

                  POST เปนวิธีการสงขอมูลทีไมสามารถมองเห็นขอมูลที่สง (เปนความลับ)
                                             ่
                       และไมมีการจํากัดขอมูลที่สง ซึ่งนิยมใชมากกวาวิธี GET

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 68
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008




  ACTION คือตําแหนงหรือ URL ของ Dynamic web page ที่จะสงขอมูลไปให
                 หรืออาจเปนการสง e-mail โดยใช mailto: ก็ได

  ตัวอยาง

  <FORM METHOD= ” POST” ACTION= ”VALIDATE.PHP” > … </FORM>
  หรือ
  <FORM METHOD= ” POST” ACTION = ”mailto:pumin@payap.ac.th” > ... </FORM>

  … ประกอบดวย Tag ตางๆ ที่ใชในการสรางสวนรับขอมูลบน FORM


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 69
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008


    Tag สําหรับสรางสวนรับขอมูล (input) ใน Form แบงออกเปน 3 ประเภท

    <TEXTAREA> ... </TEXTAREA>
          Tag สําหรับสรางกรอบปอนขอมูล ที่สามารถปอนขอมูลไดหลายบรรทัด
    <SELECT> ... </SELECT>
          Tag สํารับสรางกรอบรายการตัวเลือก
          แบงเปน PULL-DOWN LIST (Combo box) และ
                    SCROLLING LIST (Listbox)




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 70
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008



    <INPUT>          Tag สําหรับสรางสวนรับขอมูล ซึ่งระบุชนิด โดยกําหนดใน
          attribute TYPE ไดแก
          TEXT                กรอบปอนขอความบรรทัดเดียว (Text box)
          PASWORD             กรอบปอนรหัสผาน (เมื่อพิมพจะปรากฏ • )
          RADIO               ปุมแบบวิทยุ (Radio button)
          CHECKBOX            ชองทําเครื่องหมาย (Checkbox)
          SUBMIT              ปุมสงคา ใน FORM (Submit button)
                              สําคัญ เพราะ เปนตัวสงขอมูลใน Form ไปประมวลผล
          RESET               ปุมเคลียรคาสวนรับขอมูลใน FORM (Reset button)
          BUTTON              ปุมอิสระเพื่อใชทําหนาที่ใดๆ
          IMAGE               รูปภาพที่ทําหนาที่เหมือนปุมคําสั่ง


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 71
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008


        ตัวอยาง สวนรับขอมูล(INPUT) ชนิดตางๆ

                                                                                                       TEXT

                                                                                                       RADIO

                                                                                                       CHECKBOX



                                                                                                       SELECT


                                                                                                       TEXTAREA

                                                                                                        SUBMIT



ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 72
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008

  Attribute NAME
            Form และสวนรับขอมูล มักจะถูกอางถึงในการเขียนโปรแกรม ซึ่งการกําหนดชื่อของ
  Form และสวนรับขอมูลตางๆ จะใช Attribute NAME

  ตัวอยาง
  <FORM NAME= ”FRMLOGIN” METHOD= ”POST” ACTION= ”VALIDATE.PHP” >
  …
  </FORM>




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 73
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008


    TEXTAREA tag
            <TEXTAREA> ... </TEXTAREA>
            Tag สําหรับสรางกรอบปอนขอมูล ที่สามารถปอนขอมูลไดหลายบรรทัด (Multiline Text
    Input)
            ซึ่ง Tag นี้ประกอบดวย attribute ที่สําคัญดังนี้
       <TEXTAREA NAME= "ชื่อ" ROWS= "จํานวนแถว"
                                                             ่
                      COLS= "ความกวางของคอลัมน">ขอมูลเริมตนที่จะใหปรากฎ
       </TEXTAREA>

    หมายเหตุ              ROWS และ COLS เปนการกําหนดความสูงและความกวางของการแสดง
                                              ่
                         TEXTAREA ซึ่งขอมูลทีปอนอาจมากกวาบริเวณที่กําหนด

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 74
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008

 ตัวอยาง
 <HTML>
 <FORM ACTION ="test.php" METHOD="POST">
 <TEXTAREA NAME="TEXTAREA1" COLS="50" ROWS="10">
 </TEXTAREA>
 <FORM>
 <HTML>
 <FORM ACTION ="test.php" METHOD="POST">
 <TEXTAREA NAME="TEXTAREA1" COLS="50" ROWS="10">
 กรุณาใสหมายเหตุ
 </TEXTAREA>
 <FORM>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 75
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008


    Label tag
            ใชแสดงขอความอธิบายสวนรับขอมูล
            ใชลอมรอบสวนรับขอมูล ในรูปแบบ
            <LABEL>ขอความอธิบาย<สวน INPUT ขอมูลตาง ๆ></LABEL>

    ตัวอยาง

     <FORM ACTION ="test.php" METHOD="POST">
     <LABEL>หมายเหตุ
     <TEXTAREA NAME="TEXTAREA1" COLS="50" ROWS="10">
     </TEXTAREA>
     </LABEL>
     <FORM>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 76
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008

  SELECT tag
         <SELECT> ... </SELECT>
         Tag สําหรับสรางกรอบรายการตัวเลือก ซึ่งแบงเปน
         PULL-DOWN LIST (Combobox) และ SCROLLING LIST (List box)
         และจะใชรวม tag <OPTION> ... </OPTION> เพื่อสรางรายการตัวเลือก
  รูปแบบ
  < SELECT NAME=“ชื่อ[ ]" SIZE=” จํานวนรายการตัวเลือก” [MULTIPLE] >
  <OPTION VALUE= ”คาจากการเลือก” SELECTED >ขอความรายการเลือก</OPTION >
  <OPTION VALUE= ”คาจากการเลือก”>ขอความรายการเลือก</OPTION >
  <OPTION VALUE= ”คาจากการเลือก”>ขอความรายการเลือก</OPTION >
     ...
  </SELECT>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 77
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008

  SELECT tag
  หมายเหตุ ใน Tag SELECT
           ถาไมระบุ attribute SIZE จะปน PULL-DOWN LIST (Combo box)
           ถาระบุ attribute SIZE จะปน SCROLLING LIST (List box)

                       ถาระบุ MULTIPLE จะทําใหสามารถเลือกไดหลายรายการ (Ctrl – click)

                       SELECT จะเปนอาเรยคือใชชื่อเดียว และสมาชิกในอาเรยคือ รายการตัวเลือก

                     และใน Tag OPTION การระบุ SELECTED จะทําใหรายการเลือกนั้น
                 ถูกเลือกโดยอัตโนมัติ

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 78
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008

 ตัวอยาง
  <FORM>
  <SELECT NAME="combo1[ ]">
  <OPTION VALUE=“1”>ตัวเลือก 1</OPTION>                                                                ตัวเลือก 3 ถูกเลือก
  <OPTION VALUE=“2”>ตัวเลือก 2</OPTION>                                                                โดยอัตโนมัติ
  <OPTION VALUE=“3” SELECTED>ตัวเลือก 3</OPTION>
  <OPTION VALUE=“4”>ตัวเลือก 4</OPTION>                                                                เมื่อ click Dropdown
  <OPTION VALUE=“5”>ตัวเลือก 5</OPTION>
  </SELECT>
  </FORM>



ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                  79
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008


  ตัวอยาง
   <FORM>
   <SELECT NAME="combo1[ ]“ SIZE=”6”>                                                                             SIZE = 6
   <OPTION VALUE=“1”>ตัวเลือก 1</OPTION>
   <OPTION VALUE=“2”>ตัวเลือก 2</OPTION>
   <OPTION VALUE=“3” SELECTED>ตัวเลือก 3</OPTION>
   <OPTION VALUE=“4”>ตัวเลือก 4</OPTION>
   <OPTION VALUE=“5”>ตัวเลือก 5</OPTION>
   </SELECT>
   </FORM>


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 80
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008

  INPUT tag
           tag <INPUT> เปน Tag เดี่ยว ใชสําหรับสรางสวนรับขอมูล
  สวนรับขอมูลมีอยูหลายชนิด การระบุวาเปนชนิดได ทําไดโดยกําหนดใน attribute TYPE โดยใช
  รูปแบบ
           <INPUT TYPE= ”ชนิด” … (Attribute อื่นๆ) >
                  โดยที่ชนิด อาจเปน
                  TEXT                           กรอบปอนขอความบรรทัดเดียว (Text box)
                  PASWORD                        กรอบปอนรหัสผาน (เมื่อพิมพจะปรากฎ *)
                  RADIO                          ปุมแบบวิทยุ (Radio button)
                  CHECKBOX                       ชองทําเครื่องหมาย (Checkbox)
                  SUBMIT                         ปุมสงคา ใน FORM (Submit button)
                                                 สําคัญ เพราะ เปนตัวสงขอมูลใน Form ไปประมวลผล
                  RESET                          ปุมเคลียรคาสวนรับขอมูลใน FORM (Reset button)
                  BUTTON                         ปุมอิสระเพื่อใชทําหนาที่ใดๆ
                  IMAGE                          รูปภาพที่ทําหนาทีเ่ หมือนปุมคําสั่ง
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 81
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008

  TEXT
           TEXT เปนกรอบปอนขอความบรรทัดเดียว (Text box) ซึ่งประกอบดวย attribute ที่
  สําคัญ ในรูปแบบ
  <INPUT TYPE=”TEXT” NAME=”ชื่อ” SIZE=”ความกวางของกรอบ(อักษร)”
            MAXLENGTH= ”ความยาวสูงสุดที่รับได” VALUE=”คาเริ่มตน”>
    ตัวอยาง
     <FORM>
     <LABEL>ชื่อ-สกุล
     <INPUT TYPE="TEXT" NAME="TEXT1" SIZE="10"
       MAXLENGTH="30" VALUE="ชื่อของคุณ">
     </LABEL>
     </FORM>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 82
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008

   PASSWORD
          PASSWORD เปนกรอบปอนรหัสผาน ซึ่งขอมูลที่ผูใชปอนจะปรากฏบนจอภาพเปน *
   PASSWORD ประกอบดวย attribute ที่สําคัญ ในรูปแบบ
   <INPUT TYPE=”PASSWORD” NAME=”ชื่อ” SIZE=”ความกวางของกรอบ(อักษร)”
           MAXLENGTH= ”ความยาวสูงสุดที่รับได” VALUE=”คาเริ่มตน”>
ตัวอยาง <FORM>
         <LABEL>User name
         <INPUT TYPE="TEXT" NAME="UNAME" SIZE="10" MAXLENGTH="10">
         <BR>
         Password&nbsp;&nbsp;
         <INPUT TYPE="PASSWORD" NAME="PWORD" SIZE="10“
                 MAXLENGTH="10">
         </LABEL>
         </FORM>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 83
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008


   RADIO
             RADIO (ปุมวิทยุ) เปนการสรางกลุมตัวเลือก ที่ผูใชสามารถเลือกไดเพียง
   ตัวเลือกเดียวจากภายในกลุมเทานั้น ประกอบดวย attribute ที่สําคัญในรูปแบบ
   <INPUT TYPE=”RADIO” NAME=”ชื่อ” VALUE=”คาประจําปุม” CHECKED>

   หมายเหตุ        RADIO กลุมเดียวกันจะใชชื่อ(NAME) เดียวกัน และ attribute CHECKED
   กําหนดให RADIO ตัวใดตัวหนึ่งถูกเลือกโดยอัตโนมัติ เมื่อเริ่มตนแสดง (ใชไดเพียงที่เดียวใน
   กลุม)




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 84
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008


  ตัวอยาง

     <FORM>
     <LABEL>
     <INPUT TYPE="RADIO" NAME="SEX" VALUE="1" CHECKED>ชาย
     <BR>
     <INPUT TYPE="RADIO" NAME="SEX" VALUE="2">หญิง
     </LABEL>
     </FORM>




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 85
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008


  CHECKBOX
         CHECKBOX เปนการสรางกลุมตัวเลือก ที่ผูใชสามารถเลือกไดมากกวาหนึ่งตัวเลือกจาก
  ภายในกลุม ประกอบดวย attribute ที่สําคัญ ในรูปแบบ
     <INPUT TYPE=”CHECKBOX” NAME=”ชื่อ[ ]” VALUE= ”คาประจําปุม”
       CHECKED>
  หมายเหตุ CHECKBOX จะเปนอาเรย คือใชชื่อเดียวกัน แตจะมีดัชนีเปนตัวแบงแยก
           โดยที่ดัชนีตัวแรกเริ่มที่ 0 (อาจไมระบุดัชนีก็ได)




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 86
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008


   ตัวอยาง



    <FORM>
    <INPUT TYPE="CHECKBOX" NAME="hobby[0]" VALUE="1" CHECKED>
    อานหนังสือ<BR>
    <INPUT TYPE="CHECKBOX" NAME="hobby[1]" VALUE="2" CHECKED>
    เลนเกมส<BR>
    <INPUT TYPE="CHECKBOX" NAME="hobby[2]" VALUE="3">เลน Internet
    </FORM>

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 87
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008


    SUBMIT และ RESET
                                                                                          ่
              SUMIT เปนปุมที่ใชสงขอมูลในสวนรับขอมูลทั้งหมดบน Form ไปยัง Web page อืน
    (ที่ระบุหลัง ACTION) เพื่อประมวลผล
              สวน RESET เปนปุมที่ใชยกเลิก(ลาง) ขอมูลในสวนรับขอมูลบน Form ใหวาง

               SUMMIT และ RESET ประกอบดวย attribute ที่คลายๆกัน ในรูปแบบ
            <INPUT TYPE=”SUBMIT” NAME=”ชื่อ” VALUE=”ขอความบนปุม” >
            <INPUT TYPE=”RESET” NAME=”ชื่อ” VALUE=”ขอความบนปุม” >




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 88
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008


  ตัวอยาง


       <FORM ACTION="submit.html" METHOD="POST">
       <LABEL>User name
       <INPUT TYPE="TEXT" NAME="UNAME" SIZE="10"
       MAXLENGTH="10">
       <BR>Password&nbsp;&nbsp;
       <INPUT TYPE="PASSWORD" NAME="PWORD" SIZE="10"
       MAXLENGTH="10">
       </LABEL>
       <BR>
       <INPUT TYPE="SUBMIT" NAME="ok" VALUE="ตกลง">
       <INPUT TYPE="RESET" NAME="cancel" VALUE="ยกเลิก">
       </FORM>

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 89
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008


   BUTTON
          BUTTON เปนปุมคําสั่งที่สามารถนําไปใชงานไดอยางหลากหลาย กวา SUBMIT และ
   RESET (สามารถใช BUTTON ทําเปน SUBMIT และ RESET ได)
          BUTTON มี attribute ที่เพิ่มเติมจาก SUBMIT และ RESET คือ attribute ONCLICK
   รูปแบบ <INPUT TYPE=”BUTTON” NAME=”ชื่อ” VALUE=”ขอความบนปุม”
                ONCLICK=”ชื่อฟงกชัน( )”>

          โดยที่ ชื่อฟงกชัน เปนชื่อของฟงกชันที่เขียนโดยใช Java Script (เปนชุดคําสั่งที่
   ประมวลผลที่ Client หรือ Browser (Client-side Script) กอนที่จะสงไปที่ Server)

                  และเมื่อมีการ click ที่ปุมจะทําการเรียกใชฟงกชันที่มีชื่อตามที่ระบุ

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 90
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008


  IMAGE
                 IMAGE เปนการสรางปุมจากรูปภาพ โดยมี attribute ที่สําคัญ ในรูปแบบ

                 <INPUT TYPE=”IMAGE” NAME=”ชื่อ” SRC=”ชื่อแฟมรูปภาพ”
                       ONCLICK=”ชื่อฟงกชัน( )”>

                 โดยที่สวนของ ชื่อฟงกชัน เหมือนกับ BUTTON
                 ซึ่งเมื่อมีการ click ที่ IMAGE(ปุม) จะทําการเรียกใชฟงกชันที่มีชื่อตามที่ระบุ




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 91
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008


    HIDDEN
            จริงๆแลว HIDDEN ไมใชสวนรับขอมูล แตเปนสวนขอมูลที่ถูกซอน (ไมปรากฎบน
    Browser) ใชสําหรับสงขอมูลไปยัง Web page โดยที่ไมตองการใหผูใชเห็น
    รูปแบบ
            <INPUT TYPE= "HIDDEN" NAME= "ชื่อ" VALUE= " คาที่ตองการสง">




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 92
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 FORM
                                                                                                       STUDENT DEVELOPMENT 2008


    การใช Form เพื่อสงขอมูลไปยัง Web page อื่น

              โดยปกติขอมูลที่ผูใชปอนในสวนรับขอมูล บน Form จะถูกสงให Web page หนาอื่นซึ่ง
    บรรจุโปรแกรมประเภท CGI ( คือ Web page ประเภท Dynamic Web page) เพื่อนําขอมูลที่ผใช    ู
    ปอนไปประมวลผล
              ดังนั้นการทํางานสวนใหญจะเกี่ยวของกับ Form และการสงขอมูลบน Form
    ไมวาจะดวยวิธี POST หรือ GET ซึ่งการนําคาในสวนรับขอมูลไปใช มักจะเกี่ยวของกับ attribute
              NAME เพื่ออางถึงชื่อสวนรับขอมูลบน FORM และ
                                           ู
              VALUE เพื่ออางถึงขอมูลที่ผใชปอนในสวนรับของมูลบน FORM

                   ซึ่งจะกลาวถึงในรายละเอียด เมื่อถึงสวนของการเขียนคําสั่ง PHP

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 93
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
         บทที่ 3
           PHP
(Professional Home Page)



                           94
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


              PHP (Professional Home Pages Hypertext Preprocessor) PHP เปนภาษาจําพวก
     Scripting Language ซึ่งคําสั่งตางๆจะเก็บอยูในไฟลทเี่ รียกวา สคริปต (script) และเวลาใชงาน
     ตองอาศัยตัวแปลคําสั่งเหลานั้น(แปลแลวทําทีละคําสั่ง)

           PHP ไดรับการพัฒนาและออกแบบมา เพื่อใชในการสรางเอกสารแบบ Dynamic
     HTML ซึ่งเนื้อหาสามารถถูกเปลี่ยนแปลงไดตลอดเวลา ตามปฏิสัมพันธ (Interactive) กับผูใช

               PHP เปนภาษาที่จัดเปน Server-side Scripting Language (คําสั่งจะถูกแปลและ
     ประมวลผลในฝง Server) และเปน HTML-Embedded Scripting Language คือ สามารถฝง
     คําสั่ง PHP ไวรวมกับ Tag HTML มาตรฐาน



ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 95
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008

     วิวัฒนาการของ PHP

     • พัฒนาขึ้นโดย Rasmus Lerdorf (ป 1994)
       ชวงแรกใชภาษา Perl ในการพัฒนา
       ตอมาไดเปลี่ยนมาใชภาษา C
     • ป 1995 ถูกตั้งชื่อวา PHP/FI
     • ป 1998 ไดเปลี่ยนชื่อมาเปน PHP3
     • ป 2003 พัฒนาขึ้นมาเปน PHP4
     • ป 2007 รุนลาสุดคือ PHP5




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 96
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                                       STUDENT DEVELOPMENT 2008

 การทํางานของ PHP
          ชุดคําสั่ง(Script) PHP จะถูกเก็บในไฟลที่มีนามสกุล .php บน Web server ซึ่งในไฟล
.php นอกจากคําสั่ง PHP อาจมี tag HTML มาตรฐานรวมอยูดวย
          โดยที่คําสั่ง PHP จะเปนการทํางานเพื่อใหไดผลลัพธตามตองการ สวน Tag HTML จะ
ถูกใชจัดรูปแบบของผลลัพธเหลานั้น

                                                                       .php                                                            Database
                                                             )    ไ ฟล
                                                         uest




                                                                                                       สงไ ะแป
                                                                                                         ฟ ล
                                                     (Req rver




                                                                                                          ซงจ
                                                                                                           ึ่
                                                                                                              ล .p คําส
                                                   อ
                                               องข eb Se




                                                                                                                   hp ง PH
                                             ร




                                                                                                                                            กับฐานขอมูล
                                                                                                                                            ในคําสังอาจติดตอ
                                                    W                               Web Server




                                                                                                                     ไป P
                                                 บน




                                                                                                                       ให แ ล
                                                                                                                         ั่
                                                                                                                             PH วท




                                                                                                                                                   ่
                                                                                                                                P E ํางาน
                                                                                                                                   ngi
                                                                                                                                      ng
                                                                    ้
                                               ผลลัพธจากการทํางานทังหมด จะถูกแปลงใหอยูในรูป Tag                                     PHP Engine
                                                HTML มาตรฐาน เพื่อใหสามารถแสดงผลบน Browser ได                                         (PHP.EXE)
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                                              97
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                         STUDENT DEVELOPMENT 2008

 ตัวอยาง ไฟล index.php


                                                                     ผลลัพธเมื่อแสดง
                                                                     บน Browser
                              คําสั่ง PHP
                                                                                 L
                                                                               TM
                                                                          ั่ง H ี้
                                                                      คําส ge น
                                                                 สดง ง Pa
                                                            สั่งแ สรา
                                                                ที่ใช
                                                                                                       ผลลัพธจะถูกแปลง
                                                          จะแสดงคําสั่ง HTML                           เปน Tag HTML
                                                          ที่ใชสราง Page นี้
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                   98
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008



             ภาษา PHP ถูกพัฒนามาจากภาษา C ดังนั้น ไวยากรณ(Syntax) สวนใหญจะคลาย
     กับ ภาษา C

     ลักษณะของคําสั่งใน PHP

               ชื่อตางๆ เชน ชื่อคําสั่ง ชื่อฟงกชัน ชื่อตัวแปร เปน Case-Sensitive
                              ื
     (ตัวพิมพเล็กและใหญถอวาตางกัน)

                     ทุกคําสั่งปดทายดวย ;



ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 99
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    การแทรกคําสั่ง PHP (PHP Script)
             การแทรกคําสั่ง PHP ลงในเอกสาร HTML ทําไดหลายวิธี
    แบบที่ 1 XML style (Extensible Markup Language)
             คําสั่งอยูใน tag <?php … ?>
             ตัวอยาง          <?php
                                       echo "Hello World!";
                               ?>

    แบบที่ 2 SGML style (Standard Generalized Markup Language)
             คําสั่งอยูใน tag <? … ?>       (นิยมใชมากที่สุด)
             ตัวอยาง          <?      echo "Hello World !";
                               ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               100
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    แบบที่ 3 Java Language style
              คําสั่งอยูใน tag <script language="php"> … </script>
              ตัวอยาง          <script language="php">
                                          echo "Hello World!";
                                </script>

    แบบที่ 4 ASP Style
             คําสั่งอยูใน tag                    <% … %>
             ตัวอยาง                             <%
                                                        echo "Hello World !";
                                                  %>

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               101
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    ทดลองสราง PHP Script
           เรียกใชโปรแกรม NotePad จาก start – Programs - Accessories
           แลวพิมพคําสั่ง ดังตัวอยาง




                   แลวบันทึกในแฟมชื่อ test.php ภายใน Folder c:\Appserv\www




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               102
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008

   ทดลองเรียกใช PHP Script
           ไฟล test.php จะถูกเก็บใน c:\Appserv\www




                  ซึ่งเปน Home Directory (หรือ Root Directory) ของ Web Server
                                 ี่
                  การเรียกไฟลทอยูใน Home Directory ทําไดโดยพิมพ
                  http://localhost/test.php
                  หรือ http://127.0.0.1/test.php


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               103
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008

   ทดลองเรียกใช PHP Script

                  localhost หรือ 127.0.0.1 หมายถึง เครื่องที่กําลังใชงานในขณะนั้น
       เราไดติดตั้งโปรแกรม Apache Web Server ซึ่งจะจําลองใหเครื่องที่ใชงานขณะนั้นทํา
       หนาที่เปน Web Server




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               104
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    ทดลองเรียกใช PHP Script
              กรณีที่ตองการอางถึงไฟลที่อยูภายใน Directory ยอย ภายใต Home Directory
          ่
    ใหเริมระบุตั้งแต Home Directory ไปยัง Directory นั้น โดยใชสัญลักษณ / คั่นระหวาง
    Directory เชน ไฟล test.php ถูกเก็บใน C:\AppServ\www\CS




                   สามารถเรียกใชโดยพิมพ
                   http://localhost/CS/test.php



ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               105
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    ชนิดขอมูล
    Integer เลขจํานวนเต็ม อาจมีคาเปนบวกหรือลบ และสามารถระบุในแบบเลขฐานสิบ (ปกติ)
             หรือฐานแปด หรือฐานสิบหก
    Float          เลขจํานวนจริง (ทศนิยม) อาจมีคาเปนบวกหรือลบ และสามารถระบุในแบบ
                   เลขทศนิยม หรือเลขยกกําลัง
    String กลุมของตัวอักษร
    Boolean (ตรรก) คา true (TRUE) หรือ false (FALSE) หรือใชเปนคาตัวเลขเหมือน
            ในภาษา C คือ 0 แทนคา false และเลขอื่นๆที่ไมเทากับ 0 แทน true
    Array          อารเรย เก็บขอมูลเปนกลุมหรือเปนชุด
    Object ออปเจ็กต (วัตถุ)

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               106
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    Integer
             เลขจํานวนเต็ม อาจมีคาเปน บวกหรือ ลบ และสามารถระบุในแบบเลขฐานสิบ(0-9)
    หรือ ฐานแปด (0-7) หรือ ฐานสิบหก (0-9, a-F หรือ A-F)
    ตัวอยาง 10               ฐานสิบคาบวก
             -321             ฐานสิบคาลบ
             032              ฐานแปด ขึ้นตนดวย 0 กรณีนี้มีคาเทากับ 26 (ฐานสิบ)
             0x3E หรือ 0X3E ฐานสิบหก ขึ้นตนดวย 0x หรือ 0X กรณีนี้มีคาเทากับ 62
    Floating-point
             เลขจํานวนจริง (ทศนิยม) อาจมีคาเปนบวกหรือลบ และสามารถระบุในแบบเลข
    ทศนิยม หรือเลขยกกําลัง
    ตัวอยาง 1.234
             -1234
             12343e-3 หรือ 12343E-3
             0.001234E3 หรือ 12343e-3
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               107
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008

    String
              กลุมของตัวอักษร ซึ่งอาจจะเปน ตัวอักษรปกติ ตัวเลข หรือสัญลักษณ หรือตัวอักษร
    ควบคุม (Escape Sequence)
              ขอมูลชนิด String ตองอยูภายใน " "
    ตัวอยาง "Hello World!", "1/2 Meaung Chiangmai" , "053241255" , "นายสมเดช เกงกาจ"
             ตัวอักษรควบคุม (Escape Character) คือตัวอักษรพิเศษที่ไมปรากฏบนจอภาพ ใช
    สําหรับควบคุม เชน ควบคุมตําแหนง cursor ตัวอักษรควบคุมจะตองอยูตามหลัง \ เสมอ
             ตัวอักษร            หนาที่
             \n       เลื่อน cursor ขึ้นบรรทัดใหม
             \t       เลื่อน cursor ไปยังตําแหนง Tab ถัดไป ( ประมาณ 6 ตัวอักษร)
             \r       เลื่อน cursor ไปตนบรรทัด
             \\       พิมพเครื่องหมาย \
             \$       พิมพเครื่องหมาย $
             \"       พิมพเครื่องหมาย "
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               108
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    Boolean
             (ตรรก) คาความจริง คือ จริง (true หรือ TRUE) และ เท็จ ( false หรือFALSE) หรือ
    อาจใชเปนคาตัวเลขเหมือนในภาษา C คือ 0 หมายถึงเท็จ (false) สวนคาอื่นๆที่ไมใช 0 เปนจริง
    (true)

    Array
                   Array(ตัวแปรชุด) ใน PHP ตางจาก Array ในภาษา C โดย Array ใน PHP
                   สามารถเปลี่ยนแปลงขนาดของ Array ไดตลอดเวลา (Dynamic Array)
                   และสมาชิกใน Array สามารถมีชนิดแตกตางกันได

                   ซึ่งจะกลาวถึง Array โดยละเอียดอีกครั้งหนึ่ง

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               109
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    Object
            นอกเหนือจากการเขียนโปรแกรมแบบโครงสราง (Structure Programming) แลว
    PHP ยังสนับสนุนการเขียนโปรแกรมแบบ Object-oriented Programming
    โดยอนุญาตใหผูพัฒนาทําการนิยาม Class แลวสราง Object ขึ้นจาก class นั้น
            รูปแบบ การสราง Class class ชื่อ_class {
                                              // สมาชิกใน class
                                        }
            ตัวอยาง <? class test {
                              var $f1 = "1233";
                              function Greet( ) {
                                  echo "Hello World" ;
                              }
                          }
                         $obj1 = new test( );
                         echo "$obj1->f1";
                         $obj1->Greet ( );
                      ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               110
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


ตัวแปร (Variable)
        ตัวแปรเปนพื้นที่เก็บขอมูลในหนวยความจํา ซึ่งสามารถเปลี่ยนแปลงขอมูลทีเ่ ก็บได
ตลอดเวลา ในขณะที่โปรแกรมทํางาน
การประกาศตัวแปร
        การประกาศตัวแปรใน PHP คลายกับในภาษา Perl คือ
        ชื่อตัวแปรขึ้นตนดวย $ และ ไมตองกําหนดชนิดของตัวแปร (จะดูจากชนิดขอมูลทีตัวแปร่
เก็บในขณะนั้น)
        ตัวอยางเชน
                            $i = 10;
        // ประกาศตัวแปรชื่อ i แลวใหเก็บคาเริ่มตนเปนเลขจํานวนเต็ม 10


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               111
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008

ชื่อตัวแปร
          การตั้งชื่อตัวแปร ใน PHP
              • ขึ้นตนดวย $ (ตัวแรก)
              • ตัวที่สอง ตองเปนตัวอักษร หรือ _ (หามขึ้นตนดวยตัวเลข)
              • มีความยาวไมเกิน 255 ตัวอักษร
              • หามมีชองวาง และ . ในชื่อ
              • ตองไมซ้ํากับคําสงวน เชน ชื่อคําสั่ง ชื่อฟงกชัน
              • เปน Case-sensitive (ตัวพิมพเล็กและตัวพิมพใหญถือวาตางกัน)




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               112
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    ตัวแปรใน PHP
             การประกาศตัวแปรใน PHP ไมตองกําหนดชนิดของตัวแปร เพราะตัวแปรใน PHP
    สามารถเก็บขอมูลชนิดใดก็ได
            รูปแบบ $ชื่อตัวแปร = คาเริ่มตน ;

                                  ถาไมกําหนดคาเริ่มตนจะเปน null (หรือ NULL) คือ คาวาง

    ตัวอยาง การประกาศตัวแปร เพื่อเก็บขอมูลชนิดตางๆ
             $i = 10;                  // ตัวแปรเก็บคาเลขจํานวนเต็ม
             $x = -2.3e3;               // ตัวแปรเก็บคาเลขจํานวนจริง
             $str = "Hello World! ";    // ตัวแปรเก็บคาเลข String
             $cond = true;              // ตัวแปรเก็บคาตรรก (boolean)
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               113
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    ตัวอยาง การประกาศตัวแปร เพื่อเก็บขอมูลชนิดตางๆ
             $arr[3];            // ประกาศ Array ที่มีสมาชิกยอย 4 ตัว index 0 ถึง 3
             $arr[0] = 1;        // สังเกต สมาชิกแตละตัวใน Array มีชนิดตางกันได
             $arr[1] = 12.5;
             $arr[2] = "string";
             $arr[3] = false;

    และตัวแปรตัวเดียว ในขณะใดขณะหนึ่งสามารถใชเก็บขอมูลชนิดใดก็ได
            $i = -10;
            $i = 1.23;                      หมายเหตุComment ใน PHP สามารถระบุ
            $i = false;                     ตามหลัง // หรือภายใน /* … */
            $i = "Hello";                   ในลักษณะเดียวกับภาษา C
            $i[5];                                               ู
                                            ซึ่ง Comment จะไมถกแปลและประมวลผล
            // ทําให กลายเปนตัวแปร Array
            $i[0] = 25;
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               114
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


              ตัวแปรตัวหนึ่ง ในเวลาที่แตกตางกัน สามารถเก็บขอมูลชนิดใดก็ได
                                                 ่
    ดังนั้นอาจตองมีการตรวจสอบชนิดของขอมูลทีแก็บในตัวแปร เพื่อความถูกตอง
    PHP ไดจัดเตรียมฟงกชัน ที่เกี่ยวกับการทดสอบชนิดขอมูลไวดังนี้
            empty($ชื่อตัวแปร)             ตรวจสอบวาตัวแปรวางเปลาหรือไม (ไมไดขอมูลเก็บอยู)
            isset($ชื่อตัวแปร)             ตรวจสอบวาตัวแปรชื่อนี้ มีอยูแลวหรือยัง
            unset($ชื่อตัวแปร)                                        ้
                                           ทําลายตัวแปรที่ระบุ พรอมทังคืนหนวยความจําใหแกระบบ
            gettype($ชื่อตัวแปร)           สงกลับชนิดขอมูลในตัวแปร
            is_long($ชื่อตัวแปร)           ตรวจสอบวาชนิดขอมูลในตัวแปรเปนเลขจํานวนเต็มหรือไม
            is_double($ชื่อตัวแปร)         ตรวจสอบวาชนิดขอมูลในตัวแปรเปนเลขจํานวนจริงหรือไม
            is_string($ชื่อตัวแปร)         ตรวจสอบวาชนิดขอมูลในตัวแปรเปน string หรือไม
            is_object($ชื่อตัวแปร)         ตรวจสอบวาชนิดขอมูลในตัวแปรเปนobject หรือไม
    หมายเหตุ สําหรับรายละเอียดของฟงกชัน และการใชงานฟงกชัน จะกลาวถึงในภายหลัง
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               115
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


   คําสั่งสําหรับแสดงผล
           ใน PHP ไดจัดเตรียมคําสั่งสําหรับแสดงผล ประกอบดวย
   1. คําสั่ง echo
          รูปแบบ echo "ขอมูลที่ตองการแสดง", ขอมูลที่ตองการแสดง;
                            
           โดยที่ขอมูลที่ตองการแสดงอาจเปน
             string ซึ่งอยูภายใน " "
                 ซึ่ง String อาจประกอบดวย ตัวอักษร ตัวเลข tag HTML ตัวอักษรควบคุม(\)
            หรือ นิพจน(Expression) หมายถึงสิ่งที่ใหคา ซึ่งอาจจะเปน
                                   คาคงที่ เชน -100, 3.1414, "Hello World!", true
                                   คาของตัวแปร เชน $i
                                   คาจากนิพจนจริงๆ เชน 3 + 2, 4 > 3 , $i+4*5
                                   คาที่สงกลับจากฟงกชัน เชน gettype($i);
           และสามารถแสดงขอมูลไดหลายชุด โดยแตละชุดคั่นดวย , หรือ .
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               116
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008

        ตัวอยาง
        กรณี String
              echo "123.45";
              echo "1 Meaung Chiangmai 50000";
              echo "<B>Hello</B> <BR> World";
                      //<B> tag กําหนดตัวหนา <BR> tag สั่งเวนบรรทัด
              $i = 10;
              echo "value of $i = $i";           // จะแสดง value of 10 = 10
              // ถาตองการใหแสดง $ ตองใชในลักษณะ ตัวอักษรควบคุม \$
              echo "value of \$i = $i";          // จะแสดง value of $i = 10




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               117
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008

        ตัวอยาง
        กรณีนิพจน
              echo 3+2*5;

        กรณีคาในตัวแปร
             echo $x;

        กรณีคาจากการเรียกใชฟงกชัน
             echo gettype($x);

        กรณีแสดงผลหลายๆสวน
             $i = 10;
             echo "value of \$i = ", $i , " and \$i * 10 = " , $i * 10;
             // จะได value of $i = 10 and $i * 10 = 100
        หรือ echo "value of \$i = ". $i . " and \$i * 10 = " . $i * 10;
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               118
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


   2.       คําสั่ง print
            คําสั่ง print คลายกับ echo แต print ไมสามารถแสดงผลหลายสวนโดยใช , ได
            รูปแบบ                            
                           print "ขอมูลที่ตองการแสดง";
            หรือ                            
                           print ขอมูลที่ตองการแสดง ;




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               119
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


   3.       ฟงกชัน printf( )
            ฟงกชัน printf( ) ใน PHP เหมือนกับในภาษา C คือ สามารถสั่งจัดรูปแบบการแสดงผลได
            รูปแบบ printf (" string");                      // ไมจัดรูปแบบการแสดงผล
            หรือ          printf ("format_string", นิพจน); // จัดรูปแบบการแสดงผล


            โดยที่แบบแรก (ไมจัดรูปแบบ) สวนที่เปน string เหมือนกับสิ่งที่ใชในคําสั่ง echo
            ตัวอยาง printf("\"Hello<BR>World\"<BR>123d");




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               120
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


   3.       ฟงกชัน printf( )
            แบบที่สอง (จัดรูปแบบ)                                printf ("format_string", นิพจน);

            สวนที่เปน นิพจน หมายถึง สิ่งที่ใหคา เหมือนกับสิ่งที่ใชในคําสั่ง echo
            สวน format_string เปนการกําหนดรูปแบบการแสดงผล ซึ่งระบุหลัง %




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               121
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


        สวน format_string เปนการกําหนดรูปแบบการแสดงผล ซึ่งระบุหลัง %
   รูปแบบ หนาที่
       %d แสดงเปนเลขจํานวนเต็มในรูปแบบเลขฐานสิบ (ปกติ) แบบมีเครื่องหมาย (+/-)
       %u แสดงเปนเลขจํานวนเต็มในรูปแบบเลขฐานสิบ (ปกติ) แบบไมมีเครื่องหมาย (+)
       %b แสดงเปนเลขจํานวนเต็มในรูปแบบเลขฐานสอง (Binary)
       %o แสดงเปนเลขจํานวนเต็มในรูปแบบเลขฐานแปด (Octal)
       %x แสดงเปนเลขจํานวนเต็มในรูปแบบเลขฐานสิบหก (Hexadecimal 0-9 a-f)
       %X แสดงเปนเลขจํานวนเต็มในรูปแบบเลขฐานสิบหก (Hexadecimal 0-9 A-F)
       %c แสดงเปนตัวอักษร (Character) (ตัวอักษรที่ตรงกับรหัส ASCII ที่ระบุ)
       %f แสดงเปนเลขจํานวนจริง (Floating-point) แบบทศนิยม
       %e แสดงเปนเลขจํานวนจริง แบบยกกําลัง(Exponential)
       %s แสดงเปน String
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               122
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


 ตัวอยาง
 $i = 10;
 printf("value of \"\$i\" = <B>%d<B>", $i); // จะนําคาจากนิพจนไปแสดงในตําแหนงของรูปแบบ

 ผลลัพธ : value of "$i" = 10


 $ch = 65;
 printf("%s of %d is %c", "ASCII code", 65, $ch);

 ผลลัพธ : value of "$i" = 10 ASCII code of 65 is A

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               123
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    Variable Variables (ตัวแปรของตัวแปร)
                                              ั
              ใชสรางตัวแปร ที่ชื่อตัวแปรมีลกษณะเปน dynamic คือ ชื่อตัวแปรสามารถเปลี่ยนแปลงได
    ตามคาที่เก็บในอีกตัวแปรหนึ่ง
    ตัวอยาง
              <? $value = "x"; // ตัวแปร
                 $$value = 10; // เกิดตัวแปรใหมชื่อวา $x (ตัวแปรของตัวแปร) โดย $x = 10;
                 echo "x=" . $x . "<br/>"; // x=10
                 echo "value=" . $value; // value=x
              ?>

                   $value คือ ตัวแปร value เก็บคา "x"
                   $$value คือ ตัวแปรที่มีชื่อเดียวกับคาในตัวแปร value คือ x ซึ่งเก็บคา 10
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               124
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    ตัวแปรระบบ
            เปนตัวแปรที่ PHP ไดเตรียมไวให ซึ่งสามารถนํามาใชไดทันที เชน

    DOCUMENT_ROOT                                                                              ้
                                                                 แสดง Root Directory ที่อานครังแรก
    GATEWAY_INTERFACE                                            แสดงคาอินเทอรเฟซของ CGI เชน CGI/1.1
    HTTP_ACCEPT_LANGUAGE                                         ภาษาที่ใชในขณะนั้น เชน th
    HTTP_CONNECTION                                              แสดงสถานภาพการเชื่อมตอ เชน Keep-Alive
    HTTP_USER_AGENT                                              แสดงประเภทและเวอรชันของ Browser ที่เรียกเขามา
    HTTP_USER_AGENT                                              แสดงเวอรชั่นของ Browser
    PATH_INFO                                                    แสดงชื่อเอกสาร PHP ที่กําลังทํางานอยู
                                                                 (เหมือน SCRIPT_NAME )
    PATH_TRANSLATED                                              แสดง Directory ของสคริปตที่กําลังทํางานอยู
    QUERY_STRING                                                 แสดง String ที่สงตอทาย URL เขามา (กรณี GET)

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               125
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    ตัวแปรระบบ

    REMOTE_ADDR                                   แสดงคา IP Address ของ Browser
    REMOTE_PORT                                   แสดงพอรตการเชื่อมตอ
    REQUEST_METHOD                                แสดงการรับ - สงคา เปนแบบ GET หรือ POST
    SCRIPT_NAME                                   แสดงชื่อเอกสาร php
    SERVER_NAME                                   แสดงชื่อเครื่อง Server
    SERVER_PORT                                   แสดงพอรตของ Server
    SERVER_PROTOCOL                               แสดงโปรโตคอลของ Server
    SERVER_SOFTWARE                               แสดงซอฟตแวรของ Server




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               126
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    แบบฝกหัด

    จงสั่งแสดงขอมูลตอไปนี้ บน Web page
             ชือเครื่อง Server
             OS ที่ Server ใช
             Version ของ PHP ที่ใช
             ชนิดของ Browser ที่ Client ใช
             หมายเลข IP address ของ Client




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               127
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


  คาคงที่ (Constant)
       เปนการตั้งชื่อใหกับคาของขอมูล ซึ่งคานั้นจะไมสามารถเปลี่ยนแปลงไดตลอด
  การทํางานของโปรแกรม
       ประโยชนของการตั้งชื่อคาคงที่ คือ เพื่อใหงายตอการจดจําคา และการอางถึงคา
  รวมทั้งงายตอการแกไข

           ปกติชื่อของคาคงที่จะเปนตัวพิมพใหญ เพื่อใหแตกตางจากชื่อตัวแปร




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               128
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


  ประเภทของคาคงที่
  1. คาคงที่ที่กําหนดไวแลวใน PHP
      สามารถนําไปใชไดทันที ตัวอยางเชน
      คาคงที่               ความหมาย
      __FILE__               แสดงชื่อไฟลสคริปตกําลังใชงานอยู มักใชรวมกับ
                             __LINE__
      __LINE__               เปนคาคงที่ที่แสดงจํานวนบรรทัดของไฟลสคริปตที่เปดใช งานอยู
                             ใชเพื่อแสดงขอผิดพลาดของโปรแกรมในบรรทัดที่พบ
      PHP_VERSION            เปนคาคงที่ที่แสดงเวอรชั่นของ PHP ที่นํามาใชงาน
      PHP_OS                 เปนคาคงที่ที่แสดงระบบปฏิบัติการที่ใช PHP นี้ เชน
                             Windows, Linux
      TRUE                   คาความจริง
      FALSE                  คาความเท็จ
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               129
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


  2.       คาคงที่ที่ผูใชกําหนดเอง (User-defined constant)
           ผูใชสามารถกําหนดคาคงที่ ไดโดยใชฟงกชัน define( )
           ในรูปแบบ define(ชื่อคาคงที่, คาคงที่);

  ตัวอยาง
        define(PI, 3.141592654); //หลังจากนี้ ถาอางถึงคา PI จะหมายถึงคา 3.141592654
        define(YES, true);       //หลังจากนี้ ถาอางถึงคา YES จะหมายถึงคา true
        define(NO, false);
        define("PYU", "Payap University");

           สังเกตุ ถาคาเปน String สวนของชื่อคาคงที่ตองอยูใน " " ดวย

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               130
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    ตัวบอกกระทํา (Operator)
             นิพจน (Expression) ประกอบดวย ตัวถูกกระทํา (Operand) และตัวบอกกระทํา
    (Operator) เชน
             นิพจน 3 + 2
                      3 และ 2 คือ ตัวถูกกระทํา และ
                      + คือ ตัวบอกกระทํา




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               131
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    ใน PHP ประกอบดวยกลุมของตัวบอกกระทําดังนี้

    Assignment operator
            ตัวบอกกระทํากําหนดคา คือ = ใชกําหนดคาใหกับตัวแปร
            รูปแบบ ตัวแปร = นิพจน ; // นิพจน คือ สิ่งที่ใหคา

                   เชน $x = 12.345;
                        $i = $j;
                        $i = 2+5*10;
                        $j = sqrt(100);                     // ฟงกชันหาคา Square root



ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               132
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                             STUDENT DEVELOPMENT 2008


    Arithmetic operator
              ตัวบอกกระทําคณิตศาสตร ใชในนิพจนทางคณิตศาสตร
              เครื่องหมาย      หนาที่
              +                บวก                      ลําดับความสําคัญ
              -                ลบ                       * / % มาก
              *                คูณ                      +-        นอย
              /                หาร
              %                หารเอาเศษ       (ตัวถูกกระทําตองเปนจํานวนเต็มทั้งคู)
              กรณีที่ในนิพจนประกอบดวย ตัวบอกกระทําหลายๆ ตัว จะทําตัวที่มีลําดับความสําคัญ
    สูงกวากอน        เชน    echo 3+2*5; // แสดงผลลัพธ 13
    ตัวอยาง echo 3.2+3 , "<BR>";                                                //แสดงผลลัพธ         6.2
             echo 3/2 , "<BR>";                                                  //                    1.5
             echo 3%2 , "<BR>";                                                  //                    1
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                     133
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    String operator
            ตัวบอกกระทําเชิงขอความ ไดแก . ใชเชื่อมขอความ

    ตัวอยาง $a = "Hello ";
             $b = $a . "World!";
             echo $b                                             //แสดงผลลัพธ Hello World

    PHP จะทําการแปลงชนิดใหเหมาะสมกับตัวบอกกระทํา

    คําถาม
                   echo "123" . 345;                                             // ผลลัพธ = ?
                   echo " 123" + 345;                                             // ผลลัพธ = ?
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               134
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    Type casting
            ปกติ PHP จะแปลงชนิดขอมูลโดยอัตโนมัติ
            ตัวอยาง           $y = 1 + 3.5;
            จะมีการแปลงตัวแปร 1 ใหเปน 3.5(จํานวนจริง) ดังนั้น $y จะเปนตัวแปรเก็บคา
    จํานวนจริง 4.5
                    ั
            และผูพฒนาสามารถสั่งแปลงชนิด แบบเจาะจง โดยใชตัวบอกกระทํา
    ตัวบอกกระทํา Type casting ในรูปแบบ (ชนิดขอมูล)
            เชน      (int) (double) (float) (real)

    ตัวอยาง          <?              $v1 = 123;
                                      $v2 = 456.789;
                                      $v3 = $v1 + (int)$v2;
                                      echo $v3;                               ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               135
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    Compound Assignment operator
      เปนการใช ตัวบอกกระทําคณิตศาสตร รวมกับ = (Assignment) เพื่อลดการพิมพ
            เครื่องหมาย      ตัวอยาง         เทียบเทากับ
            +=               $i +=3 ;         $i = $i +3;
            -=               $i -=3 ;         $i = $i -3;
            *=               $i *=3 ;         $i = $i *3;
            /=               $i /=3 ;         $i = $i / 3;
            %=               $i %=3 ;         $i = $i % 3;

               เปนการกระทํากับคาเดิมในตัวแปร โดยใชตัวบอกกระทําคณิตศาสตร เชน
    การเพิ่มคาในตัวแปร $i ขึ้น 2 เทา สามารถเขียนไดเปน $i *= 2;
    คําถาม นิพจน $i = $j * 5; สามารถเขียนในแบบ compound assignment ได ?
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               136
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    Comparison operator
              ตัวบอกกระทําเปรียบเทียบ ใชในนิพจนเปรียบเทียบ ซึ่งจะมีผลลัพธไดเพียง true
    (จริง)หรือ false (เท็จ) เทานั้น
              เครื่องหมาย           ความหมาย             ตัวอยาง            ผลลัพธ
              ==                    เทากับ              1==2               false
              !=                    ไมเทากับ           3 != 3             false
              >                     มากกวา              2 >2               false
              >=                     มากกวาหรือเทากับ  3 >= 3             true
              <                     นอยกวา             2<2                false
              <=                    นอยกวาหรือเทากับ  2 <= 2             true
               นิพจนเปรียบเทียบ นิยมใชรวมกับ คําสั่ง if และ คําสั่งที่เกี่ยวของกับ loop (ทําซ้ํา)
    เพื่อเปนเงื่อนไขสําหรับตัวสินใจในการทํางาน
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               137
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


 Logical operator
           ตัวบอกกระทําตรรก ใชกับนิพจนเปรียบเทียบ ซึ่งจะมีผลลัพธไดเพียง True (จริง)หรือ
 False (เท็จ) เทานั้น
           มักใชเชื่อมนิพจนเปรียบเทียบเขาดวยกัน
           เครื่องหมาย         ความหมาย                    ความหมาย
           !                   NOT (นิเสธ)        กลับคาความจริง T < -- > F
           && (หรือ and) AND (และ)                เปน T กรณีเดียวคือ T && T นอกนั้น F
           || ( หรือ or) OR (หรือ)                เปน F กรณีเดียวคือ F || F นอกนั้น T
           xor                 eXclusive OR เหมือนกันเปน F ตางกันเปน T
 หมายเหตุ T หมายถึง True และ F หมายถึง False
  แบบฝกหัด จาก $i = 60 จงเขียน PHP script เพื่อทดสอบคาใน $i
  ถาคาใน $i อยูในชวง 80 – 100 ใหแสดงขอความ Valid ถาไมแสดงขอความ Invalid
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               138
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008

    Bitwise operator
             ตัวบอกกระทําระดับบิต (Bit) คือ จะมีการแปลงขอมูลเปนเลขฐานสอง กอนกระทํา
    ดังนั้นตัวถูกกระทํา มีไดเพียง 0 และ 1 เทานั้น และผลลัพธจากการกระทําก็จะเปนไดเพียง 0 หรือ 1
    เทานั้น
            เครื่องหมาย          ความหมาย               ความหมาย
                 ~         NOT (นิเสธ)           กลับคา 0 < -- > 1
                 &         AND (และ)             เปน 1 กรณีเดียวคือ 1 & 1 นอกนั้น 0
                 |         OR (หรือ)             เปน 0 กรณีเดียวคือ 0 | 0 นอกนั้น 1
                 <<        Shift bit left        เลื่อนบิตไปทางซาย n บิต มีคาเทากับการคูณดวย 2n
                 >>        Shift bit right       เลื่อนบิตไปทางขวา n บิต มีคาเทากับการหารดวย 2n
     แบบฝกหัด จาก $i = 100 จงเขียน PHP script
                    เพื่อเพิ่มคาใน $i ขี้น 4 เทา โดยใช bitwise operator และ
                    แลวลดคาใน $i ลงครึ่งหนึ่ง โดยใช bitwise operator
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               139
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


Increment/Decrement operator
    ตัวบอกกระทําเพิ่มคา/ลดคา ใชกับตัวแปรเทานั้น ซึ่งจะเพิ่มหรือลดคาในตัวแปร ทีละ1
        รูปแบบ             ++ $ชื่อตัวแปร; หรือ $ชื่อตัวแปร++;
                           -- $ชื่อตัวแปร; หรือ $ชื่อตัวแปร--;
       ในกรณีที่ใชกับตัวแปรอยางเดี่ยวๆ การวางไวหนาหรือหลังตัวกระทํา เชน ++$i; หรือ
$i++ จะใหผลไมแตกตางกัน คือ เพิ่มหรือลดคาในตัวแปร $i ทีละ 1
       แตถาใชรวมกับ ตัวบอกกระทําอื่นดวย ตองดูไววา วางไวหนาหรือหลังตัวแปร
         วางไวหนาตัวแปร ทําการเพิ่มหรือลดคาในตัวแปรกอนทําตัวบอกกระทําอื่น
         วางไวหลังตัวแปร ทําตัวบอกกระทําอื่นกอนแลวจึงทําการเพิ่มหรือลดคาในตัวแปร
ตัวอยาง          $i = 10;
                  $i++;
                  $j = ++i*5;
                  $j = 100-i--;
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               140
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    ลําดับความสําคัญของตัวบอกกระทํา (Precedence)

              กรณีที่นิพจนประกอบดวยตัวบอกกระทําหลายๆตัว และหลายๆชนิด จะมีการเลือก
    กระทําตัวบอกกระทําที่มีลําดับความสําคัญสูงที่สุดกอน
              โดยตัวบอกกระทําใน กลุมคณิตศาสตร > กลุมเปรียบเทียบ > กลุมตรรก
              และตัวบอกกระทําชนิด unary (ตองการตัวถูกกระทําตัวเดียว) จะมีลําดับความสําคัญ
    สูงกวาตัวบอกกระทําชนิด binary (ตองการตัวถูกกระทําสองตัว)

    คําถาม                  $i = 10;
                            $j = -$i-5;
                             echo $j;
                             จะแสดง ?
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               141
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    โครงสรางการควบคุม
              ใน PHP นอกจากการเขียนคําสั่งใหทํางานตามลําดับ (Sequential ทําตั้งแตคําสั่งแรกไป
    จนถึงคําสั่งสุดทาย) แลว PHP ยังไดจัดเตรียมคําสั่ง สําหรับทางเลือกในการทํางาน
    ไวดังนี้

    คําสั่งกลุมเงื่อนไข (Conditional Statement)
                เปนคําสั่งสําหรับสรางทางเลือกในการตัดสินใจ (วาจะกระทําหรือไม หรือจะเลือกทํา
    ตามคําสั่งในกรณีใด)

                     ํ
    คําสั่งกลุมทําซ้า หรือวนรอบ (Looping)
                เปนคําสั่งสําหรับสั่งใหทําคําสั่งเดิมซ้ําๆ

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               142
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    คําสั่งกลุมเงื่อนไข (Conditional Statement)
                ประกอบดวยคําสั่ง
                if                     เปนคําสั่งสําหรับสรางเงื่อนไขในการทํางาน
                Switch … Case เปนคําสั่งสําหรับสรางทางเลือกในการทํางาน
    คําสั่ง if
                คําสั่ง if แบงเปน 3 รูปแบบ
                1. if ทางเดียว (เงื่อนไขเดียว)
                            ถาเงื่อนไขเปนจริงทํา (ถาเปนเท็จไมทําอะไร)
                2. if สองทาง (สองเงื่อนไข)
                            ถาเงื่อนไขเปนจริงทําอยางหนึ่ง ถาเปนเท็จทําอีกอยางหนึ่ง
                3. if หลายทาง (หลายเงื่อนไข)
                            จะเลือกทําคําสั่งหลังเงื่อนไขที่เปนจริง
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               143
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008

                   1. if ทางเดียว (เงื่อนไขเดียว)
                           ถาเงื่อนไขเปนจริงทํา (ถาเปนเท็จไมทําอะไร)
                   รูปแบบ if(เงื่อนไข)          หรือ if(เงื่อนไข) {
                                คําสั่ง;                     คําสั่ง_1;
                                                             คําสั่ง_1;
                                                              …
                                                              คําสั่ง_n;
                                                          }
                   หมายเหตุ เงื่อนไข คือ นิพจนที่ใหคาเปน Boolean (True, false)
                           หรือ นิพจนที่ใหคาเปนเลขจํานวน ในลักษณะเดียวกับภาษา C
                           ( 0 เปนเท็จ นอกนั้นเปนจริง)
                                  และ ถาตองการใหทํามากกวา 1 คําสั่ง ใหใสกลุมคําสั่ง ไวภายใน { }
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               144
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                          STUDENT DEVELOPMENT 2008


                   ตัวอยาง
                     $i = 5;                                                      $i = 3;
                     if ($i = 6)                                                  if($i == 0)
                        echo "$i";                                                   echo "End";
                     echo "<HR> <BR>";                                                echo "<HR> <BR>";
                     // ระวัง = ตางกับ ==
                      $i = 7;
                      if ($i%5 > 1 ) {
                         echo "Greater ";
                         echo "than 1" ;
                      }
                      echo "<HR> <BR>";
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                  145
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


                   2. if สองทาง (สองเงื่อนไข)
                           ถาเงื่อนไขเปนจริงทําอยางหนึ่ง ถาเปนเท็จทําอีกอยางหนึ่ง
                   รูปแบบ if(เงื่อนไข)         หรือ if(เงื่อนไข) {
                               คําสั่ง;                      คําสั่ง_1;
                           else                              …
                               คําสั่ง;                      คําสั่ง_n;
                                                          }else {
                                                             คําสั่ง_1;
                                                             …
                                                             คําสั่ง_n;
                                                          }
                   หมายเหตุ ถาเงื่อนไขเปนจริง ทําคําสั่งหลัง if ถาเปนเท็จทําหลัง else
                   และตองการใหทํามากกวา 1 คําสั่ง ใหใสกลุมคําสั่งเหลานั้นไวภายใน { }

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               146
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                                  STUDENT DEVELOPMENT 2008


                   ตัวอยาง           $i = 5;                                                     if(3+2-3)
                                      if ($i)                                                        echo "True";
                                         echo "True";                                             else {
                                      else                                                           echo 3+2-3;
                                         echo "False";                                               echo " False";
                                      echo "<HR> <BR>";                                           }

                                      if (!(3<2) ) {                                              $i = 4;
                                         echo "3 >= 2 ";                                          if (sqrt($i) != 2 ) {
                                         echo "<HR> <BR>";                                           echo "sqrt(4) <> 2";
                                      }                                                               echo "<HR> <BR>";
                                      else                                                        else
                                         echo "3<2" ;                                                echo "3<2" ;

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                          147
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


                   3. if หลายทาง (หลายเงื่อนไข)
                            จะทําคําสั่งหลังเงื่อนไขที่เปนจริง แตถาไมมีเงื่อนไขใดเปนจริงเลย
                   จะทําหลัง else ตัวสุดทาย

                   รูปแบบ                         if(เงื่อนไข)
                                                    คําสั่ง;
                                                  elseif(เงื่อนไข)
                                                    คําสั่ง;
                                                  elseif(เงื่อนไข)
                                                    คําสั่ง;
                                                  else
                                                    คําสั่ง;


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               148
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008

                   ตัวอยาง ถาคาในตัวแปร $i
                             นอยกวา 50       ใหพิมพ "F" ออกทางจอภาพ
                             อยูในชวง 50 79 ใหพิมพ "P" ออกทางจอภาพ
                             มากกวา 79        ใหพิมพ "G" ออกทางจอภาพ
                             $i = 55;
                             if($i < 50)
                                  echo("F");
                             elseif($i >= 50 && $i <= 79)
                                  echo("P");
                             else
                                  echo("G");
                   สังเกต การระบุเงื่อนไขตัวเลขเปนชวง จะใชตัวบอกกระทําตรรก && เชื่อมระหวาง
                           2 เงื่อนไข
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               149
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                                  STUDENT DEVELOPMENT 2008

  คําสั่ง switch …case
             เปนคําสั่งที่คลายกับ if แบบหลายทาง คือ ใชในกรณีที่มีหลายเงื่อนไข โดยจะเลือกทํา
                                               ้
  เฉพาะคําสั่งในกรณี (case) ที่ตรงกับเงื่อนไขนัน
             รูปแบบ switch(นิพจน ) {                    นิพจนคือ สิ่งที่ใหคา อาจเปน
                                     case คา1: คําสัง; ่                                              นิพจนเปรียบเทียบ(เงื่อนไข)
                                                คําสัง;       ่
                                                break;                                                 ตัวแปร
                                     case คา2: คําสัง;   ่                                            นิพจนใดๆ เชน นิพจนคณิตศาสตร
                                                คําสัง;         ่
                                                break;
                                              …                                                       การทํางาน จะเริ่มทําในสวนนิพจนกอน
                                     case คาn: คําสัง;     ่                             เมื่อไดผลลัพธ จึงเปรียบเทียบวาผลลัพธตรงกับคา
                                                คําสัง;           ่                                                    ่
                                                                                          ของ case ใด แลวจึงทําคําสังใน case นั้น
                                                break;
                                     default:                                                                                             ่
                                                                                                      แตถาไมตรงกับ case ใดเลยจะทําคําสัง
                                                คําสั่ง                                   ในสวน default
                                                คําสัง่
                                 }
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                             150
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008

  คําสั่ง switch …case

                  คําสั่งสุดทายในแตละกรณี (case) ตองเปนคําสั่ง break; เพื่อหยุด แลวออกจากคําสั่ง
  switch
                  ถาไมมี break; จะทําทุกคําสั่งที่เหลือ (ถึงแมเปนคําสั่งที่อยูใน case อื่น)




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               151
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                            STUDENT DEVELOPMENT 2008


    คําสั่ง switch …case
               คําสั่ง switch ตางจาก if หลายทาง ตรงที่
               เงื่อนไขของ switch ตองเปนคาเพียงคาเดียว แต
               เงื่อนไขของ if อาจเปนชวง เชน if( $i >=10 && $i <= 100)
             switch(3+2) {                                                        $a = 3;
    ตัวอยาง      case 5 :                                                        switch ($a) {
                      echo "5";                                                   case 1 : echo "$a = 1";
                      break;                                                               break;
                case 6 :                                                          case 2 : echo "$a = 2";
                      echo "6";                                                            break;
                      break;                                                      case 3 : echo "a = 3";
                default :                                                                   break;
                      echo "not 5 or 6";                                          default : echo " Not 1 or 2 or 3";
             }                                                                    }
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                    152
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                                    STUDENT DEVELOPMENT 2008

ตัวอยาง $a = "a";                                                                                     $a = "a";
               switch ($a) {                                                                           switch ($a) {
                     case "a" :                                            กรณีที่หลายๆ                      case "a" :
                        echo "Vowel";                                      กรณี ทําคําสั่ง                   case "e" :
                        break;
                      case "e" :                                           เหมือนกันอาจ                      case "i" :
                        echo "Vowel";                                                                        case "o" :
                         break;                                            เขียนใน                           case "u" :
                      case "i" :                                           ลักษณะ                                      echo "Vowel";
                        echo "Vowel";                                                                                  break;
                         break;                                                                              default : echo "Not vowel";
                      case "o" :
                        echo "Vowel";                                                                  }
                         break;
                      case "u" :
                        echo "Vowel";
                         break;
                     default : echo "Not vowel";
               }
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                               153
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008

แบบฝกหัด
        จงเขียน PHP Script เพื่อตรวจสอบคาในตัวแปร $score
        ถาคาใน $score < 50               แสดงขอความ Grade F
        ถาคาใน $score อยูในชวง 50 – 59 แสดงขอความ Grade D
        ถาคาใน $score อยูในชวง 60 – 69 แสดงขอความ Grade C
        ถาคาใน $score อยูในชวง 70 – 79 แสดงขอความ Grade B
        ถาคาใน $score >= 80              แสดงขอความ Grade A




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               154
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


                      ํ
    คําสั่งกลุมทําซ้าหรือวนรอบ (Looping)
                ประกอบดวยคําสั่ง
                while( )
                do …while( )
                for( )




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               155
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    คําสั่ง while
              รูปแบบ while(นิพจนทดสอบ){
                        คําสั่ง_1;
                        คําสั่ง_2;
                         …
                        คําสั่ง_n;
                     }
             นิพจนทดสอบ คือสิ่งที่ใหคา อาจเปน นิพจนเปรียบเทียบ(เงื่อนไข)
                                          นิพจนใดๆเชน นิพจนคณิตศาสตร
                                          ตัวแปร
             โดยจะทํานิพจนทดสอบกอน ถาผลลัพธเปนจริง (หรือคาที่ไมเทากับ 0) จะทําคําสั่งใน
    loop แลวกลับไปทํานิพจนทดสอบ
             ทําลักษณะนี้จนกระทั่ง ผลลัพธของนิพจนทดสอบเปนเท็จ (หรือมีคาเทากับ 0) ก็จะออก
    จาก loop (คําสั่ง while)
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               156
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    คําสั่ง while
              ลักษณะสําคัญ                        ตรวจสอบเงื่อนไขกอนทําคําสั่งใน loop
                                                  อาจไมทําคําสั่งใน loop เลย ถาเงื่อนไขครั้งแรกเปนเท็จ
    ตัวอยาง             $i = 1;
                         while($i <= 10) {
                               echo "$i<BR>";
                               $i++;
                         }
                         $i =10;
                         while($i) {
                             echo "$i<BR>" ;
                             $i--;
                         }
                         while(5)
                              echo “infinite loop<BR>" ;
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               157
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    คําสั่ง do …while( )
               รูปแบบ do {
                          คําสั่ง_1;
                          คําสั่ง_2;
                           …
                          คําสั่ง_n;
                       } while(นิพจนทดสอบ)
                   นิพจนทดสอบ คือสิ่งที่ใหคา ในลักษณะเดียวกับ while( )
                                                                                   ิ
              โดยจะทําคําสั่งใน loop กอน แลวจึงทํานิพจนทดสอบ ถาผลลัพธนพจนทดสอบ เปน
    จริง (หรือคาใดๆที่ไมเทากับ 0) ก็จะทําคําสั่งใน loop อีกครั้ง แลวทํานิพจนทดสอบ
              ทําลักษณะนี้จนกระทั่ง ผลลัพธของนิพจนทดสอบเปนเท็จ (หรือมีคาเทากับ 0) ก็จะออก
    จาก loop (คําสั่ง do…while( ) )

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               158
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    คําสั่ง do… while( )
    ลักษณะสําคัญ ตรวจสอบเงื่อนไขหลังทําคําสั่งใน loop
                       ทําคําสั่งใน loop อยางนอย 1 ครั้ง (เพราะตรวจสอบเงื่อนไขภายหลัง)
    ตัวอยาง              $i = 1;
                          do {
                                 echo "$i<BR>";
                                 $i++;
                          }while($i <= 10) ;
                          $i =10;
                          do {
                              echo "$i<BR>" ;
                              $i--;
                          } while($i);
                          do
                                echo "infinite loop<BR>" ;
                          while(5);
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               159
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


 คําสั่ง for( )
            เปนคําสั่งในการทําซ้ํา (วนรอบ) เปนจํานวนครั้งที่แนนอน รูปแบบ
                                     1                                                   2                       4
 for(กําหนดคาเริ่มตนตัวแปรนับ; ตรวจสอบคาในตัวแปรนับวายังอยูในชวง;ปรับคาตัวแปรนับ) {
 คําสั่ง_1;
                คําสั่ง_2;
                                  3
                …
                คําสั่ง_n;
 }
            โดยสวน 1 จะถูกทําเมื่อเริ่มตน เพียงครั้งเดียว
            แลวทํา 2 ถาผลลัพธเปนจริง ก็จะทํา 3 แลว 4
            แลวกลับมาทํา 2 ถาผลลัพธเปนจริง ก็จะทํา 3 แลว 4
            ทํา 2 3 4 ไปเรื่อยๆ จนกระทั่งผลของ 2 เปนเท็จ ก็จะหยุด และหลุดจาก loop for
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               160
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    คําสั่ง for( )
               ลักษณะสําคัญ              ทําซ้ําเปนจํานวนครั้งที่แนนอน
                                         มีตัวแปรสําหรับนับจํานวนรอบของการทําซ้ํา (counter)
    ตัวอยาง           for($i = 1; ; $i <= 10; $i++)
                            echo "$i<BR>";

                       for($i = 10; ; $i >= 1; $i--)
                            echo "$i<BR>";

                       for($i = 1; ; $i <= 10; $i++) {
                            echo "2 x $i = " , 2*$i;
                            echo "<BR>";
                       }
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               161
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                       STUDENT DEVELOPMENT 2008


    คําสั่ง foreach( )
               ใชในการวนรอบอานคาในอาเรย ออกมาเก็บในตัวแปร
               รูปแบบ foreach ($ชื่อตัวแปรอาเรย as $ตัวแปร) {
                          คําสั่ง กระทําการกับ $ตั่วแปร
                                  }
            ในแตละรอบจะอานคาจากตัวแปรอาเรย ไปใสในตัวแปร ทําจนกระทั่งอานคาจากตัว
    แปรอาเรยครบทุกตัว
    ตัวอยาง                        <? $arr = array(10, -100, 5, 40, 3.2);
                                       foreach($arr as $val)
                                             echo $val . "<BR>";
                                    ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               162
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP (Professional Home Page)
                                                                                                                STUDENT DEVELOPMENT 2008


    คําสั่ง break และ continue
              รูปแบบ break; หรือ continue;
                break ใชเพื่อออกจาก swith( ) หรือ ออกจาก loop ในทันทีโดยไมทํา
    คําสั่งที่เหลือ
                continue ใชเพื่อกลับไปทําสวนนิพจน (เงื่อนไข) ของ loop ในทันที โดยไมทําคําสั่ง
    ที่เหลือ
    ตัวอยาง         <? $i = 1;                           <? $i = 1;
                                 while($i <= 10) {                                           while($i <= 10) {
                                      echo $i . "<BR>";                                           echo $i . "<BR>";
                                 if($i == 5)                                                 if($i == 5)
                                     break;                                                      continue;
                                 $i++;                                                       $i++;
                          }                           ?>                             }                                ?>

    แบบฝกหัด                 จงเขียน loop while เพื่อแสดงตัวเลข 1 , 3, 7, 9
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                        163
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 บทที่ 4
 ฟงกชัน
(Function)



             164
 ฟงกชัน (Function)
                                                                                                       STUDENT DEVELOPMENT 2008


           ฟงกชัน คือ สวนของโปรแกรมยอยที่ทําหนาที่ประมวลผล(หรือคํานวณ) งานใดงาน
  หนึ่ง และอาจจะมีการสงผลลัพธจากการประมวลผลกลับคืน(Return) มา

         สวนของ code ที่มีการใชบอยๆ มักแยกออกมาเปนฟงกชัน เพื่อลดขนาดของ
  โปรแกรม และสะดวกในการแกไข

                  ฟงกชันที่มีการสงกลับคา จัดอยูในกลุมของนิพจน (Expression) คือ สิ่งที่ใหคา
                  นิพจน อาจเปน คาคงที่ เชน 2 , 10.2, true , false
                                      ตัวแปร เชน $i
                                      นิพจนทางคณิตศาสตร เชน 100*3/2 , $i-100
                                      นิพจนเปรียบเทียบ เชน $i > 5
                                      นิพจนตรรก           เชน i>=1 && i <= 100
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               165
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                              STUDENT DEVELOPMENT 2008


           ดังนั้น ณ จุดใดที่มีการเรียกใชฟงกชันที่มีการสงกลับคา สามารถมองไดวา ณ จุดนั้น
  จะมีคาใดคาหนึ่ง เสมอ

                  ตัวอยาง ฟงกชัน sqrt(float x); จะสงกลับคารากที่สองของ x
                                                                                      สง 9 ไปใหฟงกชัน
                                 $y = 100 + 6/sqrt(9);                                                         sqrt(x) {
                                                                                                                ….
                                                                                    ฟงกชันสง 3 กลับคืนมา
                                                                                                               }




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                      166
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                       STUDENT DEVELOPMENT 2008


              ฟงกชันแบงไดเปน 2 ประเภท คือ

              1. ฟงกชันผูใชกําหนดเอง (User-defined function)
                  คือฟงกชันที่ผูเขียนโปรแกรมสรางขึ้นมาเอง

              2. ฟงกชันมาตรฐานใน PHP (Library function)
                  คือฟงกชันที่ถูกสรางเตรียมไวแลวใน php ผูเขียนโปรแกรมสามารถเรียกใชไดทันที




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               167
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                       STUDENT DEVELOPMENT 2008


     ฟงกชันผูใชกําหนดเอง (User-defined function)
           รูปแบบ        function ชื่อฟงกชัน (รายการพารามิเตอร) {
                                  คําสั่ง1;
                                  คําสั่ง2;
                                  ….
                                  [return [คาสงกลับ;] ]
                         }

              โดยที่                ชื่อฟงกชัน ใชหลักเกณฑเดียวกับชื่อตัวแปร
                                    รายการพารามิเตอร คือ รายการของตัวแปรที่ใชรับคาเขาไปใชงานในฟงกชัน
                             กรณีที่ฟงกชันมีการสงคากลับ จะใชคําสั่ง return ตามดวยคาที่ตองการ
                     สงกลับออกไป

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               168
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                          STUDENT DEVELOPMENT 2008


    ฟงกชันผูใชกําหนดเอง (User-defined function)
    ตัวอยาง
   <? $i = 10;                        การเรียกใชฟงกชัน ทําไดโดยพิมพชื่อฟงกชัน พรอมทั้งระบุ
       echo avg($i , 20);             คาที่ตองการสงใหฟงกชันไวในวงเล็บหลังชื่อฟงกชัน
                                      จากตัวอยาง
      function avg($v1, $v2) {        avg ($i, 20)
           $v3 = ($v1 + $v2)/2;
                                                                                 คาจะถูกคัดลอกไปใหตัวแปรพารามิเตอรของฟงกชัน
           return $v3;
       }                                    ?>
                                function avg($v1, $v2) { … }
                                เมื่อฟงกชันทํางานเสร็จก็จะสงผลลัพธที่ระบุหลัง return
                                กลับคืนออกไป
สังเกต ฟงกชันใน PHP ตางจาก C ตรงที่ตองระบุคําวา function หนาชื่อฟงกชัน
       และไมตองระบุชนิดคาสงกลับ และชนิดพารามิเตอร
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                   169
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                                 STUDENT DEVELOPMENT 2008


     การผานพารามิเตอรไปยังฟงกชัน
              การแบงประเภทของการสงผานพารามิเตอร ใน PHP แบงเปน
              1. การสงผานโดยคา (Pass by value)
                ถาภายในฟงกชันมีการเปลี่ยนแปลงคาในตัวแปรพารามิเตอร ก็จะไมกระทบกับคาใน
     ตัวแปรที่สงใหฟงกชัน (ถึงแมจะเปนตัวแปรชื่อเดียวกัน)
              ตัวอยาง            การเรียก                    f1($i);

                                                   หัวฟงกชัน                                    function f1($i) { …. }

                                                                                      ถาในฟงกชัน f1
                                                                                   มีการเปลี่ยนแปลงคา $i
                                                                                                                ก็จะไมกระทบกับ
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                         170
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                       STUDENT DEVELOPMENT 2008


     ตัวอยาง การสงผานโดยคา (Pass by value)
               <? $i = 10;
                   echo "Before calling f1( ) i == " . $i . "<BR>";
                   f1($i); //เรียกใชฟงกชน
                   echo "After calling f1( ) i == " . $i . "<BR>";
                   function f1($i) {
                   $i = $i * 2;
                   echo "In f1( ) i == " . $i . "<BR>";
                  }                                                                                      ?>

สังเกต ฟงกชัน f1( ) ไมมีการสงกลับคา (return)
          ถึงแมจะเปนตัวแปรชื่อเดียวกัน คือ $i แตเปนตัวแปรคนละตัวกัน
          ตัวแปรพารามิเตอรของฟงกชัน และตัวแปรที่ประกาศในฟงกชันมีขอบเขตเฉพาะ ภายใน
ฟงกชันเทานั้น(Local) จากภายนอกฟงกชันไมสามารถมองเห็นหรือเขาถึงตัวแปรเหลานั้นได
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               171
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                                 STUDENT DEVELOPMENT 2008


     การผานพารามิเตอรไปยังฟงกชัน
              2. การสงผานโดยตําแหนง (Pass by reference)
                        ถาภายในฟงกชันมีการเปลี่ยนแปลงคาในตัวแปรพารามิเตอร ก็จะกระทบกับ
     คาในตัวแปรที่สงใหฟงกชัน (ถึงแมจะเปนตัวแปรคนละชื่อกัน)
              ตัวอยาง            การเรียก                   f1($i);

                                                   หัวฟงกชัน                                    function f1(&$j) { …. }

                                                                                    ถาในฟงกชัน f1
                                                                                    มีการเปลี่ยนแปลงคา $j
                                                                                                     ก็จะกระทบกับ $i ดวย

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                         172
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                       STUDENT DEVELOPMENT 2008


     ตัวอยาง การสงผานโดยตําแหนง (Pass by reference)
               <? $i = 10;
                   echo "Before calling f1( ) i == " . $i . "<BR>";
                   f1($i); //เรียกใชฟงกชน
                   echo "After calling f1( ) i == " . $i . "<BR>";
                   function f1(&$j) {
                     $j = $j * 2;
                     echo "In f1( ) j == " . $j . "<BR>";
                  }                                                                                        ?>
  สังเกต ตัวแปร $i และ j แตเปนตัวแปรคนละตัวกัน
         ถาตองการใหตัวแปรที่สงคามายังฟงกชัน ($i) ถูกเปลี่ยนแปลงดวย ตองระบุ
         & หนาตัวแปรพารามิเตอรที่ใชรับคาของฟงกชัน (หรือระบุในตอนเรียกใชก็ได)
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               173
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                       STUDENT DEVELOPMENT 2008


                     2. การสงผานโดยตําแหนง (Pass by reference)
                                 การกําหนดใหตัวแปรสงผานโดยตําแหนง โดยใช & อาจกระทํา
                     ที่จุดนิยามฟงกชัน (ตัวแปรพารามิเตอร) ดังตัวอยางกอนหนา หรือ
                     ที่คําสั่งการเรียกใชฟงกชัน
                     ตัวอยาง <? $i = 10;
                                        echo "Before calling f1( ) i == " . $i . "<BR>";
                                        f1(&$i); //เรียกใชฟงกชน
                                        echo "After calling f1( ) i == " . $i . "<BR>";
                                        function f1($j) {
                                            $j = $j * 2;
                                            echo "In f1( ) j == " . $j . "<BR>";
                                       }                                                 ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               174
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                       STUDENT DEVELOPMENT 2008


  ตัวแปร static
                                                                         
           โดยปกติ ตัวแปรของฟงกชัน เปนตัวแปรแบบ Local คือ มีชวงชีวิตตอนเรียกใชฟงกชัน
           มันจะถูกสรางใหม เมื่อเขาสูฟงกชัน และมันจะถูกทําลายเมื่อออกจากฟงกชัน
           แตถาตองการใหตัวแปรยังคงอยู ถึงแมออกจากฟงกชัน ตองกําหนดใหตัวแปรเปนแบบ
  static โดยใชรูปแบบ static $ชื่อตัวแปร;
           ตัวอยาง
                        <? f1( );
                            f1( );
                            f1( );
                            function f1() {
                               static $i = 0;
                               $i += 10;
                               echo $i . "<BR>";
                           }                                           ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               175
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                       STUDENT DEVELOPMENT 2008


     แบบฝกหัด

              จงสรางฟงกชันชื่อ max ( ) เพื่อทําการหาคาสูงสุดระหวางเลข 2 จํานวน
     พรอมทั้งแสดงวิธีการเรียกใช
              จงสรางฟงกชันชื่อ swap ( ) เพื่อทําการสลับคาระหวาง 2 ตัวแปร
     พรอมทั้งแสดงวิธีการเรียกใช




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               176
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                       STUDENT DEVELOPMENT 2008


     ฟงกชันมาตรฐานใน PHP (Library function)

          เปนฟงกชันที่จัดเตรียมไวใหใน PHP ผูเขียนโปรแกรมสามารถเรียกใชงานได
     ทันที สามาระแบงเปนประเภทไดดังนี้




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               177
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                                       STUDENT DEVELOPMENT 2008

     ฟงกชันทางคณิตศาสตร
          ฟงกชัน                                       หนาที่                                                           ตัวอยาง
  max()                       หาคาสูงสุดในกลุมขอมูลที่ระบุหรือในอาเรย                              $max1 = max(1,2,3,4,5);
                              ในกลุมตัวเลขที่ระบุ หรือ ในอาเรย                                       $arr = array(10,20,30,50);
                                                                                                       $max2 = max($arr);
  min()                       หาคาต่ําสุด                                                             ลักษณะการใชเหมือน max
  number_format()             กําหนดรูปแบบการแสดงผลตัวเลข โดยมี , คั่นหลักพัน                          $num = number_format (20000.245,2)
                                                                                                       // ทศนิยม 2 ตําแหนง
  octdec()                    แปลงเลขฐานแปดเปนฐานสิบ                                                  echo octdec(123) // แสดง 83 ฐาน 10
  hexdec( )                   แปลงเลขฐานสิบหกเปนฐานสิบ
  bindec( )                   แปลงเลขฐานสองเปนฐานสิบ
  decoct()                    แปลงเลขฐานสิบเปนฐานแปด
  dechex()                    แปลงเลขฐานสิบเปนฐานสิบหก
  decbin()                    แปลงเลขฐานสิบเปนฐานสอง
  pi()                        ใหคา pi                                                                $area = pi( ) * r * r;
  pow()                       หาคาเลขยกกําลัง                                                         echo pow(9,1/2) // แสดง 3
                                                                                                       $j = 3 * pow(10,3) // $j == 3000
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                                178
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                                         STUDENT DEVELOPMENT 2008

     ฟงกชันทางคณิตศาสตร
           ฟงกชัน                                          หนาที่                                                      ตัวอยาง
 exp()                          หาคายกกําลังของ e
 log()                          หาคา log ฐานธรรมชาติ
 log10()                        หาคา log ฐาน 10

 getrandmax()                                    ่
                                แสดงตัวเลขสุมทีมากที่สุดที่ rand( ) สามารถสรางได                    echo getrandmax( );
 cos()                          หาคา Cosine ของมุม
 atan()                         หาคา tan ของมุม
 asin()                         หาคา sine ของมุม
 acos()                         หาคา arc cosine ของมุม
 abs()                          หาคาสัมบูรณของเลขจํานวนจริง (หาคาบวก)
 rand()                         สรางตัวเลขแบบสุม                                                      srand(1);
                                ตองใชรวมกับ srand( )                                                for($j=1; $j<=10; $j++) {
                                กอนเรียกใช rand( ) ตองเรียก                                            $rndnumber = (rand() % (10-1)) + 1;
                                srand( ) พรอมสงคาเริ่มตนใดๆไปให srand( )                             echo $rndnumber . "<BR>";
                                                                                                       }
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                                    179
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                                        STUDENT DEVELOPMENT 2008

   ฟงกชันเกี่ยวกับ String
            ฟงกชัน                                     หนาที่                                                        ตัวอยาง
    substr()                      ตัดสวนของ string ณ ตําแหนงที่ระบุ ออกมาตาม                     $str = "Hello World!";
                                  จํานวนที่ตองการ                                                 $str2 = substr($str,0,5); // $str2 == "Hello"

    str_replace()                 เปลี่ยนบางสวนของ sting ดวย string ที่ระบุ                      $str = "PAYAP University is the first private
                                                                                                   university.";
                                                                                                   $str2 = str_replace("PAYAP University", "PYU",
                                                                                                   $str);
                                                                                                   // จะแทนที่ ขอความ PAYAP University ใน $str
                                                                                                   ดวย PYU
    trim()                        ตัดชองวางดานหนาและดานหลัง string                            $str = tritm(" PAYAP University ");
    ltrim( )                      ถาตองการตัดชองวางเฉพาะดานหนา                               // $str == "PAYAP University"
    rtrim( ) หรือ chop( )         ถาตองการตัดชองวางเฉพาะดานหลัง
    ucfirst()                     เปลี่ยนตัวอักษรตัวแรกของขอความใหเปนตัวพิมพ
                                  ใหญ
    ucwords()                     เปลี่ยนอักษรตัวแรกของแตละคําใน string ใหเปน
                                  ตัวพิมพใหญ
    strtolower( )                 เปลี่ยนตัวอักษรทุกตัวเปนตัวพิมพเล็ก
    strtoupper( )                 เปลี่ยนตัวอักษรทุกตัวเปนตัวพิมพใหญ

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                                        180
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                                         STUDENT DEVELOPMENT 2008

   ฟงกชันเกี่ยวกับ String
                 ฟงกชัน                           หนาที่                                                       ตัวอยาง
     stristr()                    ตัด string บางสวน ตั้งแตตัวแรกที่พบ            $str = "PAYAP University";
                                  จนถึงตัวสุดทาย โดยไมคํานึงวาเปน              $str2 = stristr( $str, “uni");
                                  ตัวพิมพเล็กหรือใหญ
                                  แตถาคํานึงถึงตัวพิมพใช strstr( )
     strip_tags()                 ตัด Tag php และ Tag HTML ทั้งหมด
                                  ออกจาก string
     sprintf()                    จัดรูปแบบ string                                 $str = sprintf("%05d", 3); // $str = "000005"
                                                                                   // d กําหนดใหเปนเลขจํานวนเต็ม กวาง 5 หลัก
                                                                                   // ถาไมเต็มความกวางเติม 0 ใหครบ
     similar_text()               หาความเหมือนระหวาง 2 string                     $i = similar_text("ABCD","AbcDZ") ."<BR>";
                                                                                   // $i == 2 เพราะเหมือนกัน 2 ตัวอักษร
     strlen( )                    หาความยาวของ string
     strrev( )                    เรียงลําดับตัวอักษรใน string ใหมจาก
                                  หลังมาหนา
     str_repeat                   สราง string ซ้ําๆ                               echo str_repeat(“--", 4); //แสดง --------
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                                 181
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                                         STUDENT DEVELOPMENT 2008

   ฟงกชันเกี่ยวกับ String
              ฟงกชัน                           หนาที่                                                         ตัวอยาง
     ord( )                        แปลงตัวอักษณเปนรหัส ASCII                      $i = ord("A"); // $i == 65
     chr( )                        แปลงรหัส ASSCII เปนตัวอักษร                    $ch = chr(97); // $ch == "a"
                                                                                    $arr = array("Hello ", "World " , "!");
     join()                        รวมอาเรย เปน stirng
                                                                                    $str = join($arr); // $str == "Hello World !"
     implode()                     รวมอาเรย เปน stirng
     explode()                     แยกขอความไปไวในอาเรย โดยระบุตัว               $str = "Payap,IT,Professional";
                                   แบงแยก                                          $arr = explode(",",$str); // แบงแยกโดย ,
                                                                                    echo $arr[0] . " " . $arr[1] . " " . $arr[2] ;
     strcmp( )                     เปรียบเทียบ string ถาสงกลับ                   $str1 = "Hello";
                                   < 0 แสดงวา string ซาย < ขวา                   $str2 = "hello";
                                   == 0 แสดงวา string ซาย == ขวา                 if ((strcmp($str1,$str2) == 0)
                                   > 0 แสดงวา string ซาย > ขวา                       echo "equal";
                                                                                   else
                                                                                      echo “not equal";

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                                 182
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                                      STUDENT DEVELOPMENT 2008

   ฟงกชันเกี่ยวกับ String
             ฟงกชัน                             หนาที่                                                       ตัวอยาง
     strpos( )                     หาตําแหนงของ string ยอยใน string               $str = "Payap IT Professional";
                                                                                   $pos = strpos($str, "IT ", 0) // เริ่มหา IT ที่ตําแหนง 0
                                                                                   // $pos == 6 ถาไมระบุตําแหนงจะเริ่มหาที่ตําแหนงแรก
     strrpos( )                    คลาย strpos( ) แตเริ่มหาจากตําแหนง
                                   สุดทาย
     str_replace( )                แทนที่บางสวนของ string ดวย string             $str = "Payap IT Professional";
                                   ใหม                                            $str = str_replace("IT", "Information Technology", $str);
                                                                                   // แทนที่ "IT" ใน $str ดวย "Information Technology"
     ereg_replace()                เหมือน str_replace( )
     eregi_replace()               เหมือน str_replace( ) แตไมสนใจ                $str = "Payap IT Professional";
                                                                                   $str = eregi_replace("it", "Information Technology", $str);
                                   ตัวพิมพใหญพิมพเล็ก                           // $str == "Payap Information Technology Professional"

    แบบฝกหัด
      จงเขียนโปรแกรมนับสระ ใน string "Payap IT Professional" A วามีสระทั้งหมดกี่ตัว
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                                     183
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                       STUDENT DEVELOPMENT 2008


  เฉลย มีวิธีคิดหลายวิธี เชน
  <?                                                                             <?
  $str = "payap university";                                                     $str = "payap university";
  $vcount = 0;                                                                   $vc = 0;
  $v = " aeiou";                                                                 $target = array("a","e","i","o","u");
  // ถา a อยูตําแหนงแรก จะเจอที่ตําแหนง 0 และ                                foreach ($target as $vw) {
  ถาหาไมเจอ posit( ) ก็จะสงกลับ null ซึง
                                          ่                                          $m = str_repeat($vw, strlen($str));
  null == 0 ดังนันหาไมเจอ หรือเจอที่ตําแหนง 0
                    ้                                                                $vc = $vc +similar_text($str, $m);
  จะแยกไมได ดังนั้นจึงขยับตําแหนงแรกใหเริ่มที่ 1                             }
                                                                                 echo $vcount;
  for($i=0; $i< strlen($str); $i++){
         $posit = strpos($v, $str[$i]);                                          ?>
          if( $posit > 0 )
                 $vcount++;
  }
  echo $vcount;
  ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               184
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                                       STUDENT DEVELOPMENT 2008

                         ่
  ฟงกชันเกี่ยวกับ วันทีและเวลา
         ฟงกชัน                                   หนาที่                                                        ตัวอยาง
   checkdate( )                  ใชตรวจสอบวาวันที่นั้นมีอยูจริงหรือไม            if(checkdate(2,29,2007) == false)
                                 โดยใชรูปแบบ                                           echo "Invalid date";
                                 checkdate(เดือน, วันที่, ป)                        else
                                                                                        echo "Valid date";
   date( )                       อานคาวันที่เวลาปจจุบัน                           echo date("F j, y, g:i a") . "<BR>";
                                 โดยใชรูปแบบ                                        //October 27, 08, 11:09 pm
                                 date(รูปแบบการแสดงผล)                               echo date("m.d.y") . "<BR>";
                                                                                     // 10.27.08
                                 หรือใชจัดรูปแบบขอมูลวันที่                        echo date("j, n, Y") . "<BR>";
                                 date(รูปแบบการแสดงผล, ขอมูลวันที่)                 //27, 10, 2008
                                                                                     echo date("D M j G:i:s e Y") . "<BR>";
                                                                                     //Mon Oct 27 23:09:00 Asia/Krasnoyarsk 2008
   time( )                       อานคาเวลาปจจุบัน                                 echo time( ); // 1225207724
                                 จะสงกลับคา วินาที ที่นับจาก                       echo date("G:i.s", time( )); //22:28.44
                                 1 Jan 1970 ดังนั้นจะใช
                                  date( ) ชวยจัดรูปแบบ
                       ั
    หมายเหตุ บางฟงกชนจะสงกลับคาของวันที่และเวลา ในแบบ Timestamp คือ เปนตัวเลขแบบวินาที
               ่
             ซึงตองใชฟงชัน date( ) ชวยในการแปลงรูปแบบ
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                               185
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                       STUDENT DEVELOPMENT 2008

     โดยรูปแบบการแสดงผลของ date ประกอบดวย
              a     แสดงเวลาในรูปแบบตัวพิมพเล็ก am หรือ pm
              A     แสดงเวลาในรูปแบบตัวพิมพใหญ AM หรือ PM
              d     แสดงวันที่แบบเลข 2 หลัก ตั้งแต 01 ถึง 31
              D     แสดงชื่อวันภาษาอังกฤษแบบยอ เชน Sun Mon Tue
              F     แสดงชื่อเดือนภาษาอังกฤษ เชน January
              h                                   ้
                    แสดงชั่วโมงแบบ 2 หลัก ตังแต 01 ถึง 12
              H     แสดงชั่วโมงแบบ 2 หลัก ตั้งแต 00 ถึง 23
              g     แสดงชั่วโมงแบบไมมีเลข 0 นําหนา ตั้งแต 1 ถึง 12
              G     แสดงชั่วโมงแบบไมมีเลข 0 นําหนา ตั้งแต 0 ถึง 23
              i     แสดงนาที ตั้งแต 00 ถึง 59
              j     แสดงวันที่แบบไมมีเลข 0 นําหนา ตั้งแต 1 ถึง 31
              l     แสดงชื่อวันภาษาอังกฤษแบบเต็ม เชน Sunday
              L     แสดงคาทางตรรกะ คือ มีคา 0 หรือ 1 ในปที่เปนอธิกมาส
              m     แสดงเดือนแบบตัวเลขมีเลข 0 นําหนา ตั้งแต 01 ถึง 12
              n     แสดงชื่อเดือนภาษาอังกฤษแบบยอ เชน Jan
              s     แสดงวินาที ตั้งแต 00 ถึง 59
              S     แสดงสวนตอทายของวันที่ เชน nd, th
              t     แสดงจํานวนวันใน 1 เดือน
              w     แสดงตัวเลขของวันใน 1 สัปดาห เชน 0 คือ วันอาทิตย 1 คือวันจันทร 6 คือ วันเสาร
              Y     แสดงป ค.ศ. เปนเลข 4 หลัก เชน 1990
              y     แสดงป ค.ศ. เปนเลข 2 หลัก เชน 90
              z    แสดงลําดับวันใน 1 ป คือตั้งแต 0 ถึง 365
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               186
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                       STUDENT DEVELOPMENT 2008


     ตัวอยาง
                           <HEAD>
                           <meta http-equiv="refresh" content="1" >
                           </HEAD>
                           <?
                            echo date("G:i.s", time( ) );
                           ?>


      สังเกต มีการใช tag <meta> ซึ่งอยูภายในสวน Heading ของ Web page
             เพื่อสั่ง refresh หนา web โดยอัตโนมัติทุก 1 วินาที

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               187
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                                         STUDENT DEVELOPMENT 2008

   ฟงกชันเกี่ยวกับ Directory (Folder)
                ฟงกชัน                                     หนาที่                                                     ตัวอยาง
                                                                                                  echo getcwd( );
     getcwd( )                     หา Directory ที่กําลังทํางานอยูในขณะนั้น
                                                                                                  // จะแสดง C:\Appserv\www (root dir)
     chdir( )                      ยายการทํางานไปยัง Directory ที่ระบุ                           chdir("C:/appserv/mysql");
                                   ระบุตัวคั่นระหวาง Directory ในแบบ UNIX                        echo getcwd( );
                                   คือใช /
     opendir()                     เปด Directory                                                 $id = opendir("C:");
                                                                      ่
                                   กอนที่จะจัดการกับ Directory ตองสังเปด Directory
                                           ่
                                   กอน ซึงจะสงกลับหมายเลขอางอิง Directory

     closedir()                    ปด directory                                                  closedir($id);
                                                                    ่
                                   หลังการจัดการกับ Directory ตองสังปด Directory
                                   ทุกครั้ง โดยใชรูปแบบ
                                   closedir(หมายเลขอางอิง Directory);

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                                 188
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                                        STUDENT DEVELOPMENT 2008

   ฟงกชันเกี่ยวกับ Directory (Folder)
              ฟงกชัน                                        หนาที่                                                   ตัวอยาง
     readdir( )                                                        ่
                                   อานขอมูลใน Directory ปจจุบัน ซึงขอมูลใน                    $id = opendir("C:");
                                   Directory อาจเปน Directory ยอย หรือ ไฟล                     while ($data = readdir($id))
                                   รูปแบบ readdir(หมายเลขอางอิง Directory)                           echo $data . "<BR>";
                                     ่
                                   ซึงการเรียกฟงกชัน 1 ครั้ง จะไดขอมูล 1 รายการ
                                   ดังนั้นมักใช loop วนอานจนขอมูล
                                   จนหมด Directory
     rewindder( )                  ยายตัวชี้ตําแหนงขอมูลใน Directory ไปที่ตําแหนง             $id = opendir("C:");
                                   แรก                                                            while ($data = readdir($id))
                                                                                                      echo $data . "<BR>";
                                                                                                  rewinddir();
                                                                                                  $data = readdir($id);
                                                                                                  echo $data . "<BR>";



ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                                189
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                                        STUDENT DEVELOPMENT 2008

   ฟงกชันเกี่ยวกับ Directory (Folder)
               ฟงกชัน                                      หนาที่                              ตัวอยาง
    mkdir( )                       สราง Directory ใหม                                           echo getcwd( ) . "<BR>";
                                                                                                  @mkdir("MyDir");
                                                                                                  chdir("MyDir");
                                                                                                  echo getcwd( );
    rmdir( )                       ลบ Directory                                                   chdir("C:/Appserv/www");
                                                                                                  echo getcwd( ) . "<BR>";
                                                                                                  @rmdir("MyDir");
    dir( )                         สราง object เกียวกัน directory
                                     ่
                                   ซึงจะมี Attribute (ขอมูล) และ
                                                          ่        ่
                                   Method(การทํางาน) ทีทํางานกับสิงที่อยูใน
                                   Directory
    copy( )                        คัดลอกแฟม ในรูปแบบ                                            copy("c:/appserv/www/test.php", "c:/test.php");
                                   Copy ("แฟมตนทาง", "ชื่อแฟมปลายทาง");

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                                        190
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                                      STUDENT DEVELOPMENT 2008

 ฟงกชันเกี่ยวกับ File
              ฟงกชัน                                    หนาที่                                                    ตัวอยาง
  is_dir()                       ตรวจสอบชื่อวาชื่อที่อานไดใน Directory เปนชื่อ             echo is_executable("c:/appserv/www/test.php");
                                 File หรือ ชื่อ Directory
                                 รูปแบบ is_dir(ชื่อแฟม)
  is_executable()                ตรวจสอบวาไฟลนั้นรันไดหรือไม                               echo is_executable("c:/appserv/www/test.php");
                                 รูปแบบ is_executable(ชื่อแฟม)
                                 ตรวจสอบวาไฟลนั้นเปนไฟลธรรมดาหรือไม                       echo is_executable("c:/appserv/www/test.php");
  is_file()
                                 รูปแบบ is_file(ชื่อแฟม)
                                 ตรวจสอบวาไฟลนั้นอานไดหรือไม                              echo is_readable("c:/appserv/www/test.php");
  is_readable()
                                 รูปแบบ is_readable(ชื่อแฟม)
                                 ตรวจสอบวาไฟลนั้นเขียนไดหรือไม                             echo is_writeable("c:/appserv/www/test.php");
  is_writeable()
                                 รูปแบบ is_writeable(ชื่อแฟม)
  Basename()                     แสดงชื่อไฟลไมรวม path (Drive และ Directory)                 Basename ("c:/appserv/www/test.php");
  Dirname()                      แสดงชื่อ Directory ไมรวมชื่อไฟล                             Dirname("c:/appserv/www/test.php");
  Diskfreespace()                หาเนื้อที่วางใน Directory                                    Diskfreespace("c:/appserv/www/");

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                                    191
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                                      STUDENT DEVELOPMENT 2008

 ฟงกชันเกี่ยวกับ File
           ฟงกชัน                                        หนาที่                                                    ตัวอยาง
  filetype()                     ตรวจสอบประเภทไฟล                                             echo filetype("c:/appserv/www/test.php");
  filesize()                     ตรวจสอบขนาดไฟล                                               echo filesize("c:/appserv/www/test.php") ;
  fileperms()                    ตรวจสอบการกําหนดสิทธของไฟล                                  echo fileperms("c:/appserv/www/test.php");
  filegroup()                               
                                 ตรวจสอบกลุมของไฟล                                            echo filegroup("c:/appserv/www/test.php");
  fileowner()                    ตรวจสอบชื่อผูสรางไฟล                                       echo fileowner("c:/appserv/www/test.php");
  filemtime()                    ตรวจสอบวาไฟลถก update ครั้งลาสุดเมื่อใด
                                                   ู                                           $dt = filemtime("c:/appserv/www/test.php");
                                                                                               echo date("d/m/y G:i.s", $dt). "<BR>";
  filectime()                    ตรวจสอบวาไฟลถกสรางเมื่อใด
                                                ู                                              $dt = filectime("c:/appserv/www/test.php");
                                                                                               echo date("d/m/y G:i.s", $dt). "<BR>";
  fileatime()                    ตรวจสอบไฟลถูกใชงานครั้งสุดทายเมื่อใด                       $dt = fileatime("c:/appserv/www/test.php");
                                                                                               echo date("d/m/y G:i.s", $dt). "<BR>";
  file_exists()                  ตรวจสอบไฟลนั้นมีอยูจริงหรือไม                              $dt = filemtime("c:/appserv/www/test.php");
                                                                                               echo date("d/m/y G:i.s", $dt). "<BR>";
                                                        ้
 หมายเหตุ บางฟงกชันทํางานบนระบบ UNIX หรือ Linux เทานัน
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                                 192
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                                       STUDENT DEVELOPMENT 2008

 ฟงกชันเกี่ยวกับ File
         ฟงกชัน                                        หนาที่                                                           ตัวอยาง
    fopen( )                          ่
                          เปดไฟลเพือจัดการกับขอมูลในไฟล                                            $handle = fopen("c:/appserv/www/test.php",
    fclose( )             รูปแบบ fopne(ชื่อไฟล, โหมดการปด)                                                            "r");
                                  จะสงกลับหมายเลขอางอิงไฟล                                          echo "หมายเลขอางอิงไฟล = " . $handle;
                          โดยโหมดไดแก                                                                fclose($handle);
                          r เปดเพื่ออานโดยตัวชี้ตําแหนงจะเลื่อนไปตนไฟล
                          r+ เปดเพื่ออาน/เขียน โดยตัวชี้ตําแหนงจะเลื่อนไปตนไฟล
                          w เปดเพื่อเขียน โดยตัวชี้ตําแหนงจะเลื่อนไปตนไฟล
                          แลวเขียนทับ ถาไมมีไฟลจะสรางไฟลใหมโดยอัตโนมัติ
                          w+ เปดเพื่อเขียน/อาน โดยตัวชี้ตําแหนงจะเลื่อนไปตนไฟล แลว
                          เขียนทับ ถาไมมีไฟลจะสรางไฟลใหมโดยอัตโนมัติ
                          a เปดเพื่อเขียน โดยตัวชี้ตําแหนงจะเลื่อนไปทายไฟล
                                                           ี
                          แลวเขียนขอมูล(ตอทาย) ถาไมมไฟลจะสรางไฟลใหม
                          a+ เปดเพื่อเขียน/อาน โดยตัวชี้ตําแหนงจะเลื่อนไปทายไฟล แลว
                          เขียนขอมูล(ตอทาย) ถาไมมีไฟลจะสรางไฟลใหม

                                                     ่
                          และหลังจากทํางานเสร็จตองสังปดไฟลโดยใช fclose( )
                          รูปแบบ fclose(หมายเลขอางอิงไฟล)

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                                        193
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                                       STUDENT DEVELOPMENT 2008

 ฟงกชันเกี่ยวกับ File
        ฟงกชัน                                 หนาที่                                                       ตัวอยาง
    fread( )           อานขอมูลจากไฟล ตามจํานวนตัวอักษรที่ระบุ                     $handle = fopen("c:/appserv/php5/php.ini-dist", "r");
                       รูปแบบ                                                         $data = fread($handle, 30);
                       fread(หมายเลขอางอิงไฟล, จํานวนตัวอักษร)                      echo $data;
                                                                                      fclose($handle);
                       อานขอมูลจากไฟล มาทีละ 1 บรรทัด               $handle = fopen("c:/appserv/php5/php.ini-dist", "r");
    fgets( )                                                           $data = fgets($handle);
                       รูปแบบ
                       fgets(หมายเลขอางอิงไฟล [,จํานวนตัวอักษร])     echo $data . "<BR>";
                                                                       rewind($handle); // เลื่อนตัวชี้ไปตนไฟล
                                                                       while($data = fgets($handle))
                       ถาในไฟลมี tag HTML และใหอานขอมูลโดยตัด tag
                       HTML ออกใหใชฟงกชัน fgetss( )
                                                                          echo $data . "<BR>";
                       รูปแบบ fgetss(หมายเลขอางอิงไฟล)               fclose($handle);
                                                                ั
                       และถาตองการอานทีละ 1 ตัวอักษรใชฟงกัชน
                       fgetc( ) ในรูปแบบ fgetss(หมายเลขอางอิงไฟล)
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                                  194
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                                        STUDENT DEVELOPMENT 2008

 ฟงกชันเกี่ยวกับ File
        ฟงกชัน                                 หนาที่                                                        ตัวอยาง
    file( )            อานขอมูลทั้งหมดในไฟลมาเก็บไวในอาเรย                       $data = file("c:/appserv/php5/php.ini-dist");
                                     ่
                       โดยไมตองสังเปดไฟล fopne( )                                 echo $data[0] . "<BR>"; // บรรทัดแรก
                                                                                      $ln = count($data);
                                                                                      for($i=0; $i < $ln; $i++)
                                                                                         echo $data[$i] . "<BR>";
                       หาตําแหนงของตัวชี้ในไฟล
    ftell()                                                                           ftell($handle)
                       รูปแบบ ftell(หมายเลขอางอิงไฟล)
    fseek()            เลือกตัวชี้ตําแหนงในไฟล ไปตามจํานวนตัวอักษรที่               $handle = fopen("c:/appserv/php5/php.ini-dist", "r");
                       ระบุ                                                           fseek($handle, 5);
                       รูปแบบ ftell(หมายเลขอางอิงไฟล, ตําแหนง)                     $data = fread($handle,10);
                                                                                      echo $data; // อานตั้งแตตัวที่ 6 - 15
                                                                                      fclose($handle);
    feof( )            ตรวจสอบวา ตัวชี้ตําแหนงไฟลอยูทายไฟล (End Of
                                                                                      feof($handle);
                       File) หรือไม
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                                  195
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                             STUDENT DEVELOPMENT 2008

 ฟงกชันเกี่ยวกับ File
        ฟงกชัน                                  หนาที่                                              ตัวอยาง
   fputs( )             เขียนขอมูลลงไฟล                                  $handle = fopen("c:/data.txt", "w");
                        รูปแบบ fwrite(หมายเลขอางอิงไฟล, ขอมูลที่จะเขียน fputs($handle, "Hello\n");
                        ลงไฟล, [จํานวนตัวอักษร);                          fputs($handle, "World\n");
                                                                           fputs($handle, "!");
                        กอนเขียนตองเปดไฟลเพื่อเขียน                    fclose($handle);
                        w จะเขียนทับของเกา
                         a จะเขียนขอมูลตอทาย                            $handle = fopen("c:/data.txt", "r");
                                                                           while($data = fgets($handle))
                                                                               echo $data . "<BR>";
   fwrite( )            เหมือน fputs( );                                   fclose($handle);
   rename()             เปลี่ยนชื่อไฟล รูปแบบ rename(ชื่อเกา,ชื่อใหม)
   unlink()             ลบไฟลที่ตองการ รูปแบบ unlink(ชื่อไฟล)

                        
  แบบฝกหัด จงสรางไฟลขอความ( Text file) ชื่อ Mydata.txt พรอมทั้งเขียนขอมูล ตั้งแต 1 ถึง 100
            ลงในไฟล
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                     196
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 ฟงกชัน (Function)
                                                                                                                     STUDENT DEVELOPMENT 2008

 ฟงกชันการสง Mail
            ฟงกชัน                                        หนาที่                                                     ตัวอยาง
  mail( )                        สง e-mail                                                      $to='is_php@hotmail.com';
                                 รูปแบบ                                                          $from ='pumin@localhost';
                                 mail(To,Subject,Massage,Header)                                 $header="from: $from";
                                                                                                 $subj = 'ทดสอบการสงเมลล';
                                                                                                 $msg = "สวัสดี \n";
                                                                                                 $msg = $msg . "นี่คือการทดสอบ \n";
                                                                                                 mail($to, $subj, $msg, $header);

              การที่จะทดลองสง e-mail บนเครื่อง PC ธรรมดา ตองติดตั้งโปรแกรมจําลองเครื่อง PC
                                                          ่
   ใหเปน Mail Server เชนโปรแกรม ArGosoft Mail Server ซึงเปน Freeware
   สามารถ download ไดที่ http://www.argosoft.com/mailserver/download.aspx




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                             197
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
บทที่ 5
 อาเรย
(Array)



          198
 อาเรย (Array)
                                                                                                       STUDENT DEVELOPMENT 2008

           อาเรย คือ ตัวแปรชุดที่ใชชื่อเดียวกัน การเขาถึงตัวแปรยอย(element) แตละตัวในอาเรย
  จะใชดัชนี (index)
           ใน PHP ขอมูลในตัวแปรยอยแตละตัวของอาเรย สามารถมีชนิดตางกันได
           ดัชนีของตัวแปรยอย สามารถเปน เลขจํานวนเต็ม (เริ่มที่ 0) หรือ string
  การสรางตัวแปรอาเรย
           ใชฟงกชัน array( ) ในรูปแบบ array(รายการของคา);
           ฟงกชัน array จะนํารายการของคาที่ระบุไปสรางเปนอาเรย แลวสงกลับ
           ตัวอยาง <?            $arr1 = array(10, 20, 30);
                                  echo $arr1[0] . "<BR>";
                                  for($i=0; $i < count($arr1); $i++)
                                     echo $arr1[$i] . "<BR>";
                                  $arr2 = array("somchai", -100, 1.2e3, true);
                                  echo $arr2[2] . "<BR>";
                                  foreach($arr2 as $tmp)
                                     echo $tmp . "<BR>";                            ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               199
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 อาเรย (Array)
                                                                                                       STUDENT DEVELOPMENT 2008


  การสรางตัวแปรอาเรย
           ประกาศแบบปกติ
                   รูปแบบ $ชื่อตัวแปรอาเรย[ขนาด] ;
                   ซึ่งผูเขียนโปรแกรมตองทําการกําหนดคาใหตัวแปรยอยแตละตัวเอง
  ตัวอยาง     <?
               $arr1[5]; // ประกาศตัวแปรอาเรยขนาด 5 หนวย
               $arr1[0] = "Somchai";
               $arr1[1] = "Sompong";
               $arr1[2] = "Somsak";
               $arr1[3] = "Sombat";
               $arr1[4] = "Somjai";
               echo $arr1[0] . " " . $arr1[1] . " " . $arr1[2] . " " . $arr1[3] . " " . $arr1[4];
               ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               200
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 อาเรย (Array)
                                                                                                       STUDENT DEVELOPMENT 2008


  อาเรยที่ใช string เปนดัชนี (Associative array)
       จากตัวอยางกอนหนาเปนอาเรยที่ใช เลขจํานวนเต็มเปนดัชนี ในการเขาถึงขอมูล
  ใน PHP สามารถสรางตัวแปรอาเรยที่ใช string เปนดัชนี
      โดยใชฟงกชัน array( )
                        รูปแบบ array(รายการของ key=>value );
                        โดยที่ key คือ ดัชนีที่เปน string
                                  value คือ คาในอาเรย
                                           ่
  ตัวอยาง เขาถึงคาในอาเรยโดยไมคํานึงถึงดัชนีที่เปน string
          <? $data = array("mon"=>1000, "tue"=>1200, "wed"=>1500, "thu"=>750, "fri"=>900);

                echo $data["mon"] . " " . $data["thu"] . "<BR>";

               foreach($data as $val) {
                      echo $val . "<BR>";
               }
          ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               201
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 อาเรย (Array)
                                                                                                       STUDENT DEVELOPMENT 2008


  อาเรยที่ใช string เปนดัชนี (Associative array)
             นอกจากใชฟงกชัน array( ) อาจประกาศแบบปกติ
             ในรูปแบบ $ชื่อตัวแปรอาเรย[ขนาด];
  ตัวอยาง <?             $data[5];
                          $data["mon"] = 1000;
                          $data["tue"] = 1200;
                          $data["wed"] = 1500;
                          $data["thu"] = 750;
                          $data["fri"] = 900;
                          echo $data["mon"] ." " . $data["tue"] . " " . $data["wed"] ." ".
                               $data["thu"] ." ". $data["fri"] ."<BR>";
                          foreach($data as $val)
                               echo $val . "<BR>";                                                                ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               202
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 อาเรย (Array)
                                                                                                       STUDENT DEVELOPMENT 2008


  การเขาถึงดัชนี และขอมูล ในอาเรยที่ใช string เปนดัชนี
            สามารถใชคําสั่ง foreach( ) คลายกับการเขาถึงอาเรยแบบปกติ (ใชเลขจํานวนเต็มเปน
  ดัชนี) เพียงแตตองระบุตัวแปร 2 ตัว สําหรับเก็บคาดัชนี(stirng) และขอมูล

  ตัวอยาง
    <?
    $arr = array("mon"=>1000, "tue"=>1200, "wed"=>1500, "thu"=>750, "fri"=>900);
    foreach($arr as $key=>$val)
        echo $key . " " . $val . "<BR>";
    ?>


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               203
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 อาเรย (Array)
                                                                                                       STUDENT DEVELOPMENT 2008

    อาเรยหลายมิติ (Multi-dimensional array)
             ที่ผานมาเปนการกลาวถึง อาเรยมิติเดียว คือ ใชดัชนีเพียงตัวเดียว
             อาเรยหลายมิติ ก็คือ อาเรยของอาเรย โดยอาจมีมิติ ตั้งแต 2 .. n

    อาเรยสองมิติ
             เปนอาเรยที่สามารถมองไดในลักษณะของ ตาราง (แถว x คอลัมน)
              การสรางตัวแปรอาเรยสองมิติ
             ใชฟงกชัน array( ) ในรูปแบบ
                        array( array(รายการของคาแถวที่ 1) ,
                                  array(รายการของคาแถวที่ 2) ,
                                 …
                                  array(รายการของคาแถวที่ n) ,
                            );
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               204
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 อาเรย (Array)
                                                                                                               STUDENT DEVELOPMENT 2008

  ตัวอยาง                                                               คอลัมน

                          00001                               Sombat                                   15000
                          00002                               Sompong                                  9000
        แถว
                          00003                               Somsak                                   12000
                          00004                               Somsri                                   10000
<? $data = array( array("00001", "Sombat", 15000), array("00002", "Sompong",9000),
                   array("00003", "Somsak", 12000), array("00004", "Somsri", 10000) );
   echo $data[1][0] . " " . $data[1][1] . " " . $data[1][2] . "<BR>" ."<BR>"; // แถว 2
   for($row = 0; $row < 4; $row++) {
      for($col = 0; $col < 3; $col++) {
          echo $data[$row][$col] . " " ;
      }
      echo "<BR>";
   }                                                                                 ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                       205
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 อาเรย (Array)
                                                                                                       STUDENT DEVELOPMENT 2008


  อาเรยหลายมิติที่ใช string เปนดัชนี
            หลักการคือ            ดัชนีตัวแรกเปนแถว ซึ่งยังคงเปนเลขจํานวนเต็ม
                                  ดัชนีตัวที่สองเปนคอลัมน ซึ่งเปน string
                                  $ชื่ออาเรย[แถวที่]["string"]
  ตัวอยาง
  <? $employee = array( array("code"=>"0001", "name"=>"sombat", "salary"=>12000),
                    array("code"=>"0002", "name"=>"sompong", "salary"=>10000),
                     array("code"=>"0003", "name"=>"somsak", "salary"=>9000)      );
       echo $employee[1]["code"] . " " . $employee[1]["name"] . " " .
             $employee[1]["salary"] . "<BR>";
      for($i=0; $i<3; $i++)
           echo $employee[$i]["code"] . " " . $employee[$i]["name"] . " " .
                 $employee[$i]["salary"] . "<BR>";                                   ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               206
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 อาเรย (Array)
                                                                                                       STUDENT DEVELOPMENT 2008


  การเขาถึงดัชนีที่เปน string
            เราสามารถแสดงขอมูลดัชนีที่เปน string ของอาเรย ไดหลายวิธี
            โดยใชฟงกชัน each( ) และ list( )
  ฟงกชัน each( )
            รูปแบบ each($ชื่อตัวแปรอาเรย )
                       ซึ่ง each( ) จะสงกลับขอมูลชนิดอาเรยแบบใช string เปนดัชนี
                                  โดยที่ถาระบุดัชนี เปน [key] จะเปนชื่อดัชนี
                                                          [value] จะเปนขอมูลในอาเรย
  ตัวอยาง
  <? $arr = array("mon"=>1000, "tue"=>1200, "wed"=>1500, "thu"=>750, "fri"=>900);
     while($data = each($arr) )
           echo $data["key"] . " " . $data["value"] . "<BR>";
  ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               207
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 อาเรย (Array)
                                                                                                       STUDENT DEVELOPMENT 2008


  ฟงกชัน list( )
             รูปแบบ list($ตัวแปรเก็บดัชนี, $ตัวแปรเก็บคา)
                       list( ) จะใชรวมกับ each( )
                       โดย list( ) จะแยกผลลัพธจาก each( ) ซึ่งเปนอาเรย ไปเก็บแยกใน
                       ตัวแปรเดี่ยวๆที่ระบุ
  ตัวอยาง
   <? $arr = array("mon"=>1000, "tue"=>1200, "wed"=>1500, "thu"=>750, "fri"=>900);
        while(list($idx,$val) = each($arr) )
               echo $idx . " " . $val . "<BR>";
   ?>


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               208
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 อาเรย (Array)
                                                                                                       STUDENT DEVELOPMENT 2008


  การเรียงลําดับขอมูลในอาเรย
           แบงเปน การเรียงลําดับอาเรยที่ใชเลขจํานวนเต็มเปนดัชนี
                      กาการเรียงลําดับอาเรยที่ใช string เปนดัชนี

  การเรียงลําดับอาเรยที่ใชเลขจํานวนเต็มเปนดัชนี
           การเรียงลําดับขอมูลในอาเรย จากนอยไปมาก ใชฟงกชัน sort( )
  ในรูปแบบ sort($ชื่อตัวแปรอาเรย)
           การเรียงลําดับขอมูลในอาเรย จากมากไปนอย ใชฟงกชัน rsort( )
  ในรูปแบบ rsort($ชื่อตัวแปรอาเรย)




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               209
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 อาเรย (Array)
                                                                                                       STUDENT DEVELOPMENT 2008


  ตัวอยาง
                   <?
                   $arr = array(10,-5, 4.5, 100, 2e-2);
                   sort($arr);
                   foreach($arr as $data)
                       echo $data . "<BR>";
                   $arr2 = array("Hello", "hello", "hell", "Ha", "z");
                   rsort($arr2);
                   foreach($arr2 as $data)
                       echo $data . "<BR>";
                   ?>


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               210
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 อาเรย (Array)
                                                                                                       STUDENT DEVELOPMENT 2008


  การเรียงลําดับอาเรยที่ใช string เปนดัชนี
           สามารถเรียงไดทั้งตัวดัชนี (String) และขอมูลในอาเรย
  การเรียงตัวดัชนี
           จากนอยไปมาก ใชฟงกชัน ksort( ) รูปแบบ ksort($ชื่อตัวแปรอาเรย)
           จากมากไปนอย ใชฟงกชัน krsort( ) รูปแบบ krsort($ชื่อตัวแปรอาเรย)
  การเรียงขอมูลในอาเรย
           จากนอยไปมาก ใชฟงกชัน asort( ) รูปแบบ asort($ชื่อตัวแปรอาเรย)
           จากมากไปนอย ใชฟงกชัน arsort( ) รูปแบบ arsort($ชื่อตัวแปรอาเรย)

  ตัวอยาง



ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               211
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 อาเรย (Array)
                                                                                                       STUDENT DEVELOPMENT 2008

   <? $arr = array("mon"=>1000, "tue"=>1200, "wed"=>1500, "thu"=>750, "fri"=>900);
       ksort($arr); // เรียงดัชนีนอยไปหามาก
       foreach($arr as $key=>$val)
                echo $key . " " . $val . "<BR>";
       echo "<BR>";
       krsort($arr); // เรียงดัชนีมากไปหานอย
       foreach($arr as $key=>$val)
                echo $key . " " . $val . "<BR>";
       echo "<BR>";
       asort($arr); // เรียงคานอยไปมาก
       foreach($arr as $key=>$val)
                echo $key . " " . $val . "<BR>";
       echo "<BR>";
      arsort($arr); // เรียงคามากไปนอย
      foreach($arr as $key=>$val)
               echo $key . " " . $val . "<BR>";
   ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               212
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
   บทที่ 6
PHP กับ FORM




               213
 PHP กับ FORM
                                                                                                       STUDENT DEVELOPMENT 2008


              ดังที่ไดกลาวมาแลว FORM จะเปนสวนที่ใชรับขอมูลจากผูใช
     โดยมีรูปแบบ คือ
              <FORM METHOD= ”POST/GET” ACTION= ”URL”>
              ...
              </FORM>

              เมื่อมีการปอนขอมูล แลวคลิกปุม SUBMIT ขอมูลใน FORM จะถูกสงไปให PHP
                      ่
     script ไฟลอื่นทีระบุในสวน URL

                     ซึ่งลักษณะการสงจะขึ้นอยูกับวิธีการ(Method) ที่ระบุ
                     GET เปนการสงขอมูลพวงทายไปกับ URL ซึ่งสามารถมองเห็นขอมูลที่สง
                              บน Address bar และมีขอจํากัด คือ จะสงไดไมเกิน 255 ตัวอักษร
                                                    ่
                     POST เปนวิธีการสงขอมูลทีไมสามารถมองเห็นขอมูลที่สง (เปนความลับ)
                              และไมมีการจํากัดขอมูลที่สง ซึ่งนิยมใชมากกวาวิธี GET
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               214
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                       STUDENT DEVELOPMENT 2008


     การสราง FORM รับขอมูลใน PHP
               FORM รับขอมูลใน PHP อาจเปน Web page ปกติ (.html) หรือ ไฟล PHP Script
     (.php) ก็ได

     <!- FORM.html ->
     <form action="getdata.php" method="get">
     <pre>
     User name <input type="tex"      name="uname" value="">
     Password <input type="password" name="pword" value="">
     </pre>
     <input type="submit" value="Send">
     </form>

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               215
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                       STUDENT DEVELOPMENT 2008


     การสราง FORM รับขอมูลใน PHP
     <!- FORM.php ->
     <form action="getdata.php" method="get">
     <pre>
     User name <input type="tex"      name="uname" value="">
     Password <input type="password" name="pword" value="">
     </pre>
     <input type="submit" value="Send">
     </form>

                                ํ
     ในไฟล PHP Script อาจไมมีคาสั่ง php เลยก็ได


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               216
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                       STUDENT DEVELOPMENT 2008

  GET Method
           ใน PHP ไดจัดเตรียมตัวแปรระบบชื่อ $_GET[ ] ซึ่งเปนตัวแปรอาเรย ในการอางถึง
  สวนรับขอมูลใดๆบน FORM โดยการอางถึงสวนรับขอมูลบน FORM จะใช

                 รูปแบบ $_GET ["ชื่อสวนรับขอมูล"]




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               217
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                       STUDENT DEVELOPMENT 2008

  GET Method
  ตัวอยาง <!- FORM.html ->
           <form action="getdata.php" method="get">
           <pre>
           User name <input type="tex"      name="uname" value="">
           Password <input type="password" name="pword" value="">
           </pre>
           <input type="submit" value="Send">
           </form>
                      <? // getdata.php
                          echo     "<PRE>";
                          echo     "User name = " . $_GET["uname"] . "<BR>" ;
                          echo     "Password = " . $_GET["pword"] . "<BR>" ;
                          echo     "</PRE>";                                                                     ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               218
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                       STUDENT DEVELOPMENT 2008

  GET Method
           อีกวิธีในการอางถึงคาในสวนรับขอมูล คือ การใชชื่อสวนรับขอมูลบน FORM ในแบบ
  ตัวแปร ซึ่ง PHP จะนําสวนรับขอมูลบน FORM มาสรางเปนตัวแปรที่มีชื่อเดียวกับสวนรับขอมูล
  ใหโดยอัตโนมัติ

  ตัวอยาง
                     <?  // getdata.php
                       echo "<PRE>";
                       echo "User name = $uname " ;
                       echo "Password = $pword ";
                       echo "</PRE>";
                     ?>

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               219
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                         STUDENT DEVELOPMENT 2008

  GET Method

                                                                          ขอมูลจะถูกสงผาน ชื่อสวนรับขอมูล (field)
                                                                          uname และ pword ทาง URL
                                                                          ซึ่งไมเหมาะกับขอมูลทีเ่ ปนความลับ




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                 220
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                       STUDENT DEVELOPMENT 2008

 POST Method
          ใน PHP ไดจัดเตรียมตัวแปรระบบชื่อ $_POST[ ] ซึ่งเปนตัวแปรอาเรย ในการอางถึง
 สวนรับขอมูลใดๆบน FORM โดยการอางถึงสวนรับขอมูลบน FORM จะใช

                                รูปแบบ $_POST [” ชื่อสวนรับขอมูล” ]




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               221
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                       STUDENT DEVELOPMENT 2008

 POST Method ตัวอยาง
<!- CHECKBOX.html ->
<form action= "getcheckbox.php" method="post">
<FORM>
<INPUT TYPE="CHECKBOX" NAME="hobby[ ]" VALUE="1" CHECKED>อานหนังสือ
<BR>
<INPUT TYPE="CHECKBOX" NAME="hobby[ ]" VALUE="2" CHECKED>เลนเกมส
<BR>
<INPUT TYPE="CHECKBOX" NAME="hobby[ ]" VALUE="3">เลน Internet
<input type="submit" value="Send">
</FORM>                                        <? // getcheckbox.php
                                                  echo "<PRE>";
                                                  echo "$hobby[0]";
                                                  echo "$hobby[1]";
                                                  echo "$hobby[2]";
                                                  echo "</PRE>";     ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               222
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                       STUDENT DEVELOPMENT 2008

 POST Method
                                                                          ขอมูลจะยังคงถูกสงผานชื่อสวนรับขอมูล
                                                                          uname และ pword
                                                                          แตมีการซอนขอมูล ซึ่งเหมาะกับขอมูลที่เปนความลับ




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                223
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                       STUDENT DEVELOPMENT 2008

  Redirect (การเปลี่ยนหนา)
       การเปลี่ยนหนาไปยังเอกสาร HTML หนาใหม (.html หรือ .php) นอกจาก
            • click ที่ Hyperlink (tag HREF)
            • click ปุม SUBMIT บน FORM
       แลว ยังสามารถใชฟงกชัน header ( ) เพื่อสั่งเปลี่ยนหนาในทันที
       รูปแบบ        header(”Location:[ชื่อไฟล หรือ URL]” );
                     ซึ่งตองอยูในสวน Head กอน BODY
       เชน          header(”Location:http://localhost/checkdata.php” );
                     header(”Location:http://www.payap.ac.th” );
       ตัวอยาง <? // redirect.php
                                   header("Location:http://localhost/checkdata.php");                            ?>
                               จะเรียกใชไฟล checkdata.php ในทันที
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               224
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                               STUDENT DEVELOPMENT 2008

  Session
       ตัวแปรในไฟล หรือหนา(page) ใดๆ จะมีขอบเขตเฉพาะในไฟลหรือหนานั้นๆ เทานั้น
  ไมสามารถถูกมองเห็นหรือเขาถึงไดจากไฟลหรือหนาอื่นๆ

                                      สงคาในสวนรับขอมูล
                                      ไปเก็บในตัวแปร
                                      $uname, $pword

                                                                    ูจก word
                                                                  ร ั p



                                                                                              $un
                                                                                               ไมร e, $pw
                                                               ไม e , $



                                                                                                  am
                                                                                                   ูจัก ord
                                                              $u nam




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                       225
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                       STUDENT DEVELOPMENT 2008


         ดังนั้นถาตองการใหตัวแปรใดๆ สามารถถูกมองเห็นหรือเขาถึงไดจากทุกไฟล หรือ
     ทุกหนา(page) ตองประกาศตัวแปรนั้น เปน ตัวแปรแบบ Session

     Session
                          ้
           Session คือ พืนที่เก็บขอมูลสวนตัวของแตละ client ซึ่งแตละ client จะมีหมายเลข
     Session (Session ID) ที่แตกตางกัน
           โดยปกติผูพัฒนาตองสั่ง start Session เพื่อสรางพื้นที่เก็บขอมูลเอง โดยเรียกใช
     ฟงกชัน session_start( ) และเมื่อยุติการทํางานตองสั่ง ทําลายขอมูลทั้งหมดเอง โดยใช
     ฟงกชัน session_destroy( )




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               226
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                       STUDENT DEVELOPMENT 2008


       ที่ตองสราง Session เอง เพราะในไฟล php.ini กําหนด session.auto_start = 0
 แตถาตองการใหมีการสราง Session ให Client โดยอัตโนมัติ (ไมตองสั่ง start Session เอง)
 ตองแก seesion.auto_start = 1




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               227
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                       STUDENT DEVELOPMENT 2008


     Session ID
          การสั่งแสดงหมายเลข Session ID ของ client สามารถใชฟงกชัน session_id( )

     ทดลองสรางไฟล
         <? // session.php
               echo "Your session id is " . seesion_id( ); ?>
     แลวเปด Browser หลายๆ Window แลวเรียกใช http://localhost/session.php




     จะเห็นวาแตละ Window จะเปนคนละ Session กัน
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               228
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                       STUDENT DEVELOPMENT 2008


 ตัวแปร Session
                                                                    ั
         ตัวแปร Session จะสามารถถูกมองเห็นไดจากทุก web page คือ มีลกษณะเปน Global
         ใน PHP สามารถสรางตัวแปร Session ได 2 ลักษณะ
          1. กําหนดใหตัวแปรปกติ (ที่มีอยูแลว) ใหมีคุณสมบัติเปนตัวแปร Session
              จะใชฟงกชัน session_register( ) เพื่อลงทะเบียนใหตัวแปรเปนตัวแปรแบบ Session
              รูปแบบ session_register(”ชื่อตัวแปร1”, ”ชื่อตัวแปร2”, …) ;
              ตัวอยาง
                        <?
                          $uname = "pumin";
                          $pword = "12345";
                          session_register("uname", "pword");
                        ?>
              สังเกต ชื่อตัวแปรไมตองระบุ $
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               229
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                       STUDENT DEVELOPMENT 2008


 ฟงกชันที่เกี่ยวของ
            session_is_registered( )                                                            
                                                               ตรวจสอบวาตัวแปร session นี้มีอยูแลวหรือยัง
            session_unregister( )                              ยกเลิกเฉพาะตัวแปร session ที่ระบุ
            session_destroy( )                                 ยกเลิกตัวแปร session ทุกตัว




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               230
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                       STUDENT DEVELOPMENT 2008

  ตัวแปร Session
       2. สรางตัวแปร Session ขึ้นมาใหม
           ใน PHP ไดจัดเตรียมตัวแปรแบบ Session ไวใหใชงาน คือ
            ตัวแปร $_SESSION[ ]
            ตัวแปร $_SESSION[ ] เปนตัวแปรแบบอาเรย ที่ใชชื่อตัวแปร Session เปนดัชนี
       ตัวอยาง <?
                                  $_SESSION["user"] = "pumin"; // สรางตัวแปร Session ใหม
                                  $_SESSION["passw"] = "1234"; // สรางตัวแปร Session ใหม
                                  $v1 = $_SESSION["user"];
                                  $v2 = $_SESSION["passw"];
                                  echo $v1 . " " . $v2;
                                ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               231
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                               STUDENT DEVELOPMENT 2008

  แบบฝกหัด
      จงสราง php script เพื่อทํางานในลักษณะตอไปนี้
    login.php                                                                   sorry.php
    Login                stu1                                                   แสดงขอความวา Login หรือ Password
    Password
                                                                                ที่ผูใชปอนไมถูกตอง
                         *****
                                                                                Login : xxxx or Password : yyyyy incorrect
                         Login
                                                                                แลวมี link กลับไปที่หนา login
                                                                                Login again
                                         welcome.php
                                          แสดงขอความตอนรับ โดยใช login ที่ผูใชปอน
     checkuser.php                        Hello xxxx

     ตรวจสอบ วา Login == stu1 และ
     Password = 12345 หรือไม
     ถาใชเปลี่ยนหนา(Redirect) ไปที่ welcome.php                               ถาไมใชเปลี่ยนหนาไปที่ sorry.php
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                       232
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                       STUDENT DEVELOPMENT 2008

  การอานคา CHECKBOX
           ถาผูใชมีการเลือก (CHECKED) คาในตัวแปรสวนรับขอมูล จะมีคาตามที่ระบุใน
                                        ี
  VALUE แตถาไมมีการเลือก ก็จะไมมคาใดๆในตัวแปรสวนรับขอมูล
 <!- CHECKBOX.html ->
 <pre>
 <form action= "getcheckbox.php" method="post">
 <INPUT TYPE="CHECKBOX" NAME="hobby[ ]" VALUE="1" CHECKED>อานหนังสือ
 <INPUT TYPE="CHECKBOX" NAME="hobby[ ]" VALUE="2" CHECKED>เลนเกมส
 <INPUT TYPE="CHECKBOX" NAME="hobby[ ]" VALUE="3">เลน Internet
 <input type="submit" value="Send">
 </form>                                                   <? // getcheckbox.php
 </pre>                                                      echo "$hobby[0] <BR>";
                                                             echo "$hobby[1] <BR>";
                 ถามีการเลือก checkbox ใดคาในตัวแปร จะมี   echo "$hobby[2] <BR>";
                 คาตามที่ระบุใน VALUE                     ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               233
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                       STUDENT DEVELOPMENT 2008

  CHECKBOX
        ตัวแปรที่เก็บคาของ CHECKBOX เปนอาเรยดังนั้นจึงนิยมใช loop มาชวย
     <? // getcheckbox.php
       $max = count($hobby); // ฟงกชัน count( ) นับจํานวนสมาชิกในอาเรย
       for($i=0; i< $max ; $i++)
           echo "$hobby[$i]" . "<BR>";
     ?>
  หรือ <? // getcheckbox.php
         foreach($hobby as $val)
                 echo $val . "<BR>";
       ?>

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               234
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                       STUDENT DEVELOPMENT 2008

  การอานคา SELECT (Listbox หรือ Combobox)
            ถาผูใชมีการเลือก (CHECKED) คาในตัวแปรสวนรับขอมูล จะมีคาตามที่ระบุใน
                                       ี
  VALUE แตถาไมมีการเลือก ก็จะไมมคาใดๆในตัวแปรสวนรับขอมูล
   <!- select.html ->
   <FORM ACTION="getselect.php" METHOD="post">                กรณีที่ตองการใหนําชื่อรายการ
   <SELECT NAME="select1[ ]" MULTIPLE>
   <OPTION>ตัวเลือก 1</OPTION>                                ตัวเลือกมาเปนคาจากการเลือก ไม
   <OPTION>ตัวเลือก 2</OPTION>                                ตองใช attribute VALUE
   <OPTION SELECTED>ตัวเลือก 3</OPTION>
   <OPTION>ตัวเลือก 4</OPTION>                                <? // getselect.php
   <OPTION SELECTED>ตัวเลือก 5</OPTION>                          foreach($select1 as $val)
   </SELECT>
   <input type="submit" value="Send">                                     echo $val . "<BR>";
   </FORM>                                                    ?>

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               235
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                       STUDENT DEVELOPMENT 2008

แบบฝกหัด จงสราง FORM เพื่อรับขอมูลจากผูใชดังนี้




                พรอมทั้งเขียน PHP Script เพื่อแสดงขอมูลที่ผูใชปอนบน FORM
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               236
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ FORM
                                                                                                              STUDENT DEVELOPMENT 2008


<FORM ACTION ="showdata.php" METHOD="POST">
<PRE>
ชื่อ <INPUT NAME="NAME" TYPE="TEXT"> นามสกุล                     <INPUT NAME="SURNAME" TYPE="TEXT">
เพศ<INPUT TYPE="RADIO" NAME="SEX" VALUE="1" CHECKED>ชาย <INPUT TYPE="RADIO" NAME="SEX" VALUE="2">หญิง
งานอดิเรก
    <INPUT TYPE="CHECKBOX" NAME="hobby[0]" VALUE="1">อานหนังสือ
    <INPUT TYPE="CHECKBOX" NAME="hobby[1]" VALUE="2">เลนเกมส
    <INPUT TYPE="CHECKBOX" NAME="hobby[2]" VALUE="3"CHECKED>เลน Internet
วุฒิการศึกษาสูงสุด <SELECT NAME="combo1" SIZE="4" ALIGN="TOP">
       <OPTION VALUE="1">ปวช.</OPTION>
       <OPTION VALUE="2">ปวส.</OPTION>
       <OPTION VALUE="3">ปวท.</OPTION>
       <OPTION VALUE="4" SELECTED>ม.6</OPTION>
      </SELECT>
หมายเหตุ
      <TEXTAREA NAME="REMARK" COLS"100" ROWS="10" ALIGN="TOP">
      </TEXTAREA>

      <INPUT TYPE="SUBMIT" NAME="ok" VALUE="ตกลง" >                       <INPUT TYPE="RESET" NAME="cancel" VALUE=" ลาง ">
</PRE>


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                      237
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
บทที่ 7
MySQL




          238
 MySQL
                                                                                                                  STUDENT DEVELOPMENT 2008

              MySQL เปนระบบจัดการฐานขอมูล หรือ DBMS (Database Management System)
              DBMS คือ ซอฟตแวรที่ทําหนาที่เปนตัวกลางระหวางผูใช และโปรแกรมอื่นๆ ในการ
     ทํางานกับฐานขอมูล


                        Client
                         Client



                      Client
                       Client                                          DBMS                            Database




                         Client
                          Client

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                          239
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008




           ฐานขอมูลของ MySQL จัดเปน ฐานขอมูลเชิงสัมพันธ (Relational Database) คือ
  ขอมูลจะถูกจัดเก็บในรูปของตาราง(Table) ประกอบดวยแถว (Record) และคอลัมน (Field)
  โดยที่ในแตละตารางจะเก็บขอมูลเกี่ยวกับเรื่องใดเรื่องหนึ่ง และขอมูลในตารางหนึ่งอาจมี
  ความสัมพันธ(Relation)กับขอมูลในตารางอื่นๆ ได




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               240
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


                                       Field

           Record




                 ในแตละตาราง จะมีคอลัมน (Field) พิเศษที่เรียกวา Primary Key (คียหลัก)
       ซึ่งขอมูลในคอลัมนนี้จะตองไมซ้ํา เพื่อใหสามารถแบงแยกขอมูลแตละแถวได
       จากตัวอยางคือ คอลัมน runno
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               241
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


           MySQL เปนระบบจัดการฐานขอมูลเชิงสัมพันธ หรือ RDBMS ( Relational Database
    Management System) ที่มีขอดีดังนี้

            • เปน Freeware (Opensource)
            • ใชทรัพยากรนอย , มีความเร็วสูง, มีความคงทน และงายตอการใชงาน
            • ทํางานแบบ Client/Server (รองรับการเรียกใชจากหลายๆ Client ไดพรอมกัน)
            • ใชไดในหลายๆ ระบบปฏิบัติการ เชน Windows, Linux, UNIX
            • รองรับ SQL มาตรฐาน (ISO/ANSI SQL 1992)




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               242
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


                ภาษา SQL (Structured Query Language) เปนภาษามาตรฐานที่ใชติดตอกับ DBMS
      เพื่อจัดการกับฐานขอมูล
                ภาษา SQL แบงไดเปน 2 ประเภทใหญๆ
                • ภาษาสําหรับนิยามขอมูล(Data Definition Language- DDL)
                      ประกอบดวยคําสั่งที่ใชในการกําหนดและจัดการกับโครงสรางของ
                   ขอมูล เชนคําสั่งสําหรับ
                           สรางฐานขอมูล (CREATE DATABASE),
                           ลบฐานขอมูล(DROP DATABAE),
                           สรางตารางขอมูล(CREATE TABLE)
                           ลบตาราง(DROP TABLE),
                           แกไขโครงสรางตาราง(ALTER TABLE),
                           เปลี่ยนชื่อตาราง (RENAME TABLE)

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               243
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


                    • ภาษาสําหรับการจัดการขอมูล (DataMnipulation Language- DML)
                         ประกอบดวยคําสั่งสําหรับจัดการกับขอมูลในฐานขอมูล เชนคําสั่งสําหรับ
                            สืบคนขอมูล (SELECT) ,
                            เพิ่มแถวลงในตาราง (INSERT) ,
                            แกไขแถวในตาราง (UPDATE) ,
                            ลบแถวในตาราง (DELETE)




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               244
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


      การใชงาน MySQL client
                ระบบจัดการฐานขอมูล MySQL เปนสถาปตยกรรมแบบ Client/Server (ลูกขาย/แม
      ขาย) คือ ระบบจัดการฐานขอมูล MySQL จะทําหนาที่เปนแมขาย ซึ่งคอยรองรับการเรียกใช
      ขอมูล จากลูกขายหลายๆเครื่อง




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               245
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


                     โดยปกติ MySQL Server จะถูกกําหนดใหเริ่มตนทํางาน (Start) โดยอัตโนมัติ




                     หรืออาจสั่งใหเริ่มตนทํางาน จาก Start - menu




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               246
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


              สวน MySQL client มาตรฐาน คือ โปรแกรม mysql.exe ที่อยูใน
      C:\Appserv\mysql ซึ่งสามารถเรียกใชโดยไปที่ command prompt




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               247
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


                                                                 คําสั่ง DOS เพื่อยายไปใน Folder ทีเ่ ก็บโปรแกรม MySQL
              การเรียกใชโปรแกรม MySQL
                                                                        ่
              โดยระบุ h (Host name) ชื่อเครื่องที่เก็บฐานขอมูล MySQL ชือผูใช และรหัสผาน




 MySQL prompt รอรับคําสั่ง SQL
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               248
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


                                                                   สั่งแสดงฐานขอมูลทั้งหมด

                                                                    เลือกใชฐานขอมูล

                                                                    แสดงตารางขอมูลทั้งหมดในฐานขอมูล




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               249
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


                     แสดงขอมูลในตารางขอมูล




                     ออกจากโปรแกรม MySQL




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               250
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


              การติดตอกับฐานขอมูล MySQL นอกจาการใช MySQL client ในลักษณะการพิมพ
   คําสั่ง SQL สามารถใชโปรแกรม phpMyAdmin ซึ่งสั่งงานในลักษณะกราฟก (Graphical User
   Interface)
              โปรแกรม phpMyAdmin จัดเปนโปรแกรมประเภท Web application คือ เรียกใชงาน
   ผาน Web browser
   วิธีการเรียกใชงาน phpMyAdmin
     click Link                                                  หรือ พิมพ http://localhost/phpmyadmin ใน URL




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               251
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                                  STUDENT DEVELOPMENT 2008


               หลังจากนั้นจะปรากฎกรอบ ใหปอนชื่อผูใช(User name) และรหัสผาน (Password)
      สําหรับการใชงานฐานขอมูล MySQL
               ซึ่งผูใชฐานขอมูลแบงไดเปนหลายระดับ โดยที่ในแตละระดับจะมีสิทธิในการเขาถึง
      และจัดการกับขอมูลในฐานขอมูล แตกตางกัน
                                                                                                       root คือ ผูบริหารฐานขอมูล
                                                                                                       (Database Administrator)
                                                                                                       มีสิทธิในการกระทําการทุก
                                                                                                       อยางกับขอมูล
                                                                                                       รหัสผาน ตอนติดตั้ง MySQL
                                                                                                       ครั้งแรก
                                                                                                       (กรณีนี้ ใช mysql)
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                          252
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                        STUDENT DEVELOPMENT 2008


      ถาระบุ User name และ Password ถูกตอง จะปรากฎหนาจอหลักของ phpMyAdmin




                                                                                  สามารถสั่งเปลี่ยนภาษาสําหรับการแสดงผล
                                                                                  บน Browser ได


          การกําหนดสิทธิของผูใชฐานขอมูล
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                253
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008

   กรณีเลือก Privileges เพื่อกําหนดสิทธิผูใช




               สามารถสั่งเพิ่มผูใชฐานขอมูลใหม                      การแกไขสิทธิ
           สังเกต user ชื่อ root ถาเขาใชฐานขอมูลจากเครื่องนั้น (localhost) ตองใส password
           แตถาเขาใชจากเครื่องอื่นไมตองใส password (ตองแกไขโดยกําหนด password)
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               254
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                                       STUDENT DEVELOPMENT 2008

ถาเลือกแกไขสิทธิ
ระดับของสิทธิ
มีหลายระดับ
Global (ทั้งหมด)
เฉพาะ Database
เฉพาะ Table
เฉพาะ Field

เลือกฐานขอมูล
ที่ตองการใหสิทธิ
             ้
กับผูใชคนนัน
                                                                                                       การแกไขสิทธิ
กําหนดหรือเปลี่ยน
รหัสผานของผูใช
    ้
คนนัน
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                               255
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                                STUDENT DEVELOPMENT 2008


              โดยปกติแตละฐานขอมูลของ MySQL จะถูกเก็บใน Folder ที่มีชื่อเดียวกับฐานขอมูล
      ภายใต Folder c:\Appserv\MySQL


                                                                                                                         ้
                                                                                                       การแสดงฐานขอมูลทังหมด




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                        256
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


                                            
                     เมื่อเลือกฐานขอมูลที่ตองการทํางานดวย จะปรากฏหนาจอ
                                                                                                               ลบ
                                                                                                               ตารางขอมูล ที่
                                                                                                               เลือก (Check)

                                                                                                                รายละเอียด
                                                                                                                ของ
                                                                                                                ตารางขอมูล
                                                                                                                ในฐานขอมูล
                                                                                                                ชื่อ mysql


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               257
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008

   การสรางฐานขอมูลใหม




                               พิมพชื่อฐานขอมูล                     กําหนดถาตองการเก็บขอมูลภาษาไทยในฐานขอมูล


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               258
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                             STUDENT DEVELOPMENT 2008

   การสรางฐานขอมูลใหม



                                                                                       phpMyAdmin จะสรางคําสั่ง SQL สําหรับ
                                                                                       สรางฐานขอมูล พรอมทั้งเรียกใชคําสั่ง SQL
จะเกิดฐานขอมูลใหม ที่ไมมีตารางขอมูล                                                นั้นใหโดยอัตโนมัติ

                          ้
 เลือกทํางานกับฐานขอมูลนัน แลวทดลองสรางตารางใหม ในฐานขอมูล
                                             พิมพชื่อตารางขอมูลใหมที่ตองการสราง
                                             พรอมทั้งระบุจํานวนคอลัมนของตาราง



ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                     259
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008

  การสรางตารางขอมูลใหม
          ใน phpMyAdmin เมื่อสั่งสรางตารางขอมูล โดยระบุชื่อตาราง และจํานวนคอลัมนใน
 ตารางแลว ตองระบุรายละเอียดของแตละคอลัมน (Field) ในตาราง




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               260
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008

  การระบุรายละเอียดคอลัมน
             รายละเอียดที่ตองระบุใหแตละคอลัมน (Field) มีดังนี้
   ชื่อคอลัมน (Name)           เปนการระบุชื่อคอลัมน
   ชนิดของคอลัมน (Type) เปนการระบุชนิดของคอลัมนหรือชนิดของขอมูล เพื่อ
                                กําหนดวาคอลัมนนี้จะเก็บขอมูลชนิดใด
   ความกวาง (Length Values) เปนการระบุความกวางหรือความยาว(สูงสุด)
                                ของขอมูลที่จะเก็บลงในคอลัมนนั้น
   คุณสมบัติ (Attribute)        เปนการกําหนดคุณสมบัติเพิ่มเติม มักใชในกรณีที่มีชนิด
                                เปนเลขจํานวน
   คาวาง (Null)               เปนการระบุวาคอลัมนนี้สามารถเก็บคาวางไดหรือไม
                                มีใหเลือก 2 คา คือ Null กับ Not null
   คาปริยาย (Default)          ในกรณีที่มีการบันทึกแถว(Record) ใหมในตารางขอมูล
                                แตไมมีการปอนขอมูลใหกับคอลัมนนั้น คาปริยายนี้จะ
                                ถูกใสลงในคอลัมนโดยอัตโนมัติ
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               261
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008

  การระบุรายละเอียดคอลัมน
   พิเศษ (Extra) :         มีตัวเลือกเดียวคือ auto_increment หมายถึง คาใน
                           คอลัมนนี้ จะใชคาในคอลัมนเดียวกัน
                           ของแถวกอนหนา + 1 โดยอัตโนมัติ มักใชกับคาที่เพิ่ม
                           ทีละ 1 เชน รหัสพนักงาน , ลําดับที่
   คียหลัก (Primary)      เลือกหากตองการใหคอลัมนนเี้ ปน Primary key (คียหลัก)
                           ทุกตารางตองมีคอลัมนที่เปนคียหลัก อยางนอย 1 คอลัมน
                           ซึ่งเก็บขอมูลที่ไมซ้ํากัน
   ดัชนี (Index)           เลือกหากตองการใหทําดรรชนีบนคอลัมนนี้ ขอมูลใน
                           คอลัมนที่ทําดัชนีไว จะถูกคนหาไดอยางรวดเร็ว (คอลัมนที่
                           เปนคียหลัก จะถูกทําดัชนีโดยอัตโนมัติ)
   เอกลักษณ (Unique)                                    ี้
                           เลือกหากตองการใหคอลัมนนมีความเปนเอกลักษณ
   ขอความเต็ม (Fulltext)  Fulltext index เปนดัชนีประเภทหนึ่ง เปนดัชนีสําหรับคนหา
                           ขอความโดยเฉพาะ ซึ่งจะชวยใหสามารถคนหาขอความได
                           อยางรวดเร็วและแมนยํา
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               262
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


      ชนิด(ประเภท) ขอมูลใน MySQL
              การระบุชนิดของคอลัมน ก็คือการระบุชนิดของขอมูลที่เก็บในคอลัมนนั้นๆ

                     ใน MySQL แบงชนิดขอมูลออกเปน 5 ประเภทใหญ คือ
                     1. ตัวอักษร (String)
                     2. Blob (Binary Large Object)
                     3. เลขจํานวน (Number)
                     4. วันที่ (Date/Time)
                     5. SET และ ENUM คือ ชนิดผูใชกําหนดเอง (ไมกลาวถึง)




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               263
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


    1.  ตัวอักษร (String)
                       
         String คือ กลุมของตัวอักษร ซึ่งแบงเปนประเภทยอยๆ ไดดังนี้
                ชนิด          ขอบเขต                หมายเหตุ
    CHAR [BINARY]             1 – 255 String ความยาวคงที่ ระบุไดตั้งแต 1 – 255 เชน
                                          CHAR(5) จองไว 5 ถาเก็บ ” Tom” ก็จะใช
                                          เนื้อที่ 5 bytes
                                          และขอมูลจะถูกเรียงแบบ Case-sensitive แตถา
                                          ระบุ BINARY จะไมคํานึงถึงตัวพิมพ
    VARCHAR [BINARY] 1 – 255 String ความยาวแปรผัน ระบุไดต้ังแต 1 – 255
                                          เชน VARCHAR(5) ถาเก็บ ” Tom” ก็จะใช
                                           เนื้อที่ 3 + 1 bytes
    TINYTEXT                  1-255       เก็บขอมูลไดสูงสุด 255 คลายกับ VARCHAR
                                           แตสามารถทํา FULL TEXT SEARCH ได
                                          และใชเนื้อที่ = ขอมูลจริง + 1 bytes
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               264
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


    1.       ตัวอักษร (String)
                            
              String คือ กลุมของตัวอักษร ซึ่งแบงเปนประเภทยอยๆ ไดดังนี้
                     ชนิด          ขอบเขต             หมายเหตุ
             TEXT                  65,535 เหมือน TINYTEXT แตเก็บขอมูลไดสูงสุด
                                               65,535 ตัวอักษร
                                               และใชเนื้อที่ = ขอมูลจริง + 2 bytes
             MEDIUMTEXT 16,777,215 เหมือน TINYTEXT แตเก็บขอมูลไดสูงสุด
                                               16,777,215 ตัวอักษร
                                               และใชเนื้อที่ = ขอมูลจริง + 3 bytes
             LONGTEXT 4,294,967,295 เหมือน TINYTEXT แตเก็บขอมูลไดสูงสุด
                                               4,294,967,295 ตัวอักษร
                                               และใชเนื้อที่ = ขอมูลจริง + 4 bytes

             หมายเหตุ ภายใน [ ] คือ attribute ซึ่งเปน option จะมีหรือไมก็ได
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               265
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


    2.      BLOB (Binary Large Object)
                 ใชเก็บขอมูลในลักษณะเลขฐานสอง (Binary) ที่ไมมีการอานขอมูลหรือ
           ไมตีความในลักษณะตัวอักษร ตัวอยางเชน รูปภาพ หรือ รหัสควบคุมตางๆ ฯลฯ
                 แบงเปนประเภทยอยๆ ไดดังนี้
                     ชนิด           ขอบเขต              หมายเหตุ
            TINYBLOB               255     เก็บขอมูล BINARY ไดตั้งแต 1 - 255 ตัวอักษร
                                   (byte) ใชเนื้อที่ = ขอมูลจริง + 1 bytes
            BLOB                   65,535 เก็บขอมูล BINARY ไดตั้งแต 1 - 65,535 ตัวอักษร
                                           ใชเนื้อที่ = ขอมูลจริง + 2 bytes
            MEDIUMBLOB 16,777,215 เก็บขอมูล BINARY ไดตั้งแต 1 - 16,777,215
                                            ตัวอักษร ใชเนื้อที่ = ขอมูลจริง + 3 bytes
            LONGBLOB 4,294,967,295 เก็บขอมูล BINARY ไดตั้งแต 1 - 4,294,967,295
                                            ตัวอักษร ใชเนื้อที่ = ขอมูลจริง + 4 bytes
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               266
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                             STUDENT DEVELOPMENT 2008

3.  เลขจํานวน
       คือ ตัวเลขที่สามารถคํานวณได ประกอบดวยประเภทยอยๆดังนี้
            ชนิด                        ขอบเขต ขนาด (Bytes) หมายเหตุ
TINYINT [(M)] [UNSINGED][ZEROFILL)] -127 .. 128 1               เลขจํานวนเต็ม
                                         0 .. 255               M คือ จํานวนหลัก
                                                                ถาไมระบุUNSINGED
                                                                เก็บคาลบได
SMALLINT [(M)] [UNSINGED][ZEROFILL)]     -32,768 .. 32,767     2
                                               0 .. 65,535
MEDIUMINT [(M)] [UNSINGED][ZEROFILL)] -8,388,608 .. 8,388,607 3
                                               0 .. 16,777,215
INT [(M)] [UNSINGED][ZEROFILL)]                                                             -231 .. 231-1     4
หรือ INTEGER                                                                                   0 .. 232-1
BIGINT                                                                                       -263 .. 263-1    8
                                                                                                0 .. 264-1
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                     267
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


              ชนิด               ขอบเขต              ขนาด (Bytes) หมายเหตุ
FLOAT [(M,D)] [ZEROFILL)] -3.402823466x1038 ถึง -1.175494351x10-38 และ
                              0 และ1.17549435x10-38 ถึง 3.402823466x1038
ใชเนื้อที่ 4 bytes เลขจํานวนจริงมีเครื่องหมาย M จํานวนหลักทั้งหมด
                                               D จํานวนเลขหลังจุดทศนิยม
DOUBLE [(M,D)] [ZEROFILL)] -1.7976931348623157x10308 ถึง -2.2250738585070214x10-308
(หรือ REAL)         และ 0 และ 2.2250738585070214x10-308 ถึง 1.7976931348623157x10308
ใชเนื้อที่ 8 bytes
DECIMAL [(M[,D])] [ZEROFILL)] ขอมูลตัวเลขขชนิด unpacked อนุญาตใหเก็บตัวอักษรไดดวย
(หรือ NUMERIC )                     ใชตัวเลขไดเทากับ DOUBLE
ใชเนื้อที่ในการเก็บ M bytes (หรือ D + 2 bytes ถา M<D)

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               268
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008

    4.  วันที่และเวลา (Date/Time)
           คือ ขอมูลวันที่และเวลา แบงเปนประเภทยอยๆไดดังนี้
       ชนิด           ขอบเขต           ขนาด (Bytes)     หมายเหตุ
    DATE 1000-01-01 ถึง 9999-12-31              3       แสดงวันที่ในรูปแบบ
                                                        YYYY-MM-DD
    TIME -838:59:59 ถึง +838:59:59              3       แสดงเวลาในรูปแบบ
                                                        HH:MM:SS
    DATETIME 1000-01-01 00:00:00 ถึง            8       แสดงวันและเวลาในรูปแบบ
                  9999-12-31 23:59:59                   YYY-MM-DD HH:MM:SS
    YEAR[(2/4)]        1970 ถึง 2069            1       แสดงขอมูล 2 หรือ 4 หลัก ใน
                       1901 ถึง 2155                    รูปแบบ YY หรือ YYYY



ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               269
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008

    4.   วันที่และเวลา (Date/Time)
             คือ ขอมูลวันที่และเวลา แบงเปนประเภทยอยๆไดดังนี้
        ชนิด           ขอบเขต              ขนาด (Bytes)   หมายเหตุ
    TIMESTAMP[(M)] 1000-01-01 00:00:00             4      แสดงวันและเวลาตามรูปแบบ
                          ถึง ป ค.ศ. 2037                ที่ผูใชกําหนด โดย M คือ
                                                          จํานวนหลัก
    ตัวอยาง           TIMESTAMP YYYYMMDDHHMMSS
                       TIMESTAMP(14) YYYYMMDDHHMMSS
                       TIMESTAMP(12) YYMMDDHHMMSS
                       TIMESTAMP(10) YYMMDDHHMM
                       TIMESTAMP(8) YYYYMMDD
                       TIMESTAMP(6) YYMMDD
                       TIMESTAMP(4) YYMM
                       TIMESTAMP(2) YY
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               270
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


    คําสั่ง SQL พื้นฐาน
              ในสวนนึ้จะศึกษาถึงคําสั่ง SQL พื้นฐาน ที่ใชจัดการกับขอมูลในฐานขอมูล
              แตกอนที่จะดูถึงรายละเอียดของการใชคําสั่ง SQL ใหติดตั้งฐานขอมูลตัวอยาง ชื่อ
    Student โดยสราง Folder ชื่อ Student ไวภายใต C:\Appserv\MySQL\Data
    แลวคัดลอกไฟลตางๆ ไปไวใน Folder นี้




                                                                           ตารางขอมูลในฐานขอมูล Student
                                                                           ( ถึงแมจะคัดลอกฐานขอมูลไปไวในเครื่องใดๆก็ได
                                                                           แตจะเขาถึงขอมูลในฐานขอมูลได ก็ตองใช
                                                                           user name และ password                          )
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               271
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


 โดยที่ในฐานขอมูล ประกอบดวยตารางขอมูลชื่อ Stu , Student และ StuStatus ซึ่งมีความสัมพันธ
 กันดังนี้




  หมายเหตุ จากภาพตัวอยาง เปนหนาจอของโปรแกรม Microsoft Access
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               272
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


  ทดลองสํารวจขอมูลในฐานขอมูล Student



                                                                       เลือกฐานขอมูล student
                                                                       student(3) หมายถึง ประกอบดวย 3 ตารางขอมูล
                    จะปรากฎหนาจอ




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               273
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008

                    ทดลองสํารวจขอมูลในฐานขอมูล Student
                                            เลือกฐานขอมูล student
                                            student(3) หมายถึง ฐานขอมูล student
                                            ประกอบดวย ตารางขอมูล 3 ตาราง
                                                                   หนาจอแรก แสดงรายละเอียดของตารางขอมูลทั้งหมดใน
                                                                   ฐานขอมูล และสามารถสั่งสรางตารางขอมูลใหมได
                    จะปรากฎหนาจอ




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               274
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                                   STUDENT DEVELOPMENT 2008


                       Browse สั่งแสดงขอมูลในฐานขอมูล



                                                                                                                 phpMyAdmin จะสราง
                                                                                                                 คําสั่ง SQL เพื่อแสดง
                                                                                                                 ขอมูลในตาราง พรอม
                                                                                                                 ทั้งเรียกใชคําสั่ง SQL
                                                                                                                 นั้นใหโดยอัตโนมัติ


                                                                                                       เมื่อดูเสร็จสามารถกลับไปที่หนา
                                                                                                       แสดงรายละเอียด
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                               275
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


    ใน MySQL ผูใชสามารถพิมพคําสั่ง SQL เพื่อจัดการกับขอมูลในฐานขอมูลไดโดยตรง




                                          พิมพคําสั่ง SQL ปดทายดวย ;




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               276
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                              STUDENT DEVELOPMENT 2008


    เมื่อสั่ง Go จะทําการเรียกใชคําสั่ง SQL และปรากฏผลของการเรียกใชคําสั่ง ดังนี้




                                                                                              ผลของการเรียกใชคําสั่ง SELECT
                                                                                              (สืบคนขอมูล)
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                                      277
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


               จะเห็นวาการจัดการกับฐานขอมูล โดยใชคําสั่ง SQL จะมีขอดี คือ สามารถสั่งงานได
    อยางหลากหลาย และสามารถนําไปประยุกตใชกับฐานขอมูลแบบอื่น ไดโดยไมตองยึดติดกับ
    เครื่องมือ(tool) สําเร็จรูปใดๆ เ ชน phpMyAdmin

               ซึ่งเนื้อหาในหลักสูตรนี้ จะเนนที่การใชคําสั่ง SQL เพื่อที่จะใหผูเรียนสามารถเขียน
    คําสั่ง (Script) PHP เพื่อเรียกใชคําสั่ง SQL เพื่อจัดการกับขอมูลในฐานขอมูล MySQL โดยตรง




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               278
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


    คําสั่ง SQL พื้นฐาน
    CREATE DATABASE สรางฐานขอมูลใหม
              รูปแบบ CREATE DATABASE ชื่อฐานขอมูล ;
              ตัวอยาง CREATE DATABASE MyDB;
              อาจทดสอบใน phpMyAdmin




                    หรือพิมพผาน MySQL prompt
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               279
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


    USE             การเปดใชฐานขอมูล
                    รูปแบบ USE ชื่อฐานขอมูล ;
                    ตัวอยาง Use MyDB;

    CREATE TABLE        การสรางตารางขอมูล (ในฐานขอมูลทีเ่ ปดใช)
          รูปแบบ CRATE TABLE ชื่อตารางขอมูล (ชื่อคอลัมน1 ชนิดคอลัมน1,
                                         ชื่อคอลัมน2 ชนิดคอลัมน2,
                                         …
                                          ชื่อคอลัมนn ชนิดคอลัมนn );




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               280
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008




        ตัวอยาง CREATE TABLE Employee (code CHAR( 5 ) NOT NULL ,
                              name VARCHAR( 40 ) NOT NULL ,
                              birthday DATE NOT NULL ,
                              salary FLOAT ( 8, 2 ) NOT NULL ,
                              PRIMARY KEY ( code )
                              );




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               281
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


    DROP DATABASE            ลบฐานขอมูล
             รูปแบบ DROP DATABASE ชื่อฐานขอมูล ;
             ตัวอยาง DROP DATABASE MyDB;
    หมายเหตุ          การลบฐานขอมูลจะทําใหทุกตารางขอมูลถูกลบไปดวย

    DROP TABLE ลบตารางขอมูล
          รูปแบบ DROP TABLE ชื่อตารางขอมูล ;
          ตัวอยาง DROP TABLE MyTbl;

    RENAME TABLE       เปลี่ยชื่อตารางขอมูล
         รูปแบบ RENAME TABLE ชื่อตารางขอมูลเกา TO ชื่อตารางขอมูลใหม ;
         ตัวอยาง RENAME TABLE Tbl1 TO Employee;
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               282
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


 INSERT INTO เพิ่มขอมูลลงในตารางขอมูล
        รูปแบบ INSERT INTO ชื่อตารางขอมูล ( รายชื่อคอลัมน )
                        VALUES (รายการขอมูลที่จะบันทึก);
         หมายเหตุ กรณีขอมูล string ตองอยูภายใน ’ ’
 ตัวอยาง INSERT INTO Employee (code , name, birthday, salary)
                         VALUES('00001', 'Somchai Kerddee', 19800131, 15000);



                                เมื่อสั่ง browse ดูขอมูลในตาราง


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               283
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


    SELECT          การแสดง(สืบคน)ขอมูลในตารางขอมูล
             รูปแบบ SELECT รายชื่อคอลัมน FROM ชื่อตารางขอมูล ;
    ตัวอยาง
             SELECT code , name, birthday, salary FROM Employee;
    หรือ SELECT * FROM Employee;                      // * หมายถึง ทุกคอลัมน
             SELECT name, salary FROM Employee;

                    ซึ่ง คําสั่ง SELECT สามารถมีสวนเพิ่มเติมดังนี้
                    WHERE where_clause แสดงโดยระบุเงื่อนไข (clause คือ อนุประโยค)
                    ORDER BY รายชื่อคอลัมน แสดงโดยเรียงลําดับ
                    GROUP BY รายชื่อคอลัมน แสดงโดยจัดกลุมขอมูล
                    HAVING having_cluase แสดงโดยจัดกลุมแลวระบุเงื่อนไข
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               284
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


    การแสดงขอมูลในตารางขอมูลโดยระบุเงื่อนไข (WHERE)
    รูปแบบ SELECT รายชื่อคอลัมน FROM ชื่อตารางขอมูล WHERE where_clasuse;

             สวน where_clause คืออนุประโยคเงื่อนไข ซึ่งเหมือนกับสวน where_clause ของคําสั่ง
    SQL อื่นๆ เชน DELETE , UPDATE ฯลฯ
             ซึ่งในสวนเงื่อนไข สามารถใช ตัวบอกกระทํา(Operator) ตางๆ ไดแก

                    ตัวบอกกระทําเปรียบเทียบ = <> <= >= BETWEEN IN NOT LIKE
                    ตัวบอกกระทําตรรกะ เชน AND OR (ใชเชื่อม 2 เงื่อนไข)
                    และตัวอักษรพิเศษที่ใชในเงื่อนไขสําหรับขอมูลตัวอักษร
                             ไดแก % แทนตัวอักษรใดๆ >= 1 ตัวอักษร
                                    _ แทนตัวอักษรใดๆ 1 ตัวอักษร
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               285
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008

  ตัวอยาง
  กรณี Stirng ขอมูลตองอยูใน ’ ’
  SELECT * FROM stu WHERE thain = ’สมชาย’ ;
               
  //แสดงแถวที่ขอมูลใน คอลัมน thain เทากับ ’ สมชาย’

  SELECT * FROM stu WHERE thain LIKE ’สม%’ ;
                 
  //แสดงแถวที่ขอมูลใน คอลัมน thain ขึ้นตนดวย ’สม’ (สวนที่เหลือเปนตัวอักษรใดก็ได และมีกี่
  ตัวอักษรก็ได)

  SELECT * FROM stu WHERE thais LIKE ’%ใจ%’ ;
               
  //แสดงแถวที่ขอมมูลใน คอลัมน thais มี ’ ใจ’ เปนสวนหนึ่ง (ขางหนาและขางหลัง ’ใจ’ เปน
  ตัวอักษรใดก็ได)

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               286
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008

  ตัวอยาง
  SELECT * FROM stu WHERE thain LIKE 'สม%' AND thais LIKE '%วง%';
                 ่
  // แสดงแถวทีขอมมูลใน คอลัมน thain ขึ้นตนดวย ’ สม’ และขอมูลในคอลัมน thais มี
     ’วง’ เปนสวนหนึ่ง

  SELECT * FROM stu WHERE thain LIKE ’_ราวุฒิ’ ;
                
  // แสดงแถวที่ขอมูลใน คอลัมน thain ขึ้นตนดวยตัวอักษรใดก็ได และตามหลังดวย
    ’ราวุฒิ’




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               287
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


    กรณีวันที่ ใชรูปแบบ YYYYMMDD แตใน phpMyAdmin จะแสดง YYYY-MM-DD
    SELECT * FROM assembly WHERE date = 20070206 ;
    // จะแสดง



    SELECT * FROM assembly WHERE date IN (20070206 ,20070207);

    กรณีเวลา ใชรูปแบบ HH:MM:SS และตองอยูภายใน ' '
    SELECT * FROM assembly WHERE time > '15:00:00';
    SELECT * FROM assembly WHERE time BETWEEN '13:00:00' AND '15:00:00';

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               288
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


ตัวอยางอื่นๆ

SELECT name, salary FROM Employee WHERE salary >= 7500 ;

SELECT name, salary FROM Employee WHERE salary BETWEEN 10000 AND 20000 ;

SELECT name, salary FROM Employee WHERE salary IN (10000,20000,30000) ;

SELECT * FROM stu where thain IN ('สมศักดิ์', 'สมชาย', 'สมศรี');

SELECT * FROM stu where thain NOT IN ('สมศักดิ์', 'สมศรี');



ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               289
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


    การแสดงขอมูลในตารางขอมูลแบบเรียงลําดับ (ORDER BY)

    รูปแบบ SELECT รายชื่อคอลัมน FROM ชื่อตารางขอมูล
                    ORDER BY รายชื่อคอลัมน [DESC] ;
    ตัวอยาง
             SELECT * FROM Employee ORDER BY name ’;
             SELECT * FROM Employee ORDER BY name, salary ;

            ปกติเปนการเรียงจากนอยไปมาก (Ascending) แตถาตองการใหเรียงจาก
    มากไปนอย ใหระบุ DESC (Descendig)

    เชน            SELECT * FROM Employee ORDER BY salary DESC;
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               290
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


    หมายเหตุ สวนเพิ่มเติมตางๆ สามารถใชรวมกันได เชน
              SELECT name, salary FROM Employee
              WHERE salary BETWEEN 7500 AND 10000
              ORDER BY salary ;




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               291
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


 การแสดงขอมูลในตารางขอมูลโดยการจัดกลุม (GROUP BY)
 รูปแบบ SELECT รายชื่อคอลัมน FROM ชื่อตารางขอมูล GROUP BY รายชื่อคอลัมน;

 ตัวอยาง SELECT * FROM assembly;
 จะไดผลลัพธ
                                      
 10,817 แถว สังเกตดูคอลัมน date จะมีขอมูลที่ซ้ํากันอยู




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               292
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


            สมมุติ ถาตองการทราบวา มีวันที่ที่แตกตางกัน(ไมซ้ํากัน)อยูกี่วัน ก็สามารถทําไดโดย
 จัดกลุมตามวันที่ (Grouping)
                                 ี
            ซึ่งจะมีการรวมแถวที่มขอมูลในคอลัมนวันที่เทากัน เขาเปนกลุมเดียวกัน และเมื่อแสดงก็
 จะแสดงเพียงแถวแรกเพียงแถวเดียว(เปนตัวแทนกลุม)
 ดังนั้นถาสั่ง SELECT * FROM assembly GROUP BY date ORDER BY date;
 จะไดผลลัพธ                                      45 แถวที่ไมซํ้า ( และมีการเรียงลําดับ)




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               293
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


    การแสดงขอมูลในตารางขอมูลโดยจัดกลุม (GROUP BY) อยางมีเงื่อนไข (HAVING)

              การแสดงขอมูลแบบจัดกลุมสามารถกําหนดเงื่อนไขได (จัดกลุมกอนแลวจึงกําหนด
                           ่
    เงื่อนไข) แตเงื่อนไขทีใชกับการจัดกลุมตองเปน เงื่อนไขของ HAVING เทานั้น (หามใช
    WHERE กับ GROUP BY )
    รูปแบบ SELECT รายชื่อคอลัมน FROM ชื่อตารางขอมูล GROUP BY รายชื่อคอลัมน
                        HAVING having_clause ;
              หมายเหตุ having_clause คือ เงื่อนไข เหมือนกับ where clause
    ตัวอยาง SELECT * FROM Assembly
                         GROUP BY date
                         HAVING date BETWEEN 20070201 AND 20070228
                         ORDER BY date;
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               294
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008

  ฟงกชัน Group Aggregate (Group Aggregate Function)
            ใน MySQL ไดจัดเตรียมฟงกชัน ไวเปนจํานวนมาก และฟงกชันกลุมที่นิยม
  ใชรวมกับคําสั่ง SELECT ไดแก ฟงกชันที่ทําการคํานวณกับกลุมแถวขอมูล (Group aggregate
  function) ซึ่งประกอบดวย
            COUNT( ) นับจํานวนแถวในกลุม
            MIN( ) หาขอมูลต่ําสุดของขอมูลในคอลัมนที่ระบุ จากกลุมแถวขอมูล
            MAX( ) หาขอมูลสูงสุดของขอมูลในคอลัมนที่ระบุ จากกลุมแถวขอมูล
            SUM( ) หาผลรวมของขอมูลในคอลัมนที่ระบุ จากกลุมแถวขอมูล
            AVG( ) หาคาเฉลี่ยของขอมูลในคอลัมนที่ระบุ จากกลุมแถวขอมูล
            STD( ) หาคาเบี่ยงเบนมาตรฐานของขอมูลในคอลัมนที่ระบุ จากกลุมแถวขอมูล
                  โดยที่รูปแบบการใชคือ ชื่อฟงกชัน(ชื่อคอลัมน)

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               295
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008

 ตัวอยาง Group aggregate function

 SELECT COUNT(RUNNO) FROM ASEEMBLY;
                                                                     
 // นับคอลัมน runno ในทุกแถว ก็คือจะไดแถวทั้งหมดในตาราง ดังนั้นไมวานับคอลัมนใด
    ก็จะไดแถวเทากัน อาจใช
 SELECT COUNT(*) FROM assembly; // * หมายถึงทุกคอลัมน

 SELECT COUNT(*) FROM assembly WHERE date = 20070206;
 // นับจํานวนแถวที่ตรงกับเงื่อนไข




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               296
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008

 ตัวอยาง Group aggregate function
 SELECT SUM(salary) FROM employee WHERE startdate > 20050101;
 SELECT AVG(age) FROM employee WHERE salary > 20000;
 SELECT MAX(salary) FROM employee;
 SELECT MIN(age) FROM employee;

 LIMIT
                 คําสั่ง SELECT สามารถจํากัดจํานวนแถวที่ตองการแสดง โดยใช LIMIT ในรูปแบบ
                 LIMIT ตั้งแตแถวที่ , จํานวนแถว

 ตัวอยาง SELECT * from ASSEMBLY LIMIT 0, 20;
                 // เริ่มแสดงตั้งแตแถวแรก เปนจํานวน 20 แถว
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               297
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008

    DESCRIB      แสดงโครงสรางตารางขอมูล
          รูปแบบ DESCRIBE ชื่อตาราง;


    SHOW COLUMNS แสดงรายละเอียดคอลัมนในตารางขอมูล
          รูปแบบ SHOW COLUMNS FROM ชื่อตาราง;




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               298
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008

    ALTER TABLE จัดการโครงสรางของตาราง
    รูปแบบ ALTER TABLE ชื่อตาราง ADD ชื่อคอลัมนใหม ชนิดขอมูล;
           เพิ่มคอลัมนใหมในตาราง

                   ALTER TABLE ชื่อตาราง CHANGE ชื่อคอลัมนเดิม ชื่อคอลัมนใหม ชนิดขอมูล;
                   เปลี่ยนชื่อคอลัมนในตาราง

                   ALTER TABLE ชื่อตาราง DROP ชื่อคอลัมนเดิม;
                   ลบคอลัมนในตาราง ซึ่งขอมูลในคอลัมนนั้นจะถูกลบและไมสามารถเรียกคืนได




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               299
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008

 UPDATE       แกไขขอมูลในคอลัมน
 รูปแบบ UPDATE ชื่อตาราง SET ชื่อคอลัมน = ขอมูล WHERE where_clause ;

                ถาไมระบุ WHERE จะแกไขคอลัมนในทุกแถว

 ตัวอยาง UPDATE stu SET statuss = ’3’ , thain = ’ ’ ;
          // กําหนดคาในคอลัมน statuss และ thain ของทุกแถวใหเปน ใหเปน ’3’ และ ’ ’
           UPDATE stu SET statuss = ’3’ where statuss = ’2’;
           // กําหนดคาในคอลัมน statuss จาก ’2’ เปน ’3’;
           UPDATE employee SET salary = salary + (salary * 10/100);
           // เพิ่มคาในคอลัมน salary ของทุกแถว ขึ้น 10%


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               300
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


    DELETE       ลบแถวในตารางขอมูล
          รูปแบบ DELETE FROM ชื่อตาราง WHERE where_clause;

                    ถาไมระบุ WHERE จะลบทุกแถวในตารางขอมูล
                    และการลบแถว จะไมสามารถเรียกคืนได

    ตัวอยาง DELETE FROM stu;
             //ลบขอมูลทุกแถวในตาราง stu

                    DELETE FROM assembly where date < 20070201 ;
                                                       ี
                    // ลบขอมูลในตาราง stu เฉพาะแถวที่มคา date กอนวันที่ 1 เดือน กุมภาพันธ 2007

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               301
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
   บทที่ 8
PHP กับ MySQL




                302
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


            PHP สมารถติดตอกับฐานขอมูลทุกประเภทที่รองรับมาตรฐานการเชื่อมตอแบบ
    ODBC (Open Database Connectivity) แตสําหรับฐานขอมูล MySQL PHP สามารถติดตอได
    โดยตรง (ไมตองผาน ODBC)

            PHP ไดจัดเตรียมฟงกชันสําหรับการเชื่อมตอและเขาถึงขอมูลในฐานขอมูล MySQL
    ไวโดยเฉพาะ ดังนั้นจึงทําให PHP สามารถทํางานกับฐานขอมูล MySQL ไดอยางงายดายและ
    รวดเร็ว




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               303
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


 ขั้นตอนของการเขียคําสั่ง PHP เพื่อติดตอกับฐานขอมูล MySQL
      • เชื่อมตอกับ MySQL Server (DBMS)
      • เปดฐานขอมูลที่ตองการทํางานดวย (อาจเปดไดมากกวา 1 ฐานขอมูล พรอมกัน)
      • ใชฟงกชัน PHP เพื่อสงผานคําสั่ง SQL ไปจัดการกับขอมูลฐานขอมูล
      • ปดฐานขอมูล
      • ปดการเชื่อมตอกับ MySQL Server (DBMS)




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               304
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


  ฟงกชันทํางานกับฐานขอมูล MySQL

  nysql_connect( ) เชื่อมตอกับ MySQL Server
     รูปแบบ int mysql_connect(string hostname, string username, string password) ;
           hostname คือ ชื่อเครื่อง Database Server
                      username คือ ชื่อบัญชีผูใชฐานขอมูล
                      password คือ รหัสผาน
           ถาเชื่อตอสําเร็จ จะสงกลับ (return) หมายเลขการเชื่อมตอ(resource_id) ที่เปน
   เลขจํานวนเต็ม != 0
          ถาเชื่อตอไมสําเร็จ จะสงกลับคา 0


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               305
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


  ตัวอยาง
                  <?
                       $conn1 = mysql_connect("localhost", "root", "mysql");
                       // เชื่อมตอ MySQL โดยใช user ชื่อ root พรอมระบุ password
                       $conn2 = mysql_connect("localhost", "mysql", "");
                       // เชื่อมตอ MySQL โดยใช user ชื่อ mysql ซึ่งไมมี password
                       echo $conn1 , "<BR>" , $conn2 ;
                  ?>




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               306
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


  ควรมีการตรวจสอบวาเชื่อมตอสําเร็จหรือไม
  ตัวอยาง <? $conn = mysql_connect("localhost", "root", "");
              if($conn)
                   echo "เชื่อมตอ MySQL สําเร็จ";
              else
                   echo "ไมสามารถเชื่อมตอ MySQL ได";                                                     ?>
  จากตัวอยางไมระบุ รหัสผาน จะแสดงขอผิดพลาด



         
  ถาไมตองการใหแสดงขอผิดพลาดจากการเรียกใชฟงกชัน ใหใส @ หนาชื่อฟงกชัน
  $conn = @mysql_connect("localhost", "root", "");
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               307
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


             หากเชื่อมตอไมได ก็ไมควรทําคําสั่งที่เหลือตอ ซึ่งสามารถใชฟงกชัน die( ) เพื่อหยุดการ
                                        
  ทําคําสั่งที่เหลือตอ และสามารถระบุขอความที่จะให die( ) แสดงกอนหยุดการทํางานได
  ตัวอยาง
         <?
             $conn = @mysql_connect("localhost", "root", "") or die("ไมสามารถเชื่อมตอ MySQL");
         ?>




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               308
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


  nysql_close( ) ยุติการเชื่อมตอกับ MySQL Server
           รูปแบบ int mysql_close(int resource_id) ;

                                 resource_id คือ หมายเลขการเชื่อมตอ (ที่ไดจาก mysql_connect( ) )
  ตัวอยาง

                  <? $conn1 = @mysql_connect("localhost", "root", "mysql");
                     …
                     mysql_close($conn1);
                  ?>


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               309
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


                                           
  nysql_select_db ( ) การเลือกฐานขอมูลที่ตองการทํางานดวย
           รูปแบบ int mysql_select_db(string dbname [, int resource_id]) ;

                                 dbname คือชื่อฐานขอมูล
                                 resource_id คือหมายเลขการเชื่อมตอ ถาเปดหลายๆการเชื่อมตอ
                                                                      ่
                                 พรอมกันตองระบุวาเปนฐานขอมูลทีอยูในการเชื่อมตอไหน
                                 แตถาเปดการเชื่อมตอเดียวไมจําเปนตองระบุ
  ตัวอยาง
                 <? $conn1 = mysql_connect("localhost", "root", "mysql");
                    $db = "student";
                    mysql_select_db($db); // ไมระบุหมายเลขการเชื่อมตอ
                    mysql_close($conn1);
                 ?>

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               310
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008

                  ควรมีการตรวจสอบวาสามารถเชื่อมตอฐานขอมูลไดหรือไม กอนทําคําสั่งอื่นตอไป
  ตัวอยาง
                  <? $conn1 = mysql_connect("localhost", "root", "mysql");
                     $db = "emplyee";
                     mysql_select_db($db) or die("ไมสามารถติดตอฐานขอมูล ". $db ."ได");
                     mysql_close($conn1);
                  ?>




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               311
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


  nysql_query ( ) สงคําสั่ง SQL ไปกระทํากับขอมูลในฐานขอมูลที่เลือก
           รูปแบบ mysql_query(string sql_string) ;
                                 sql_stirng คือ คําสั่ง SQL

                  ในกรณีที่คําสั่ง SQL เปนคําสั่ง
                   SELECT ถาสําเร็จ จะสงกลับ result set (กลุมของแถว) ถาลมเหลวจะสงกลับคา false
                   INSERT, UPDATE, DELETE ถาสําเร็จจะสงกลับคา true ถาลมเหลวจะสงกลับคา false




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               312
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


           ฟงกชัน mysql_query( ) ตองใชรวมกับ(ตอจาก) mysql_select_db ( ) เพื่อจะไดรูวา
  กระทํากับขอมูลในฐานขอมูลไหน
  ตัวอยาง
           <? $conn1 = mysql_connect("localhost", "root", "mysql");
              $db = "student";
              $sqlstr = "select * from assembly where date < 20070201";
              mysql_select_db($db,$conn1) or die("ไมสามารถติดตอฐานขอมูล ". $db);
              $result = mysql_query($sqlstr);
              mysql_close($conn1);
           ?>




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               313
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


           เราไมจําเปนตองใชฟงกชัน mysql_select_db( ) เพื่อเลือกฐานขอมูลก็ได
  แตตองระบุชื่อฐานขอมูล พรอมกับชื่อตารางในรูปแบบ ชื่อฐานขอมูล.ชื่อตาราง
  ตัวอยาง
           <? $conn1 = mysql_connect("localhost", "root", "mysql");
                $sqlstr = "select * from Student.assembly where date < 20070201";
                $result = mysql_query($sqlstr);
                mysql_close($conn1);
           ?>
  หมายเหตุ การเก็บคําสั่ง SQL ไวในตัวแปร string เพื่อความยืดหยุน ซึ่งในบางกรณี
                               ่
           อาจนําคาในตัวแปรอืน มาใชเปนสวนหนึ่งของคําสั่ง SQL
           แตในกรณีตัวอยางอาจสงคําสั่ง SQL ใหฟงกชันโดยตรงเชน
       $result = mysql_query("select * from Student.assembly where date < 20070201");
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               314
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


  nysql_db_query ( ) สงคําสั่ง SQL ไปกระทํากับขอมูลในฐานขอมูลที่ระบุ
          รูปแบบ mysql_db_query(string dbname, string sql_string) ;
                      dbname คือ ชื่อฐานขอมูล
                      sql_stirng คือ คําสั่ง SQL
           ฟงกชันนี้ตอง ไมตองใช mysql_select_db ( ) กอน เพราะสามารถระบุชื่อฐานขอมูล
  พรอมกับคําสั่ง SQL ได
  ตัวอยาง <? $conn1 = mysql_connect("localhost", "root", "mysql");
              $db = "student";
              $sqlstr = "select * from assembly where date < 20070201";
              $result = mysql_db_query($db, $sqlstr);
              mysql_close($conn1);
           ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               315
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


  nysql_num_fields( ) และ mysql_num_rows( )
           อานคาจํานวนคอลัมน และแถวของ result set ที่ไดจาก คําสั่ง SELECT
  ( mysql_query( ) )
           รูปแบบ mysql_num_fields(result_set) ;
                      mysql_num_rows(result_set) ;

                                     result_set คือ กลุมของของแถวที่ไดจากการใช SELECT




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               316
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


  ตัวอยาง
                  <? $conn1 = mysql_connect("localhost", "root", "mysql");
                     $db = "student";
                     $sqlstr = "select * from assembly where date < 20070201";
                     $result = mysql_db_query($db, $sqlstr);
                     $rows= mysql_num_rows($result);
                     $cols = mysql_num_fields($result);
                     echo $rows, "<BR>", $cols;
                     mysql_close($conn1);
                  ?>


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               317
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


  nysql_create_db( ) และ mysql_drop_db( )
           สรางและลบฐานขอมูล

                  รูปแบบ mysql_create_db(string dbname [, int resource_id]) ;
                         mysql_drop_db(string dbname [, int resource_id]) ;

                                 dbname คือ ชื่อฐานขอมูล
                                 resource_id คือ คือหมายเลขการเชื่อมตอ




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               318
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


  ตัวอยาง
                <? $conn1 = mysql_connect("localhost", "root", "mysql");
                   $db = "student";
                   $sqlstr = "select * from assembly where date < 20070201";
                   $result = mysql_db_query($db, $sqlstr);
                   mysql_close($conn1);
               ?>

  หรืออาจสงคําสั่ง SQL โดยตรง โดยใช mysql_query( ) เชน
          mysql_query("CREATE DATABASE MYDB");
          mysql_query("DROP DATABASE MYDB");


ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               319
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


  nysql_fetch_field( ) อานรายละเอียดของคอลัมน(field) จาก result set

                  รูปแบบ object mysql_fetch_field( int result_set [, int field_offset]) ;

                                                           ่
                             result_set คือ กลุมของแถวทีไดจาก SELECT
                             field_offset คือ ลําดับที่ของคอลัมน (เริ่มที่ 0)
                  จะสงกลับ(Return) ขอมูลชนิด object ซึ่งมีขอมูลภายใน เชน
                  table (ชื่อตาราง), name(ชื่อคอลัมน) , type (ชนิดคอลัมน)




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               320
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


  ตัวอยาง
  <?                   $conn1 = mysql_connect("localhost", "root", "mysql");
                       $db = "student";
                       $sqlstr = "select * from assembly";
                       $result = mysql_db_query($db, $sqlstr);
                       $amt = mysql_num_fields($result); // หาจํานวนคอลัมน
                       $data = mysql_fetch_field($result,0); // อานรายละเอียดคอลัมนแรก
                       echo $data->table . " " . $data->name . " " . $data->type . "<BR>";
                       $data = mysql_fetch_field($result,2); // อานรายละเอียดคอลัมนที่สาม
                       echo $data->table . " " . $data->name . " " . $data->type . "<BR>";
                       $data = mysql_fetch_field($result,$amt-1); // อานรายละเอียดคอลัมสุดทาย
                       echo $data->table . " " . $data->name . " " . $data->type . "<BR>";
                       mysql_close($conn1);
   ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               321
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


  nysql_fetch_row( ) อานขอมูลแถวปจจุบันใน result set ไปไวในอาเรย

                  รูปแบบ array mysql_fetch_row ( int result_set) ;

                                                       ่
                           result_set คือ กลุมของแถวทีไดจาก SELECT
                  จะสงกลับขอมูลชนิดอาเรย โดยที่สมาชิกแตละตัวในอาเรย คือ ขอมูลในแตละคอลัมน

  ตัวอยาง




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               322
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008

   <? $conn1 = mysql_connect("localhost", "root", "mysql");
       $db = "student";
       $sqlstr = "select * from stu limit 0,10"; // จะอานขอมูลมา 10 แถว
       $result = mysql_db_query($db, $sqlstr);
       $data = mysql_fetch_row($result);
   // อานรายละเอียดแถวแรกไปไวในอาเรย แลวเลื่อนตัวชี้ไปยังแถวถัดไป
        echo $data[0] + " " . $data[1] + " " . $data[2] . " " . $data[3]. "<BR>" ;
        $data = mysql_fetch_row($result);
   // อานรายละเอียดแถวปจจุบันไปไวในอาเรย แลวเลื่อนตัวชี้ไปยังแถวถัดไป
        echo $data[0] + " " . $data[1] + " " . $data[2] . " " . $data[3]. "<BR>" ;
        $data = mysql_fetch_row($result);
   // อานรายละเอียดแถวปจจุบันไปไวในอาเรย แลวเลื่อนตัวชี้ไปยังแถวถัดไป
        echo $data[0] + " " . $data[1] + " " . $data[2] . " " . $data[3]. "<BR>" ;
        mysql_close($conn1);                                                                                       ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               323
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008

การแสดงขอมูลทั้งหมดใน result set โดยใช mysql_refresh_row นิยมใช loop มาชวยในการแสดงผล
ตัวอยาง
   <? $conn1 = mysql_connect("localhost", "root", "mysql");
       $db = "student";
       $sqlstr = "SELECT * FROM stu WHERE thain like 'สม%'";
       $result = mysql_db_query($db, "SET NAMES tis620");
       $result = mysql_db_query($db, $sqlstr);
       while($data = mysql_fetch_row($result) )
           echo $data[0] . " " . $data[1] . " " . $data[2] . " " . $data[3] . "<BR>";
        mysql_close($conn1);
    ?>
กรณีที่ไมสามารถแสดงภาษาไทยได (แสดงเปน ?????) หรือ ไมสามารถ SELECT ขอมูลทีเ่ ปน
ภาษาไทยได ใหสงคําสั่ง SQL SET NAMES tis620 ไปให MySQL เพื่อกําหนดรหัสภาษาไทยที่ใช
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               324
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


     nysql_fetch_array( ) จะอานขอมูลแถวปจจุบันใน result_set ไปไวในอาเรย

                    รูปแบบ array mysql_fetch_array( int result_set) ;

                                                ่
                    result_set คือ กลุมของแถวทีไดจาก SELECT

              mysql_ftetch_array( ) ตางจาก mysql_fetch_row( ) ตรงที่ อาเรยที่ไดจาก
     mysql_ftecth_row( ) ตองระบุดัชนี(index) เปนเลขจํานวนเต็มเทานั้น
              สวนดัชนีของอาเรยที่ไดจาก mysql_ftetch_array( ) อาจระบุเปนเลขจํานวนเต็มหรือ
     ชื่อคอลัมนก็ได



ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               325
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


  ตัวอยาง
  <?
   $conn1 = mysql_connect("localhost", "root", "mysql");
   $db = "student";
   $sqlstr = "SELECT * FROM stu WHERE thain like 'สม%'";
  $result = mysql_db_query($db, "SET NAMES tis620");
  $result = mysql_db_query($db, $sqlstr);
   while($data = mysql_fetch_array($result) )
             echo $data["runno"] . " " . $data["statuss"] . " " . $data["thain"] . " " .
                  $data["thais"] . "<BR>";
   mysql_close($conn1);
   ?>

ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               326
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


  nysql_affected_rows( ) ใหคาจํานวนแถวที่ถูกกระทบโดยคําสั่ง SQL (mysql_db_query( )
           รูปแบบ array mysql_affected_rows( int resource_id) ;

                   resource_id คือ หมายเลขการเชื่อมตอ
  ตัวอยาง
    <?                $conn1 = mysql_connect("localhost", "root", "mysql");
                      $db = "student";
                      $sqlstr = "SELECT * FROM stu WHERE thain like 'สม%'";
                      $result = mysql_db_query($db, "SET NAMES tis620");
                      $result = mysql_db_query($db, $sqlstr);
                      $rows = mysql_affected_rows($conn1);
                      echo $rows . " were selected";
                      mysql_close($conn1);                                                                 ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               327
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008


  การทํางานกับแถวขอมูล
           การจัดการพื้นฐานกับแถวขอมูลในตาราง (นอกเหนือจาก SELECT ) สามารถสงคําสั่ง
  SQL มาตรฐาน ผานฟงกชัน sql_query( ) ได โดย
  การเพิ่มแถวใหม ใชคําสั่ง INSERT
      INSERT INTO ชื่อตาราง ( รายชื่อคอลัมน ) VALUES (รายการขอมูลที่จะบันทึก);

  การแกไขขอมูลในคอลัมน ใชคําสั่ง UPDATE
      UPDATE ชื่อตาราง SET ชื่อคอลัมน = ขอมูล WHERE where_clause

  การลบแถว             ใชคําสั่ง DELETE
      DELETE FROM ชื่อตาราง WHERE where_clause;

  ตัวอยาง
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               328
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008

 <? $conn1 = mysql_connect("localhost", "root", "mysql");
 $db = "student";
 $result = mysql_db_query($db, "SET NAMES tis620");
 $result = mysql_db_query($db, "INSERT INTO stu(runno, statuss, thain, thais)
                                               VALUES('5112345','1','สมชาย','เกิดดี')");
 $rows = mysql_affected_rows($conn1);
 echo "Insert ". $rows . " rows" . "<BR>";
 $result = mysql_db_query($db, "UPDATE stu SET statuss = '3' WHERE statuss = '2' ");
 $rows = mysql_affected_rows($conn1);
 echo "Update ". $rows . " rows" . "<BR>";
 $result = mysql_db_query($db, "DELETE FROM stu WHERE runno = '5112345' ");
 $rows = mysql_affected_rows($conn1);
 echo "Delete ". $rows . " rows" . "<BR>";
 mysql_close($conn1);                                                               ?>
ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               329
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด
 PHP กับ MySQL
                                                                                                       STUDENT DEVELOPMENT 2008

 แบบฝกหัด
           จงออกแบบและสรางฐานขอมูล ชื่อ log ซึ่งประกอบดวยตารางขอมูลชื่อ detail
 พรอมทั้งเขียน PHP script เพื่อทําการบันทึกขอมูล browser ที่เชื่อมตอเขามา ลงในตาราง detail
           โดยสิ่งที่เก็บประกอบดวย
                      IP Address ของ browser
                      ชนิดของ browser
                      วันที่และเวลา ที่เชื่อมตอเขามา




ลิขสิทธิ์ของมหาวิทยาลัยพายัพ                                                                                               330
              ํ                             
หามผูใดทําซ้า จําหนวยแจกจาย หรือเผยแพรดวยประการใดๆ หาไมแลวจะถูกดําเนินคดีตามกฎหมายจนถึงที่สุด

				
DOCUMENT INFO
Shared By:
Tags:
Stats:
views:830
posted:7/22/2010
language:Thai
pages:330
Description: php