ปรับปรุง : 2549-05-27 แนวการสอน 24-26 พฤษภาคม 2549 1. ยินดีต้อนรับสู่ หลักสูตร PHP + MySQL http://yn1.yonok.ac.th/phppage/training49.htm http://www.thaiall.com/php/training49.htm http://www.thaiall.com/article/teachpro.htm http://www.thainame.net/weblampang/html/php.txt 2. วิทยากร : บุรินทร์ รุจจนพันธุ์ ผู้ช่วย : พิมาย สมพบ เจน สงวน 3. เริ่มเปิดเว็บไซต์ http://127.0.0.1 - ถ้าเปิดไม่ได้ให้เรียกทีมงานได้ทันที เราเริ่มต้นจากเลขนี้ในหลักสูตรนี้ - ตรวจดูว่ามีโปรแกรม thaiabc webserver ใน program หรือไม่ - Download http://www.yonok.ac.th/pmy/thaiabc4b.zip - Download http://www.thaiabc.com 4. Web Server คืออะไร (Appservnetwork.com) 5. เปิด Notepad - Start, Run, พิมพ์ notepad แล้ว Enter - พิมพ์ 5 เท่านั้น - Save as c:\thaiabc\apache\apache2\htdocs\xx1.php - เปิด http://127.0.0.1/xx1.php 6. copy source จาก ex.101 ไปใส่ใน notepad - save as เป็น x101.php ในห้องเดิม - เปิด http://127.0.0.1/x101.php - เติม
7. ทดสอบ ex.102 - เปิด http://127.0.0.1/x102.php - " ต่างกับ ' - 8. ทดสอบ ex.103 - เพิ่มตัวแปร $b เช่น $b = 10; echo "$b"; echo '$b'; 9. ท้าทายด้วยการให้เขียน test1.php - มี $a = 10 และ $b = 5 - ให้พิมพ์ผลของ + - * / คนละบรรทัด 10. ความแตกต่างของ . , และ + - echo "1" + 2 . 3; - echo "1" . 2 + 3; - echo "1" . 2 + 3 + "
"; - echo "1" . 2 + 3 . "
"; - echo "1" + 2 + 3 . "
"; 33151515 6 11. ความสัมพันธ์ของ
 และ \n
เช่น 
  
  
  
"; echo 5 + 5,"
"; ?> 12. จาก ex.108 ชื่อ test4.php - พื้น เหลือง - a c e เป็น html - b d เป็น php - ผลลัพธ์ใน browser คือ a b c d e 13. จาก 109 และ 110 ใน test5.php - สร้างตัวแปร $a เก็บเลข 5 - สร้างตัวแปร $b เก็บอักษร "thai" - พิมพ์ welcome ด้วย html - พิมพ์ผลคูณด้วย 2 กับ $a - พิมพ์ wow ด้วย html - พิมพ์ตัวแปร $b 14. && หมายถึง and ส่วน || หมายถึง or 15. ให้ $a = "dog" และ $b = "male" ใน test6.php - ถ้า $a เป็น "dog" พิมพ์ 1 ไม่ใช่พิมพ์ 2 - ถ้า $b เป็น "male" พิมพ์ 3 ไม่ใช่พิมพ์ 4 - ถ้า $a เป็น "dog" และ $b เป็น "male" พิมพ์ 5 - ถ้า $a เป็น "dog" หรือ $b เป็น "male" พิมพ์ 6 แต่ไม่ใช่พิมพ์ 7 - ผลลัพธ์คืออะไร 1356 16. จากข้อ 15 เปลี่ยนค่า $b = "female" - ผลลัพธ์คืออะไร 146 17. ดู 301 - for พิมพ์ 1 ถึง 10 - for พิมพ์ 10 ถึง 1 - พิมพ์สูตรคูณแม่ 5 เช่น "; } ?> 18. ปลิ้น 12 ถึง 1 =1;$i--){ echo $i . " * 2 = " . 2 * $i . "
"; } ?> 19. ดู 303 - while พิมพ์ 1 ถึง 10 เป็น test10.php - while พิมพ์ 10 ถึง 1 เป็น test11.php 0) { echo $i; $i--; } ?> - while พิมพ์ 30 ถึง 21 เป็น test12.php 20. % หรือ mod - 5 % 3 = ? 21. copy 308 แล้วเปลี่ยน for เป็น while ใน test13.php เช่น for($i=1;$i<=12;$i++){ echo $i . " * 2 = " . 2 * $i . "
"; } $i = 1; while($i <= 12) { echo $i . " * 2 = " . 2 * $i . "
"; $i++; } ของ 308 echo ""; $i=1; while($i<=5) { if ($i % 2 == 0) { echo "$i
"; } else { echo "$i
"; } $i++; } 22. copy ex.401 มาเป็น test14.php แล้วแก้ไขตามนี้


23. ลบ input b ใน test14.php - ใน test13.php เปลี่ยน 5 เป็น $_GET["a"] 24. ให้เพิ่มตัวแปร input b ใน test14.php - ใน test13.php เปลี่ยน 1 เป็น $_GET["b"] 25. แก้ test13 และ test14 - test14 ส่ง 3 ตัวคือ x y z สำหรับสูตรคูณ - test13 รับมาพิมพ์สูตรคูณโดยใช้ 3 ตัวเช่น 1, 12, 5 26. สร้าง test15 แล้ว test16 โดยใช้ method=post - test15 มีฟอร์มส่ง a กับ b มีค่าเริ่มต้นเช่น 10 กับ 5 - test16 รับมาหาผล + - * / - $_GET เป็น $_POST ให้หมด "; echo $_POST["a"] - $_POST["b"],"
"; echo $_POST["a"] * $_POST["b"],"
"; echo $_POST["a"] / $_POST["b"],"
"; } if ($_POST["c"] == "cala") echo $_POST["a"] + $_POST["b"],"
"; if ($_POST["c"] == "calb") echo $_POST["a"] - $_POST["b"],"
"; ?> 27. copy ex.405 กับ ex.406 - เปลี่ยน 405 เป็น test17.php - เปลี่ยน 406 เป็น test18.php - เปลี่ยน ชื่อตัวแปร เป็น a1 ถึง a6 28. เข้าเว็บไซต์ php.net - หาคำว่า len แล้ว strlen 29. พิมพ์เลข 10 ตัวไม่ซ้ำกัน "; } ?> 30. เขียน xx1.php เรียก xx2.php มาใช้ - xx2.php กำหนด $a= 5; - xx1.php แสดงค่า $a - เรียก xx1.php ใน browser 31. เขียน xx3.php เรียก xx4.php มาใช้ - xx4.php กำหนด $a= 5; - xx3.php แสดงค่า 1 ถึง $a ด้วย for โดยดูจาก ex.301 - เรียก xx3.php ใน browser 32. เรียก xx3.php มาใช้ใน xx5.php - เติมสีพื้น และขยายขนาดตัวอักษร 33. เขียนฟังก์ชันชื่อ xx ใน test19.php - xx มีหน้าที่พิมพ์ 1 ถึง 5 คนละบรรทัด ด้วย for - เขียนคำว่า wow ก่อนเรียกฟังก์ชัน - เขียนคำว่า oho หลังเรียกฟังก์ชัน ---------------------------------------------------- http://www.thainame.net/weblampang/html/php.txt http://www.thaiall.com/php/training49.htm http://www.thaiall.com/php ---------------------------------------------------- 34. เปิดการทำงานของ MySQL Server - Start, Program, Thaiabc Web Server, 7. Open Service of MySQL 35. เข้า MySQL ผ่าน Command Line - ปกติ MySQL ที่ติดตั้งใหม่ มี user ชื่อ root และไม่มีรหัสผ่าน - เข้า DOS ด้วย Start, Run, Command - ก่อน ex.601 ให้พิมพ์ CD\ แล้วกด Enter - ทำตาม ex.601 เช่น cd c:\thaiabc\mysql\bin เช่น mysql -u root -p พบ mysql> 36. Free webhosting กลายเป็นฝัน - เช่น thcity.com thai.net se-ed.net เป็นต้น 37. hostname, datatabase, username, password - rows, records, ระเบียน - column, field, เขตข้อมูล 38. สร้างฐานข้อมูลด้วย create database oho; - show databases; - use oho; 39. ฝึกใช้คำสั่ง SQL - สร้างตารางตาม 603 - ใส่ข้อมูลตาม 604 - แสดงข้อมูลตาม 605 40. ซ้อม - กด CTRL - C - เข้า MySQL แล้วสร้างฐานข้อมูลชื่อ thai พร้อมเข้าใช้ thai - สร้างตารางชื่อ bkk มี 3 fields คือ bid, bname, bsala - มี bid เป็น int และ bname เป็น varchar(20) และ bsala เป็น double - ใส่ข้อมูล 4 ระเบียนที่ต่างกัน - แสดงข้อมูลจากตาราง create table w(w1 int, w2 int); create table bkk(bid int, bname varchar(20), bsala double); insert into bkk values (901,"boy",2000); insert into bkk values (902,"girl",1000); insert into bkk values (903,"tom",3000); select * from bkk; delete from bkk where bid = 101; - เปลี่ยนชื่อของ 901 เป็น joe และ 902 เป็น jane ตาม 609 - ขอดูเงินเดือนทุกคน รวมกันเป็นกี่บาท - อื่น ๆ อีกมากมายที่ http://127.0.0.1/mysql 41. ข้อความทราบเกี่ยวกับ MySQL - เมื่อมี MySQL ในเครื่องก็ใช้งาน Command Line ได้ทันที - ใช้เก็บข้อมูล เป็นหน้าที่หลัก ไม่มีความสามารถอื่น - ผู้มีสิทธิในมักเป็น Admin เท่านั้น 42. http://127.0.0.1/phpmyadmin - เตรียม user และ password ไว้ให้ใช้แล้ว - เลือกฐานข้อมูลชื่อ thai แล้ว click ตารางชื่อ bkk - Click คำว่า แทรก คือการเพิ่มระเบียนใน bkk 43. ซ้อม - เข้า phpmyadmin แล้วสร้างฐานข้อมูลชื่อ lamp พร้อมเข้าใช้ lamp - สร้างตารางชื่อ gov มี 3 fields คือ gid, gname, gsala - มี gid เป็น int และ gname เป็น varchar(20) และ gsala เป็น double - ใส่ข้อมูล 4 ระเบียนที่ต่างกัน - แสดงข้อมูลจากตาราง insert into gov values (901,"boy",2000); insert into gov values (902,"girl",1000); insert into gov values (903,"tom",3000); insert into gov values (904,"bob",4000); 44. ฝึกใช้ SQL 44.1 เข้า ค้นหา เลือกแสดงเฉพาะคนที่เงินเดือนมากกว่า หรือเท่ากับ 2000 เช่น select * from gov where gsala >= 2000; 44.2 ผลรวมเงินเดือนทุกคนเป็นเท่าใด โดย SQL ตาม ex.606 เช่น select sum(gsala) as aa from gov; 44.3 นำ 44.1 มาหาผลรวม เช่น select sum(gsala) as aa from gov where gsala >= 2000; 44.4 คำสั่งเดียว หาผลรวม นับระเบียน สูงสุด ต่ำสุด และค่าเฉลี่ยของเงินเดือน ใบ้ให้ว่าใช้ , ขั้นระหว่าง function 44.5 ส่งออก แฟ้ม gov ออกเป็น CSV สำหรับ Excel เป็นแฟ้ม นำไปเปิดใน excel แล้วไปทานข้าวได้ 46. ตรวจสอบบริการของ MySQL - Start, Run, Command - พิมพ์ netstat -a เพื่อดูว่า port 3306 เปิดหรือไม่ 47. เข้า phpMyAdmin แล้ว Click สิทธิ - ดูรายชื่อผู้ใช้ - สร้างผู้ใช้ชื่อ boy และ รหัสผ่านคือ girl 48. เมนูเรียก php script และ require ใน ex.701 49. ex.702 คือตัวเชื่อมต่อที่ใช้ในทุกโปรแกรม - แก้ชื่อเป็น c.php และใช้ user และ password ของท่าน - เก็บเข้า c:\thaiabc\apache\apache2\htdocs - เปิด http://127.0.0.1/c.php 50. สร้าง aa1.php ไป require c.php - มีพื้นเหลือง แล้วเปิด http://127.0.0.1/aa1.php 51. แสดงข้อมูล gid, $o->gname, $o->gsala,"
"; } mysql_close($connect); ?> 52. แก้ทั้ง c.php และ aa1.php ให้ทำงานกับ - ฐาน oscommerce - ตาราง orders - เขตข้อมูล orders_id customers_id customers_name - ตารางสลับสี 53. แก้ทั้ง c.php และ aa2.php ให้ทำงานกับ - ฐาน oscommerce ตาราง products - เขตข้อมูล products_model products_price products_image - http://127.0.0.1/oscommerce/images/ - ตัวอักษรในตารางสลับสี เป็น ดำ กับ เขียว "; while ($o = mysql_fetch_object($result)) { if ($c == 0) { echo ""; $c = 1; } else { echo ""; $c = 0; } echo $o->products_model; echo $o->products_price; echo "products_image.">"; echo ""; } echo ""; mysql_close($connect); ?> 54. แก้ aa2.php - ขยายตารางเป็น 90% - แยก cell ด้วย echo $o->products_price; echo $o->products_price . "
"; echo "" . $o->products_price . ""; 55. copy aa2.php เป็น aa3.php 56. สร้าง aaprice.php
list all เพิ่ม where products_price = ". $_POST["price"]); 57. เพิ่ม Select ของ model ใน aaprice.php
แล้วเพิ่ม where products_model = ' ". $_GET["model"]." ' "; 58. เลือกข้อมูลตามช่วงราคา - สร้าง aa5.php - เพิ่มใน aaprice.php - เช่น where products_price > 0 and products_price < 100 - เช่น where products_price > ". $_POST["pricea"] . " and products_price < ". $_POST["priceb"]; 59. ทบทวน - เปิดบริการ MySQL เบอร์ 7 - บริหาร MySQL ด้วย http://127.0.0.1/phpmyadmin/ - สร้างตารางในฐานข้อมูลชื่อ Test ด้วยการพิมพ์ SQL เมื่อเข้า Test แล้ว create table student(sid int , sname varchar(50),score double); - พิมพ์ใน excel แล้ว save as เป็น csv(Comma ใน c:\ ชื่อ book1 - เข้าตาราง student ไปล่างสุด แล้ว click คำว่า แทรกข้อมูลจากไฟล์ - เลือกแฟ้ม แล้วเปลี่ยน ; เป็น , ของ จบฟิลด์ด้วย - กดส่ง 60. ฟอร์ดตรวจคะแนน โดยรับชื่อ chkscore.php
ใน c:\thaiabc\apache\apache2\htdocs 61. เขียน getscore.php หรือ getinfo.php sid . "
"; echo $o->sname . "
"; echo $o->score; } mysql_close($connect); require("chkscore.php"); ?> 62. copy ex.701 ถึง ex.708 มาสร้างแฟ้มตามชื่อเดิม - ให้ทดสอบทุกโปรแกรม และใช้งานให้เป็น - เริ่ม http://127.0.0.1/s1.php ให้มี 101 aa ไปถึง 105 ee 63. แก้ไขให้ใช้งานได้กับตารางของเรา - ข้อมูลเดิม create table student(sid int , sname varchar(50),score double); - แก้ s1connect.php - แก้ s3select.php ให้แสดงข้อมูลจาก student - แก้ s4insert.php ให้เพิ่มข้อมูลใน student
รหัสนักเรียน
ชื่อนักเรียน
คะแนน
64. อธิบาย insert เกี่ยวกับ ตัวเลข และตัวอักษร insert into x values(5) $q = "insert into x values(". $_GET["xxx"] .")"; insert into y values('aaaa') $q = "insert into y values('". $_GET["xxx"] ."')"; insert into z values('a',6) $q = "insert into z values('" . $_GET["xxx"] . "',". $_GET["yyy"]) . ")"; insert into a values(6,'a') $q = "insert into z values(". $_GET["aaa"] .",'". $_GET["bbb"]) . "')"; insert into a values(6,'a') $q = "insert into z values("; $q = $q . $_GET["aaa"] .",'"; $q = $q . $_GET["bbb"]) . "')"; $q = "insert into z values( " . $_GET["aaa"] .", '" . $_GET["bbb"]) . "')"; 65. แก้ s6update.php ให้ทำงานกับ student
66. copy ex.801 ถึง ex.806 - อธิบายเรื่อง session กับ cookie - ฝึกแก้ไขให้ทำงานกับ student 67. ศึกษาตัวอย่างจาก http://www.thaiall.com/php Short 1 : Send mail by HTML format Short 2 : Write image in JPEG format by GD JPEG supporting Short 3 : Listing of thumb nail and click to enlarge Short 4 : Array database of course description Short 5 : Secure by word in image putting Short 6 : 2 connection method of PHP+MDB in Windows Short 7 : Open File From Internet Short 8 : ดูดบางส่วนของเว็บ โดยเลือกจาก keyword มาเท่าจำนวนบรรทัดที่ต้องการ Short 9 : ดูด Directory และเปลี่ยน Link ของ Google.com Short 10 : โปรแกรม upload แฟ้มข้อมูลเข้า server อย่างง่าย (up.php และ upmany.php) Short 11 : โปรแกรม 3 โปรแกรม แสดงการทำงานของ cookie Short 12 : โปรแกรม counter อย่างง่าย ด้วย session Short 13 : โปรแกรมจัดตารางสอบอย่างง่าย Short 14 : วาดกราฟอย่างง่าย จากข้อมูลผ่าน querystring หรือ get Short 15 : การเชื่อมต่อกับ MSSQL server Short 16 : Online User Counter (no mysql) Short 17 : Shell Command Short 18 : Bad Word Blockinging Short 19 : Redirection Header Short 20 : Encode and Decode Short 21 : Each _SESSION, _SERVER, _ENV Short 22 : MySQL Manage (insert, delete, update, select) Short 23 : แก้ปัญหาภาษาไทยเป็น ??? เมื่ออ่านข้อมูลจาก MySQL Short 24 : ตรวจ link ในเว็บเพจที่ต้องการ 68. ศึกษาตัวอย่างจาก http://www.thaiall.com/mysql - join หรือเชื่อมตาราง ใน 3.23 69. ศึกษาโปรแกรมใน http://127.0.0.1 - 1 โปรแกรมสำหรับทั้ง ชีวิต - mambo - moodle - postnuke - oscommerce - wordpress http://www.lph.go.th http://www.lampangcancer.com http://www.gotoknow.org 70. เปิดแฟ้ม c:\thaiabc\apache\apache2\htdocs\article\counter.php - เปลี่ยนสีพื้นเป็นสีแดง - เปิด php.exe_ มาเปลี่ยนค่าเริ่มต้น 71. เปลี่ยนสีพื้น และสีในตารางของ memmysql.php ใน 5.8 - ฝึกใช้ editplus - แก้ font เลือก document, permanent setting 72. แนวการเขียน php มี 2 แนว 1. ใช้ application ช่วย เช่น
2. ใช้ coding เช่น echo "
". $a ."
"; 73. ตัวอย่าง $a = $a + "bb"; $a .= "bb"; 74. ordering เก็บเป็น x.htm ใน c:\
    สารบัญ
  1. aaaaa
  2. aaaaa
75. เครื่องที่ใช้ win me ให้ restart แล้วอย่าพี่เปิด web server - เปิดแฟ้ม httpd.conf ใน c:\thaiabc\apache\apache2\conf - แก้ค่าของ documentroot เป็น "c:/" แทนของเดิมที่เป็น htdocs - สั่ง Start Apache ใหม่ - สร้างแฟ้ม index.html เก็บที่ drive c - ทดสอบเปิด http://127.0.0.1 76. copy source code มาใช้ thaiall.com/source - นำมาสร้าง webboard.php ไว้ที่ drive C - http://127.0.0.1/webboard.php - ทดสอบลบ และแก้ไข - http://www.thaiall.com/opinion/readonly.php 77. copy source code มาใช้ thaiall.com/source - นำมาสร้าง filemanager.php ไว้ที่ drive C - http://127.0.0.1/filemanager.php - ทดสอบลบ และแก้ไข - http://www.weblampang.com - ipconfig คือ http://192.168.1.86/filemanager.php 78. ทำ pollmysql.php - copy จาก thaiall.com/source - เปิดบริการ mysql - สร้างตารางชื่อ poll ในฐานข้อมูลชื่อ test โดยดูโครงสร้างในโปรแกรม cd c:\thaiabc\mysql\bin mysql -u root -p use test; create table poll (pid int primary key not null auto_increment, ans int); drop table poll; create table poll (ans int); - แก้ $host = "127.0.0.1:3306"; - แก้ user และ password ใน pollmysql.php code เมื่อวานอยู่ที่ http://www.thainame.net/weblampang/html/php.txt http://www.thaiall.com/php/training49.htm http://yn1.yonok.ac.th/phppage/training49.htm