(NB) Giáo trình PHP và MYSQL gồm có 5 bài, cung cấp cho người học các kiến thức: Tổng quan về PHP và MYSQL; Truy cập cơ sở dữ liệu MYSQL; Lập trình PHP căn bản; Lập trình ứng dụng WEB với PHP; Xây dựng một số Website mẫu. Mời các bạn cùng tham khảo.
Trang 1B NÔNG NGHI P VÀ PHÁT TRI N NÔNG THÔNGỘ Ệ Ể
TRƯỜNG CAO Đ NG C GI I NINH BÌNHẲ Ơ Ớ
GIÁO TRÌNH
MÔ ĐUN: PHP &MYSQLNGH : Ề L P TRÌNH MÁY TÍNHẬTRÌNH Đ : CAO Đ NG NGHỘ Ẳ Ề
Ban hành kèm theo Quy t đ nh s : /QĐ… ngày…….tháng….năm ế ị ố
c a Tr ủ ườ ng Cao đ ng ngh C gi i Ninh Bình ẳ ề ơ ớ
Trang 2Ninh Bình, năm 2016
Trang 3TUYÊN B B N QUY NỐ Ả Ề
Tài li u này thu c lo i sách giáo trình nên các ngu n thông tin có thệ ộ ạ ồ ể
được phép dùng nguyên b n ho c trích dùng cho các m c đích v đào t o vàả ặ ụ ề ạ tham kh o.ả
M i m c đích khác mang tính l ch l c ho c s d ng v i m c đích kinhọ ụ ệ ạ ặ ử ụ ớ ụ doanh thi u lành m nh s b nghiêm c m.ế ạ ẽ ị ấ
Trang 4người. PHP đã không còn là m t d án cá nhân c a Rasmus Lerdorf và đã trộ ự ủ ở thành m t công ngh web quan tr ng. Zeev Suraski và Andi Gutmans đã hoànộ ệ ọ thi n vi c phân tích cú pháp cho ngôn ng đ r i tháng 6 năm 1998, PHP3 đãệ ệ ữ ể ồ
ra đ i (phiên b n này có ph n m r ng là *.php3). Cho đ n t n th i đi m đó,ờ ả ầ ở ộ ế ậ ờ ể PHP ch a m t l n đư ộ ầ ược phát tri n chính th c, m t yêu c u vi t l i b đ c tể ứ ộ ầ ế ạ ộ ặ ả
được đ a ra, ngay sau đó PHP4 ra đ i (phiên b n này có ph n m r ng khôngư ờ ả ầ ở ộ
ph i là *.php4 mà là *.php). PHP4 nhanh h n so v i PHP3 r t nhi u. PHP bâyả ơ ớ ấ ề
gi đờ ược g i là PHP Hypertext PreProcesor.ọ
Đ cề ương bài gi ng này đả ược chúng tôi biên so n theo chạ ương trình th mẩ
đ nh c a Nhà trị ủ ường, g m 5 bài:ồ
Bài 1. T ng quan v PHP và MYSQLổ ề
Bài 2. Truy c p c s d li u MYSQLậ ơ ở ữ ệ
Bài 3. L p trình PHP căn b nậ ả
Bài 4. L p trình ng d ng WEB v i PHPậ ứ ụ ớ
Bài 5. Xây d ng m t s Website m uự ộ ố ẫ
Trong quá trình xây d ng không th tránh kh i nh ng thi u sót r t mong nh nự ể ỏ ữ ế ấ ậ
đượ ực s đóng ghóp, xây d ng t đ c gi ự ừ ộ ả
Trang 5M C L CỤ Ụ
MÔ ĐUNPHP & MY SQL
T o và qu n lý đạ ả ượ ơ ở ữ ệc c s d li u mySQL
K t n i đế ố ược đ n c s d li u mySQL quan ngôn ng PHPế ơ ở ữ ệ ữ
T o các ng d ng web chuyên nghi p b ng ngôn ng PHPạ ứ ụ ệ ằ ữ
Qu n tr đả ị ượ ơ ở ữ ệc c s d li u qua công c phpMyadminụ
Ki mể Tra*
1 Bài 1. T ng quan v PHP và MYSQLổ ề 10 2 8
2 Bài 2. Truy c p c s d li u MYSQLậ ơ ở ữ ệ 30 5 24 1
Trang 6BÀI 1. T NG QUAN V PHP VÀ MYSQLỔ Ề
A M C TIÊU C A BÀIỤ Ủ
H c xong bài này, h c viên có kh năng: ọ ọ ả
Trình bày được ki n th c c b n v client/server;ế ứ ơ ả ề
Cài đ t và s d ng đặ ử ụ ược ph n m m apache trong môi trầ ề ườ ngWindows, cài đ t h qu n tr CSDL MySQL;ặ ệ ả ị
T o đạ ược CSDL v i MySQL, các thao tác c b n v i c s d li uớ ơ ả ớ ơ ở ữ ệ trong phpMyadmin
c aủ nhi uề ngườ PHP đã không còn là m ti ộ dự án cá nhân c aủ Rasmus Lerdorf và đã trở thành m tộ công nghệ web quan tr ng.ọ Zeev Suraski và Andi Gutmans đã hoàn thi nệ vi cệ phân tích cú pháp cho ngôn ngữ để r iồ tháng 6 năm 1998, PHP3 đã ra đ iờ (phiên b nả này có ph nầ mở r ngộ là
Trang 7*.php3). Cho đ nế t nậ th iờ đi mể đó, PHP ch aư m tộ l nầ đượ phát tri nc ể chính
th c,ứ m tộ yêu c uầ vi tế l iạ bộ đ cặ tả đư cợ đ aư ra, ngay sau đó PHP4 ra đ iờ (phiên b nả này có ph nầ mở r ngộ không ph iả là *.php4 mà là *.php). PHP4 nhanh h nơ so v iớ PHP3 r tấ nhi u.ề PHP bây giờ đượ g ic ọ là PHP Hypertext PreProcesor
1.2. T i ạ sao ph i ả sử d ng ụ PHP
Như chúng ta đã bi t,ế có r tấ nhi uề trang web đư cợ xây d ngự b iở ngôn ngữ HTML (HyperText Markup Language). Đây chỉ là nh ngữ trang web tĩnh, nghĩa là chúng chỉ ch aứ đ ngự m tộ n iộ dung cụ thể v iớ nh ngữ dòng văn b nả
đ nơ thu n,ầ hình nhả ,và có thể đượ sự hỗ trợ b ic ở ngôn ngữ JavaScript,
ho cặ Java Apple. Nh ngữ trang web như v yậ ngườ ta thi ườ g ing ọ là client side. Tuy nhiên, Internet và Intranets đã đượ sử d ngc ụ cho các ngứ d ngụ c nầ
t iớ cơ sở dữ li u.ệ Các trang ngứ d ngụ như v yậ đượ g ic ọ là trang web đ ng,ộ
b iở vì n iộ dung c aủ chúng luôn thay đ iổ tùy thu cộ vào dữ li uệ và ngư iờ sử
d ng.ụ PHP là ngôn ngữ làm đượ nh ngc ữ đi uề như v y.ậ B ngằ cách ch yạ chư ngơ trình PHP trên máy chủ Web server, b nạ có thể t oạ ra các ngứ d ngụ
có sự tươ tác v ing ớ cơ sở dữ li uệ để t oạ ra nh ngữ trang web và đây đư cợ g iọ
Trang 8 V iớ các trang PHP: Khác v iớ các trang HTML, khi m tộ trang PHP đượ yêu c
Trang 9+ G iử trở l iạ n iộ dung cho browser (đây là trang HTML có thể hi nể thị đượ c
b iở trình duy tệ Internet Exp lorer ho cặ trình duy tệ nào đó). Tóm l i,ạ sự khác nhau gi aữ HTML và PHP là HTML không đượ th cc ự hi nệ trên máy chủ Web server còn các trang *.php vi tế b ngằ các đo nạ mã PHP đượ th cc ự hi n trênệ máy chủ Web server do đó nó linh đ ngộ và m mề d oẻ h n.ơ
1.3. Nh ng ữ đi m ể m nh ạ c a ủ PHP
PHP th cự hi nệ v iớ t cố độ r tấ nhanh và hi uệ quả .M tộ Server bình thư ngờ có thể đáp ngứ đượ hàng tri uc ệ truy c pậ t iớ trong m tộ ngày
PHP hỗ trợ k tế n iố t iớ r tấ nhi uề hệ CSDL khác nhau: PostgreSQL,mSQL,Oracle, dbm, filePro ,Hyperware, informix,InterBase, Sybase, Ngoài ra còn h trỗ ợ k t n i v iế ố ớ ODBC thông qua đó có th k t n iể ế ố
v iớ nhi uề ngôn ngữ khác mà ODBC hỗ tr ợ
PHP cung c pấ m tộ hệ th ngố thư vi nệ phong phú : Do PHP ngay từ đ uầ
đượ thi tc ế kế nh mằ m cụ đích xây d ngự và phát tri nể các ngứ d ngụ trên web nên PHP cung c pấ r tấ nhi uề hàm xây d ngự s nẵ giúp th cự hi nệ các công vi cệ r tấ dễ dàng : g i,ử nh nậ mail ,làm vi cệ v iớ các cookie, và nhi uề thứ khác n aữ
PHP là m tộ ngôn ngữ r tấ dễ dùng, dễ h cọ và đ nơ gi nả h nơ nhi uề so v iớ các ngôn ngữ khác như Perl, Java. N uế b nạ đã bi tế ngôn ngữ C thì m iọ vi cệ sẽ hoàn toàn thu nậ l i.ợ
PHP có thể sử d ngụ đượ trên nhi uc ề hệ đi uề hành, chúng ta có thể vi tế chúng trên Unix, Lunix và các phiên b nả c aủ Windows. Và có thể đem mã PHP này ch yạ trên các hệ đi uề hành khác mà không ph iả s aử đ iổ l iạ mã
Trang 10nhi u tr m làm vi c v i m t t ng trình di n th ng nh t, t ng này truy n tinề ạ ệ ớ ộ ầ ễ ố ấ ầ ề
v i t ng l u tr d li u t p trung.ớ ầ ư ữ ữ ệ ậ
T ng trình di n thông thầ ễ ường là client, và t ng l u tr d li u là server.ầ ư ữ ữ ệ
H u h t các ng d ng Internet nh là email, telnet, ftp th m chí là c Web làầ ế ứ ụ ư ậ ả các ngứ d ng hai t ng. Ph n l n các l p trình viên trình ng d ng vi t cácụ ầ ầ ớ ậ ứ ụ ế
ng d ng client/server có
ứ ụ xu th s d ng ki n trúc này.ế ử ụ ế
Trong ng d ng hai t ng truy n th ng, kh i lứ ụ ầ ề ố ố ượng công vi c x lý đệ ử ượ c
phía client trong khi server ch đ n gi n đóng vai trò nh là chỉ ơ ả ư ương trình ki mể soát lu ngồ vào ra gi a ng d ng và d li u. K t qu là không ch hi u năngữ ứ ụ ữ ệ ế ả ỉ ệ
c a ng d ng b gi m đi doủ ứ ụ ị ả tài nguyên h n ch c a PC, mà kh i lạ ế ủ ố ượng dữ
li u truy n đi trên m ng cũng tăng theo. Khiệ ề ạ toàn b ng d ng độ ứ ụ ược x lýử trên m t PC, ng d ng b t bu c ph i yêu c u nhi u d li uộ ứ ụ ắ ộ ả ầ ề ữ ệ trước khi đ a raư
b t k k t qu x lý nào cho ngấ ỳ ế ả ử ười dùng. Nhi u yêu c u d li u cũngề ầ ữ ệ làm gi m hi u năng c a m ng. M t v n đ thả ệ ủ ạ ộ ấ ề ường g p khác đ i v i ngặ ố ớ ứ
d ng hai t ng là v n đụ ầ ấ ề b o trì. Ch c n m t thay đ i nh đ i v i ng d ngả ỉ ầ ộ ổ ỏ ố ớ ứ ụ cũng c n ph i thay đ i l i toàn b ngầ ả ổ ạ ộ ứ d ng client và server.ụ
3. Cài đ t các công c c n thi tặ ụ ầ ế
3.1. Cài đ t XAMPP ặ
3.1.1. Lý thuy t liên quan ế
Ph n m m Xampp bao g m máy ch Apache và H qu n tr CSDL MySql.ầ ề ồ ủ ệ ả ị
Mã ngu n chồ ương trình WIP
Yêu c u h th ng: ầ ệ ố Máy tính ch y h đi u hành WIN XP ho c WIN ạ ệ ề ặ
SERSER, Ram >= 512 MB, CPU Pentium >= 1.3 GHz, dung lượng tr ng c a ố ủ
Trang 11 Nh p đôi chu t vào ph n m m Xampp trên máy tính đ b t đ uấ ộ ầ ề ể ắ ầ
B m nút Next trên giao di n bên d i đ ti p t cấ ệ ướ ể ế ụ
Ch n các ph n m m c n cài đ t (đ nguyên m c đ nh) và b m nút Nextọ ầ ề ầ ặ ể ặ ị ấ
Ch n đọ ường d n đ cài đ t (m c đ nh là C), tuy nhiên ta có th cài vào ẫ ể ặ ặ ị ổ ể ổ
đ a D ho c E đ khi n u h đi u hành b l i thì ng d ng v n không b m t.ỉ ặ ể ế ệ ề ị ỗ ứ ụ ẫ ị ấ
L a ch n h ng d n cài đ t các mã ngu n, ta b m nút Next đ ti p t cự ọ ướ ẫ ặ ồ ấ ể ế ụ
Giao di n xác nh n b t đ u cài đ t, b m nút Next đ ti p t c càiệ ậ ắ ầ ặ ấ ể ế ụ
B m nút Finish đ hoàn t t ch ng trình cài đ t:ấ ể ấ ươ ặ
Giao di n Control c a Xampp (đ ch y đệ ủ ể ạ ượ ức ng d ng dòng Apache vàụ MySQL b m nút Start đ kh i đ ng 2 chấ ể ở ộ ương trình này)
3.1.3. Sai h ng th ỏ ườ ng g p nguyên nhân và bi n pháp kh c ph c ặ ệ ắ ụ
đ t thêm các Plugin s giúp b sung thêm nhi u ch c năng khác choặ ẽ ổ ề ứ Notepad+. Đây còn là gi i pháp đ thay th hi u qu cho trình so n th oả ể ế ệ ả ạ ả Notepad c a Windows.ủ
Notepad++ đượ ả ề ạ ịc t i v t i đ a ch :ỉ http://notepadplusplus.org/downloads
3.2.2. Trình t th c hi n ự ự ệ
Nh p đôi chu t vào ph n m m NotePad++ trên máy tính đ b t đ uấ ộ ầ ề ể ắ ầ
B m nút Next trên giao di n bên d i đ ti p t cấ ệ ướ ể ế ụ
Trang 12 Ch n các ph n m m c n cài đ t (đ nguyên m c đ nh) và b m nút Nextọ ầ ề ầ ặ ể ặ ị ấ
Ch n đọ ường d n đ cài đ t (m c đ nh là C), tuy nhiên ta có th cài vào ẫ ể ặ ặ ị ổ ể ổ đĩa D ho c Eặ
L a ch n h ng d n cài đ t các mã ngu n, ta b m nút Nextự ọ ướ ẫ ặ ồ ấ
Database: Là m t t p h p d li u có liên quan logic v i nhau ch a thông tinộ ậ ợ ữ ệ ớ ứ
v 1 t ch c nào đó có t ch c và đề ổ ứ ổ ứ ược dùng chung đáp ng nhu c u khaiứ ầ thác thông tin c a ngủ ười dùng
Trang 13Ch a kích ho t đư ạ ượ cMySQL
M l i XAMPP và kíchở ạ
ho t l i MySQLạ ạ
Trang 14BÀI 2. TRUY C P C S D LI U MYSQLẬ Ơ Ở Ữ Ệ
A M C TIÊU C A BÀIỤ Ủ
H c xong bài này, h c viên có kh năng: ọ ọ ả
Trình bày được các phương pháp truy xu t c s d li u MySQL;ấ ơ ở ữ ệ
Th c hi n đự ệ ược các l nh truy xu t CSDL c a PHP và truy xu t CSDLệ ấ ủ ấ
Kh i l nh PHP: PHP đố ệ ược ch a trong kh i l nh ứ ố ệ <?php … ?>
L nh ệ echo dùng đ in ra trình duy t dòng văn b n, thông báoể ệ ả
Ví d : ụ <?php echo ‘Xin chào’; ?> s in ra trình duy t dòng thông báo “Xin ẽ ệchào”
1.2. Trình t th c hi n ự ự ệ
Trang 15Ki m tra l i đo n codeể ạ ạ PHP và ki m tra cú phápể
Trang 162. Truy xu t c s d li u b ng l nh PHPấ ơ ở ữ ệ ằ ệ
Trang 17m c c a bài t pụ ủ ậ
Vi t html cho trang ế
dbconnect.php
Khai báo kh i l nh ố ệ
PHP, tên c s d li u, ơ ở ữ ệ
tên người dùng và m t ậ
Trang 18ra được Tên lo i tinạ
Không k t n i đế ố ược v iớ
c s d li uơ ở ữ ệ
Ki m tra l i thông tinể ạ
k t n i, tên c s dế ố ơ ở ữ
li u k t n iệ ế ố
3. Truy xu t c s d li u dùng phpMyadminấ ơ ở ữ ệ
3.1. Sao l u d li u ư ữ ệ
3.1.1. Lý thuy t liên quan ế
Sao l u d li u là vi c t o ra m t b n sao l u c s d li u trong trư ữ ệ ệ ạ ộ ả ư ơ ở ữ ệ ường
h p c n đ ph c h i l i c s d li u cho websiteợ ầ ể ụ ồ ạ ơ ở ữ ệ
3.1.2. Trình t th c hi n ự ự ệ
Truy c p vào phpAdmin, ậ http://localhost/phpMyadmin/
Ch n c s d li u c n truy xu tọ ơ ở ữ ệ ầ ấ
Trang 19 Ch n b ng d li u c n sao l u, ho c ch n Check All đ sao l u t t ọ ả ữ ệ ầ ư ặ ọ ể ư ấcả
Ch n menu Exportọ
Tích vào Save as file, n u mu n nén d li u ch n Zipped ho c ế ố ữ ệ ọ ặ
gzipped trong Compression
Nh n Go đ sao l uấ ể ư
Ch n Save và đ t tên cho file sao l u khi xu t hi n thông báoọ ặ ư ấ ệ
3.1.3. Sai h ng th ỏ ườ ng g p, nguyên nhân và bi n pháp kh c ph c ặ ệ ắ ụ
Truy c p vào phpAdmin, ậ http://localhost/phpMyadmin/
Ch n c s d li u c n truy xu tọ ơ ở ữ ệ ầ ấ
Trang 20 Xóa d li uữ ệ
3.3.2. Trình t th c hi n ự ự ệ
Truy c p vào phpAdmin, ậ http://localhost/phpMyadmin/
Ch n c s d li u c n truy xu tọ ơ ở ữ ệ ầ ấ
Ch n bi u tọ ể ượng X tương ng v i b ng d li u, n u mu n xóa t t ứ ớ ả ữ ệ ế ố ấ
c các b ng ch n Check All sau đó ch n Drop with selectedả ả ọ ọ
Xu t hi n thông báo ch n Yesấ ệ ọ
3.3.3. Sai h ng th ỏ ườ ng g p, nguyên nhân và bi n pháp kh c ph c ặ ệ ắ ụ
Trang 21BÀI 3. L P TRÌNH PHP CĂN B NẬ Ả
A M C TIÊU C A BÀIỤ Ủ
H c xong bài này, h c viên có kh năng: ọ ọ ả
Trình bày được cách s d ng bi n trong php nh gán bi n, truy xu tử ụ ế ư ế ấ
bi n, s d ng bi n xây d ng s n…, các c u trúc đi u khi n if, switch case,ế ử ụ ế ự ẵ ấ ề ể các vòng l p, các hàm thặ ường s d ng trong PHP;ử ụ
V n d ng đậ ụ ược cách s d ng bi n, các c u trúc đi u khi n, vòng l p,ử ụ ế ấ ề ể ặ các hàm trong PHP đ th c hi n m t s bài t p theo yêu c u;ể ự ệ ộ ố ậ ầ
ho c là d u g ch dặ ấ ạ ưới, không được là s ố
Trang 22Thay vì xu t tr c ti p chu i thì ta xu t giá tr c a bi n ra màn hình.ấ ự ế ỗ ấ ị ủ ế
Ch y th và s a l i (n u có)ạ ử ử ỗ ế
1.3. Sai h ng th ỏ ườ ng g p, nguyên nhân bi n pháp kh c ph c ặ ệ ắ ụ
Trang 23{ kh i l nh 1;ố ệ
else { kh i l nh 2;}ố ệ
+ Ý nghĩa: N u bi u th c đi u ki n đúng thì kh i l nh 1 đế ể ứ ề ệ ố ệ ược th c hi n, cònự ệ
ngượ ại l i btdk sai thì s th c hi n kh i l nh 2.ẽ ự ệ ố ệ
T o form nh p d li u a, b, c và nút SO SÁNH (s d ng Dreamwaver)ạ ậ ữ ệ ử ụ
Vi t kh i l nh PHP th c hi n đ c d li u a, b, c mà ngế ố ệ ự ệ ọ ữ ệ ười dùng nh pậ vào
S d ng c u trúc if else và các phép toán đ ki m tra in ra s l n ử ụ ấ ể ể ố ớ
Trang 242.3. Sai h ng th ỏ ườ ng g p, nguyên nhân, bi n pháp kh c ph c ặ ệ ắ ụ
ki m tra kh i l nh if.ể ố ệ
2.2. S d ng switch…case ử ụ
2.2.1. Lý thuy t liên quan ế
switch … case: được g i là câu l nh r nhánh, khi bài toán có nhi u trọ ệ ẽ ề ường
h p h n thì nên s d ng câu l nh này thay vì s d ng câu l nh if…elseợ ơ ử ụ ệ ử ụ ệ
Cú pháp:
switch(bt) {
case $giatri1:
// kh i l nh 1 ố ệ break;
case $giatri2:
// kh i l nh 2 ố ệ break;
…
default:
// kh i l nh default ố ệ break;
Ý nghĩa: B t đ u chắ ầ ương trình s ki m tra k t qu tr v c a bi u th c,ẽ ể ế ả ả ề ủ ể ứ
n u bt b ng v i $giatri1 thì chế ằ ớ ương trình th c hi n kh i l nh 1, sau đó thoátự ệ ố ệ
kh i switch. Tỏ ương t n u bt b ng v i $giatri2, chự ế ằ ớ ương trình th c hi n kh iự ệ ố
l nh 2, th c hi n xong kh i l nh 2 chệ ự ệ ố ệ ương trình s thoát kh i switch do câuẽ ỏ
l nh break; c tệ ứ ương t nh vây. Trong trự ư ường h p bt không b ng giá tr nàoợ ằ ị
c thì kh i l nh switch s th c hi n kh i l nh m c đ nh là kh i l nh default.ả ố ệ ẽ ự ệ ố ệ ặ ị ố ệ
2.2.2. Trình t th c hi n ự ự ệ
Bài toán: Th c hi n nh p vào 1 tháng c a năm b t k Đ a ra s ngày c a ự ệ ậ ủ ấ ỳ ư ố ủtháng đó?
Trang 25Trình t th c hi n:ự ự ệ
T o file “timsongay.php” trong th m c “Bai3_phpcanban”ạ ư ụ
Vi t m u html cho trangế ẫ
T o form nh p d li u tháng và nút K T QUạ ậ ữ ệ Ế Ả
Vi t kh i l nh PHP th c hi n đ c d li u mà ngế ố ệ ự ệ ọ ữ ệ ười dùng nh p vàoậ
S d ng c u trúc switch case và các phép toán đ ki m tra in ra s ử ụ ấ ể ể ốngày trong tháng c a năm đóủ
M trình duy t, nh p đ a ch ở ệ ậ ị ỉ
http://localhost/
Ki m tra k t qu và s a l i n u cóể ế ả ử ỗ ế
2.2.3. Sai h ng th ỏ ườ ng g p, nguyên nhân, bi n pháp kh c ph c ặ ệ ắ ụ
Vòng l p là m t mã l nh trong đó chặ ộ ệ ương trình được th c hi n l p đi l pự ệ ặ ặ
l i nhi u l n cho đ n khi th a mãn m t đi u ki n nào đó. Vòng l p là m tạ ề ầ ế ỏ ộ ề ệ ặ ộ khái ni m c b n trongệ ơ ả l p trình c u trúcậ ấ
l n.ầ