ปรับปรุง : 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,"\n";
echo 5 + 5,"\n";
?>
echo 5,"
";
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 เช่น
for($i=1;$i<=12;$i++){
echo $i . " * 2 = " . 2 * $i . "
";
}
?>
18. ปลิ้น 12 ถึง 1
for($i=12;$i>=1;$i--){
echo $i . " * 2 = " . 2 * $i . "
";
}
?>
19. ดู 303
- while พิมพ์ 1 ถึง 10 เป็น test10.php
- while พิมพ์ 10 ถึง 1 เป็น test11.php
$i = 10;
while($i > 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 ให้หมด
if ($_POST["c"] == "cal1") {
echo $_POST["a"] + $_POST["b"],"
";
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 ตัวไม่ซ้ำกัน
srand(microtime()*1000000);
for ($i=1;$i<=10;$i++) {
echo rand(100,200) ."
";
}
?>
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. แสดงข้อมูล
require("c.php");
$result = mysql_db_query("lamp","select * from gov");
while ($o = mysql_fetch_object($result)) {
echo $o->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/
- ตัวอักษรในตารางสลับสี เป็น ดำ กับ เขียว
require("c.php");
$result = mysql_db_query($db,"select * from products");
$c = 0;
echo "";
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
$connect = mysql_connect("127.0.0.1:3306","admin","p");
$q = "select * from student where sid = " . $_GET["s"];
$result = mysql_db_query("test",$q);
while ($o = mysql_fetch_object($result)) {
echo $o->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
require("s1connect.php");
if (!isset($_GET['sid'])) exit;
$sql="insert into student values(
". $_GET['sid'] .",'" . $_GET['sname'] . "',
". $_GET['score'] . ")";
if(!$result=mysql_db_query($db,$sql))
echo "$sql : not found";
else echo "$sql : ok";
mysql_close($connect);
?>
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
require("s1connect.php");
if (!isset($_GET['sid'])) { exit; }
$sql="update student set ";
$sql.="sid=". $_GET['sid'] .", ";
$sql.="sname='". $_GET['sname'] ."', ";
$sql.="score=". $_GET['score'] ." ";
$sql.="where sid=". $_GET['sid'];
/*
update student set sid=11, sname='dddd', score=35
where sid=11
*/
if(!$result=mysql_db_query($db,$sql))
echo "$sql : not found";
else echo "$sql : ok";
mysql_close($connect);
?>
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 "";
73. ตัวอย่าง
$a = $a + "bb";
$a .= "bb";
74. ordering เก็บเป็น x.htm ใน c:\
สารบัญ
- aaaaa
- 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