Tải bản đầy đủ (.pdf) (128 trang)

Đề cương lập trình web động với PHP và MySQL

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.93 MB, 128 trang )

TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT HƢNG YÊN
KHOA CÔNG NGHỆ CÔNG NGHỆ THÔNG TIN

LẬP TRÌNH WEB ĐỘNG VỚI PHP & MYSQL

Hƣng Yên
(Tài liệu lƣu hành nội bộ)

1


2


MỤC LỤC
BÀI 1. BÀI 01: TỔNG QUAN VỀ PHP VÀ MYSQL .............................. 7
1.1 Ngôn ngữ PHP và MySQL...................................................................................... 7
1.1.1 Ngôn ngữ lập mã ngồn mở ................................................................................................ 7
1.1.2 Các đặc điểm PHP ............................................................................................................. 8
1.1.3 Cơ bản về hệ quản trị CSDL mySQL ................................................................................. 8

1.2 Cơ bản về cú pháp ngôn ngữ PHP.......................................................................... 8
1.2.1 Thẻ (tag) trng PHP ............................................................................................................ 8
1.2.2 Biến, hằng trng PHP .......................................................................................................... 9
1.2.3 Tán tử trng PHP ...............................................................................................................10
1.2.4 Lệnh chú thíc trng PHP ....................................................................................................12

1.3 Cài đặt và cấu hình máy chủ Apache server ........................................................ 13

BÀI 2. BÀI 02: CẤU TRÚC ĐIỀU KHIỂN TRNG PHP ....................... 15
2.1 Cấu trúc rẽ nhánh ................................................................................................. 15


2.1.1 Câu lệnh if else .................................................................................................................15
2.1.2 Câu lênh swicth case ........................................................................................................16

2.2 Cấu trúc lặp For .................................................................................................... 17
2.2.1 Cấu trúc của for ................................................................................................................17
2.2.2 Cấu trúc foreach ...............................................................................................................18

2.3 Cấu trúc lặp While ................................................................................................ 18
2.3.1 cấu trúc whie ....................................................................................................................18
2.3.2 Cấu trúc do while .............................................................................................................19

2.4 Lệnh ngắt trng PHP .............................................................................................. 20
2.4.1 Lệnh Break.......................................................................................................................20
2.4.2 Lệnh Cntinue ....................................................................................................................21

BÀI 3. BÀI 03: LÀM VIỆC VỚI DỮ LIỆU FRM .................................. 22
3.1 Thẻ PHP kết hợp với HTML ................................................................................ 22
3.1.1 Thẻ PHP ...........................................................................................................................22
3.1.2 Ví dụ về kết hợp PHP và HTML.......................................................................................22

3.2 Nhận dữ liệu từ web .............................................................................................. 22
3.2.1 Nhận dữ liệu he POST ......................................................................................................22
3.2.2 Nhận dữ liệu the GET .......................................................................................................23

3.3 Xuất dữ liệu về phía trình duyệt........................................................................... 24
3.3.1 Hàm Print .........................................................................................................................24

3



3.3.2 Hàm Echo ........................................................................................................................ 25

3.4 Nhúng trang PHP và trng trang PHP ...................................................................25
3.4.1 Hàm Include và include_one ............................................................................................ 25
3.4.2 Hàm Require và Require_one ........................................................................................... 25

BÀI 4. LÀM VIỆC VỚI DỮ LIỆU MẢNG TRNG PHP ....................... 27
4.1 Định nghĩa mảng trng PHP ...................................................................................27
4.2 Khái niệm mảng kết hợp trng PHP.......................................................................27
4.3 Thao tác các phần tử trong mảng .........................................................................27
4.3.1 Đa mảng trong PHP ......................................................................................................... 30

BÀI 5. LÀM VIỆC VỚI DỮ LIỆU KIỂU XÂU CHUỖI ....................... 32
5.1 Chuỗi trng PHP .....................................................................................................32
5.2 các tán tử tha tác chuỗi..........................................................................................32
5.3 Hàm tha tác chuỗi ..................................................................................................32

BÀI 6. LÀM VIỆC VỚI FILE TỆP VÀ UPLAD FILE ......................... 36
6.1 Đƣờng dẫn trng PHP .............................................................................................36
6.1.1 Cấu trúc đường dẫn .......................................................................................................... 36
6.1.2 Tha tác với các thư mục thông qua đường dẫn .................................................................. 36

6.2 Thao tác với File tệp ..............................................................................................37
6.2.1 Các hàm tha tác với File tệp ............................................................................................. 37
6.2.2 Đọc file ............................................................................................................................ 38
6.2.3 Ghi file............................................................................................................................. 39

6.3 Uplad File trng PHP ..............................................................................................40
6.3.1 Hàm Uplad file tệp ........................................................................................................... 40
6.3.2 Xây dựng ứng dụng Uplad file tệp .................................................................................... 40


BÀI 7. LẬP TRÌNH HƢỚNG ĐỐI TƢỢNG .......................................... 43
7.1 Khái niệm về hàm và cách khai báo......................................................................43
7.1.1 Khái niệm về hàm và sử dụng lại mã ................................................................................ 43
7.1.2 Cách khai báo hàm trng PHP ............................................................................................ 43
7.1.3 Hàm tự định nghĩa với giá trị trả về .................................................................................. 43
7.1.4 Gọi lại hàm trng PHP ....................................................................................................... 44

7.2 Lập tình hƣớng đối tƣợng trng PHP .....................................................................44
7.3 Khai bá đối tƣợng và cách xây dựng.....................................................................45
7.3.1 Cấu trúc đối tượng ........................................................................................................... 45
7.3.2 Các thành phần của đối tượng........................................................................................... 46

4


7.3.3 Một số từ khóa trng lập trình hướng đối trượng.................................................................47
7.3.4 Xây dựng lớp ...................................................................................................................48

BÀI 8. LẬP TRÌNH HƢỚNG ĐỐI TƢỢNG 02 ..................................... 51
8.1 Sử dụng đối tƣợng trng PHP ................................................................................ 51
8.1.1 Từ khóa New, this ............................................................................................................51
8.1.2 Tán tử tha tác thành phần “->” ..........................................................................................51
8.1.3 Sử dụng các thuộc tính và hàm .........................................................................................51

8.2 Kế thừa trng PHP ................................................................................................. 53
8.3 Lớp interface ......................................................................................................... 53
8.4 Hàm abstract ......................................................................................................... 54

BÀI 9. LẬP TRÌNH CƠ SỞ DỮ LIỆU VỚI MYSQL ............................ 56

9.1 Giới thiệu về hệ quản trị CSDL MySQL.............................................................. 56
9.2 Các lệnh cơ bản trên MySQL ............................................................................... 57
9.3 Kết nối cơ sở dữ liệu MySQL từ PHP .................................................................. 58
9.4 Đọc dữ liệu từ MySQL .......................................................................................... 59

BÀI 10. LẬP TRÌNH CƠ SỞ DỮ LIỆU VỚI MYSQL 2 ....................... 62
10.1 Ghi dữ liệu và CSDL mySQL ............................................................................. 62
10.2 Cập nhật dữ liệu .................................................................................................. 62
10.3 Xóa dữ liệu .......................................................................................................... 63
10.4 Một số phƣơng pháp kết nối CSDL .................................................................... 63

BÀI 11. BIẾN ĐỐI TƢỢNG TRNG PHP ............................................... 68
11.1 Giới thiệu về các biến phía server....................................................................... 68
11.2 Làm việc với Server ............................................................................................ 69
11.3 Làm việc Sessin ................................................................................................... 70
11.4 Làm việc Cookie .................................................................................................. 72

BÀI 12. TỔNG QUAN VỀ LẬP TRÌNH CDEIGNITER ...................... 75
12.1 Giới thiệu về Cdeigniter ...................................................................................... 75
12.2 Đặc điểm của CodeIgniter .................................................................................. 75
12.3 Cài đặt CodeIgniter............................................................................................. 75
12.4 Cấu trúc một mdule trong CodeIgniter ............................................................. 76
12.5 Viết ứng dụng đầu tiên........................................................................................ 78
12.6 Thực hiện kết nối CSDL ..................................................................................... 78

5


BÀI 1. TL 1 VIẾT ỨNG DỤNG CƠ BẢN TRÊN PHP ......................... 82
BÀI 2. TL 2 BÀI TÁN TÌM KIẾM TRÊN XÂU .................................... 83

BÀI 3. TL 3 VIẾT WEBSITE THE MÔ HÌNH HƢỚNG ĐỐI TƢỢNG
84
BÀI 4. TL 4 SỬ DỤNG CƠ SỞ DỮ LIỆU THIẾT KẾ WEBSITE ....... 85
BÀI 5. TL 5 XÂY DỰNG GIỎ HÀNG TRÊN PHP ............................... 86
BÀI 1. TH 01 CÁC PHÉP TÁN CƠ BẢN .............................................. 87
BÀI 2. TH 02. THA TÁC VỚI MẢNG VÀ XÂU .................................. 91
BÀI 3. TH 03 LÀM VIỆC VỚI DỮ LIỆU TỆP ..................................... 96
BÀI 4. TH 04 LẬP TRÌNH HƢỚNG ĐỐI TƢỢNG ............................ 102
BÀI 5. TH 05: LẬP TRÌNH CƠ SỞ DỮ LIỆU .................................... 111
BÀI 6. TH 06: LẬP TRÌNH CƠ SỞ DỮ LIỆU .................................... 115
BÀI 7. TH 07. SỬ DỤNG BIẾN ĐỐI TƢỢNG TRONG PHP ............ 121
BÀI 8. TH 08. CÀI ĐẶT KHAI THÁC CODEIGNITER................... 126

6


PHẦN LÝ THUYẾT
Bài 1.

Tổng quan về PHP và MySQL

1.1 Ngôn ngữ PHP và MySQL
PHP Hypertext Preprcessr (PHP) là một ngôn ngữ lập trình ch phép các lập trình viên web
tạ các nội dung động mà tương tác với Database. Về cơ bản, PHP được sử dụng để phát
triển các ứng dụng phần mềm trên web.
PHP khởi đầu như là một dự án mã nguồn mở nhỏ, nhưng the đà phát triển, ngày càng
nhiều người thấy rằng nó càng ngày càng hữu ích. PHP được phát triển từ một sản phẩm
có tên là PHP/FI. PHP/FI d Rasmus Lerdrf tạ ra năm 1994, ban đầu được xem như là một
tập cn đơn giản của các mã kịch bản Perl để the dõi tình hình truy cập đến bản sơ yếu lý
lịch của ông trên mạng. Ông đã đặt tên ch bộ mã kịch bản này là "Persnal Hme Page Tls".

Khi cần đến các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thi bằng C lớn hơn để
có thể truy vấn tới Database và giúp ch người sử dụng phát triển các ứng dụng web đơn
giản. Rasmus đã quyết định công bố mã nguồn của PHP/FI ch mọi người xem, sử dụng
cũng như sửa các lỗi có trng nó, đồng thời cải tiến mã nguồn. PHP đã phát triển rất nhanh
chóng và trở thành ngôn ngữ lập trình web phổ biến nhất trên thế giới hiện nay.
1.1.1 Ngôn ngữ lập mã ngồn mở
Một số đặc điểm quan trọng của PHP:
 PHP viết hồi qui của "PHP: Hypertext Preprcessr".
 PHP là ngôn ngữ lập trình kịch bản viết ch máy chủ mà được nhúng trng
HTML. Nó được sử dụng để quản lý nội dụng động, Database, Sessin tracking,

 Nó được tích hợp với một số Database thông dụng như MySQL, PstgreSQL,
racle, Sybase, Infrmix, và Micrsft SQL Server.
 PHP thực thi rất tuyệt vời, đặc biệt khi được biên dịch như là một Apache
Mdule trên Unix side. MySQL Server, khi được khởi động, thực thi các truy
vấn phức tạp với các tập hợp kết quả khổng lồ trng thời gian Recrd-setting.
 PHP hỗ trợ một số lượng rộng rãi các gia thức lớn như PP3, IMAP, và LDAP.
PHP4 bổ sung sự hỗ trợ ch Java và các cấu trúc đối tượng phân phối (CM và
CRBA).
 Cú pháp PHP là giống C.
 PHP thực hiện các hàm hệ thống, ví dụ: từ các file trên một hệ thống, nó có thể
tạ, mở, đọc, ghi và đóng chúng.
 PHP có thể xử lý các frm, ví dụ: thu thập dữ liệu từ file, lưu dữ liệu và một file,
thông qua email bạn có thể gửi dữ liệu, trả về dữ liệu tới người dùng.
 Bạn có thể thêm, xóa, sửa đổi các phần tử bên trng Database của bạn thông qua
PHP.
 Truy cập các biến Ckie và thiết lập Ckie.
 Sử dụng PHP, bạn có thể hạn chế người dùng truy cập và một số trang trng
Website của bạn.
5 đặc trưng quan trọng làm PHP trở thành ngôn ngữ phổ biến:

 Đơn giản hóa
 Hiệu quả
 Bả mật ca
 Linh động
 Thân thiện
7


1.1.2 Các đặc điểm PHP
MySQL là một RDBMS nhanh và dễ dàng để sử dụng. MySQL đang được sử dụng ch
nhiều công việc kinh danh từ lớn tới nhỏ. MySQL được phát triển, được công bố, được hỗ
trợ bởi MySQL AB, là một công ty của Thụy Điển. MySQL trở thành khá phổ biến vì
nhiều lý d:
 MySQL là mã ngồn mở. Vì thế, để sử dụng nó, bạn chẳng phải mất một xu nà.
 MySQL là một chương trình rất mạnh mẽ.
 MySQL sử dụng một Frm chuẩn của ngôn ngữ dữ liệu nổi tiếng là SQL.
 MySQL làm việc trên nhiều Hệ điều hành và với nhiều ngôn ngữ như PHP,
PERL, C, C++, Java, …
 MySQL làm việc nhanh và khỏe ngay cả với các tập dữ liệu lớn.
 MySQL rất thân thiện với PHP, một ngôn ngữ rất đáng giá để tìm hiểu để phát
triển Web.
 MySQL hỗ trợ các cơ sở dữ liệu lớn, lên tới 50 triệu hàng hặc nhiều hơn nữa
trng một bảng. Kích cỡ file mặc định được giới hạn ch một bảng là 4 GB,
nhưng bạn có thể tăng kích cỡ này (nếu hệ điều hành của bạn có thể xử lý nó)
để đạt tới giới hạn lý thuyết là 8 TB.
MySQL là có thể điều chỉnh. Giấy phép GPL mã nguồn mở ch phép lập trình viên sửa đổi
phần mềm MySQL để phù hợp với môi trường cụ thể của họ.
1.1.3 Cơ bản về hệ quản trị CSDL mySQL
MySQL là một RDBMS nhanh và dễ dàng để sử dụng. MySQL đang được sử dụng ch
nhiều công việc kinh danh từ lớn tới nhỏ. MySQL được phát triển, được công bố, được hỗ

trợ bởi MySQL AB, là một công ty của Thụy Điển. MySQL trở thành khá phổ biến vì
nhiều lý d:
 MySQL là mã ngồn mở. Vì thế, để sử dụng nó, bạn chẳng phải mất một xu nà.
 MySQL là một chương trình rất mạnh mẽ.
 MySQL sử dụng một Frm chuẩn của ngôn ngữ dữ liệu nổi tiếng là SQL.
 MySQL làm việc trên nhiều Hệ điều hành và với nhiều ngôn ngữ như PHP,
PERL, C, C++, Java, …
 MySQL làm việc nhanh và khỏe ngay cả với các tập dữ liệu lớn.
 MySQL rất thân thiện với PHP, một ngôn ngữ rất đáng giá để tìm hiểu để phát
triển Web.
 MySQL hỗ trợ các cơ sở dữ liệu lớn, lên tới 50 triệu hàng hặc nhiều hơn nữa
trng một bảng. Kích cỡ file mặc định được giới hạn ch một bảng là 4 GB,
nhưng bạn có thể tăng kích cỡ này (nếu hệ điều hành của bạn có thể xử lý nó)
để đạt tới giới hạn lý thuyết là 8 TB.
MySQL là có thể điều chỉnh. Giấy phép GPL mã nguồn mở ch phép lập trình viên sửa đổi
phần mềm MySQL để phù hợp với môi trường cụ thể của họ.

1.2 Cơ bản về cú pháp ngôn ngữ PHP
1.2.1 Thẻ (tag) trng PHP
PHP Parser cần một cách để phân biệt PHP cde với các phần tử khác trng trang web. Kỹ
thuật thực hiện điều này được biết với cái tên: "Escaping t PHP". Có 4 cách để làm điều
này là:
Thẻ PHP chính tắc
Phng cách thẻ PHP hiệu quả và được sử dụng phổ biến nhất là:
//Cde php
?>

8



Đây là cách duy nhất để chắc chắn rằng các thẻ của php sẽ luôn luôn được thông dịch một
cách chính xác.
Thẻ mở ngắn gọn (SGML-style)
Các thẻ này có dạng như sau:
//Cde php
?>

Để sử dụng thẻ này bạn thực hiện 1 hặc 2 việc sau để kích hạt PHP để nhận ra các thẻ này:
Chọn tùy chọn cấu hình --enable-shrt-tags khi bạn đang xây dựng PHP.
Thiết lập cài đặt shrt_pen_tag trng tệp php.ini thành n. Tùy chọn này phải vô hiệu hóa để
phân tích cú pháp XML với PHP, bởi vì cú pháp tương tự được sử dụng ch các thẻ XML.
Thẻ ASP-style
Thẻ ASP-style bắt chước các thẻ được sử dụng bởi Active Server Pages để phác họa các
khối cde. Các thẻ ASP-style có dạng như sau:
<%
//Cde php
%>

Để sử dụng thẻ ASP-style, bạn sẽ cần thiết lập tùy chọn cấu hình trng tệp php.ini.
Thẻ HTML script
Thẻ script trng HTML có dạng như sau:
<script language="PHP">
//Cde php
</script>

Hiển thị văn bản trên trình duyệt - Lệnh print và lệnh ech
Trng PHP, bạn có thể sử dụng hai lệnh print và ech để in ra màn hình một chuỗi nà đó. Với
các bạn mới học PHP thì hai lệnh này không khác nhau nhiều và bạn có thể sử dụng lệnh

nà cũng được.
Ví dụ:
<html>
<head>
<title>Ví dụ chương trình PHP</title>
</head>
<bdy>
ech "Ví dụ minh họa lệnh ech!
";
print "Ví dụ minh họa lệnh print!";
?>
</bdy>
</html>

Kêt quả:

1.2.2 Biến, hằng trng PHP
PHP Parser cần một cách để phân biệt PHP cde với các phần tử khác trng trang web. Kỹ
thuật thực hiện điều này được biết với cái tên: "Escaping t PHP". Có 4 cách để làm điều
này là:
Thẻ PHP chính tắc
Phng cách thẻ PHP hiệu quả và được sử dụng phổ biến nhất là:
9


//Cde php
?>

Đây là cách duy nhất để chắc chắn rằng các thẻ của php sẽ luôn luôn được thông dịch một

cách chính xác.
Thẻ mở ngắn gọn (SGML-style)
Các thẻ này có dạng như sau:
//Cde php
?>

Để sử dụng thẻ này bạn thực hiện 1 hặc 2 việc sau để kích hạt PHP để nhận ra các thẻ này:
Chọn tùy chọn cấu hình --enable-shrt-tags khi bạn đang xây dựng PHP.
Thiết lập cài đặt shrt_pen_tag trng tệp php.ini thành n. Tùy chọn này phải vô hiệu hóa để
phân tích cú pháp XML với PHP, bởi vì cú pháp tương tự được sử dụng ch các thẻ XML.
Thẻ ASP-style
Thẻ ASP-style bắt chước các thẻ được sử dụng bởi Active Server Pages để phác họa các
khối cde. Các thẻ ASP-style có dạng như sau:
<%
//Cde php
%>

Để sử dụng thẻ ASP-style, bạn sẽ cần thiết lập tùy chọn cấu hình trng tệp php.ini.
Thẻ HTML script
Thẻ script trng HTML có dạng như sau:
<script language="PHP">
//Cde php
</script>

Hiển thị văn bản trên trình duyệt - Lệnh print và lệnh ech
Trng PHP, bạn có thể sử dụng hai lệnh print và ech để in ra màn hình một chuỗi nà đó. Với
các bạn mới học PHP thì hai lệnh này không khác nhau nhiều và bạn có thể sử dụng lệnh
nà cũng được.
Ví dụ:

<html>
<head>
<title>Ví dụ chương trình PHP</title>
</head>
<bdy>
ech "Ví dụ minh họa lệnh ech!
";
print "Ví dụ minh họa lệnh print!";
?>
</bdy>
</html>

Kêt quả:

1.2.3 Tán tử trng PHP
Tán tử là gì? Câu trả lời đơn giản từ biểu thức 4 + 5 là bằng 9. Ở đây, 4 và 5 được gọi là
các tán hạng và + được gọi là tán tử. Ngôn ngữ PHP hỗ trợ các kiểu tán tử sau:
10


 Tán tử số học
 Tán tử s sánh
 Tán tử lgic (hay tán tử quan hệ)
 Tán tử gán
 Tán tử điều kiện (hặc tán tử 3 ngôi)
Tán tử số học trng PHP
Bảng dưới liệt kê các tán tử số học được hỗ trợ bởi ngôn ngữ PHP:
Giả sử biến A giữ giá trị 10, biến B giữ 20 thì:
Ví dụ
Tán tử

+
*
/
%
++

Miêu tả
Ví dụ
Cộng hai tán hạng
A + B kết quả là 30
Trừ tán hạng thứ hai từ tán hạng đầu
A - B kết quả là -10
Nhân hai tán hạng
A * B kết quả là 200
Phép chia
B / A kết quả là 2
Phép lấy số dư
B % A kết quả là 0
Tán tử tăng, tăng giá trị tán hạng thêm một A++ kết quả là 11
đơn vị
-Tán tử giảm, giảm giá trị tán hạng đi một A-- kết quả là 9
đơn vị
Tán tử s sánh trng PHP
Bảng dưới liệt kê các tán tử s sánh được hỗ trợ bởi ngôn ngữ PHP. Giả sử biến A giữ giá
trị 10, biến B giữ giá trị 20, thì:
Ví dụ
Tán tử
==

Miêu tả

Kiểm tra nếu 2 tán hạng bằng nhau hay không. Nếu
bằng thì điều kiện là true.
!=
Kiểm tra 2 tán hạng có giá trị khác nhau hay không.
Nếu không bằng thì điều kiện là true.
>
Kiểm tra nếu tán hạng bên trái có giá trị lớn hơn tán
hạng bên phải hay không. Nếu lớn hơn thì điều kiện là
true.
<
Kiểm tra nếu tán hạng bên trái nhỏ hơn tán hạng bên
phải hay không. Nếu nhỏ hơn thì là true.
>=
Kiểm tra nếu tán hạng bên trái có giá trị lớn hơn hặc
bằng giá trị của tán hạng bên phải hay không. Nếu đúng
là true.
<=
Kiểm tra nếu tán hạng bên trái có giá trị nhỏ hơn hặc
bằng tán hạng bên phải hay không. Nếu đúng là true.
Tán tử lgic trng PHP

Ví dụ
(A == B) là không true.
(A != B) là true.
(A > B) là không true.

(A < B) là true.
(A >= B) là không true.

(A <= B) là true.


Bảng dưới đây chỉ rõ tất cả các tán tử lgic được hỗ trợ bởi ngôn ngữ PHP. Giả sử biến A
có giá trị 10 và biến B có giá trị 20, thì:
Tán tử
and
r

Miêu tả
Ví dụ
Được gọi là tán tử Lgic AND. Nếu cả hai tán hạng là (A and B) là true.
true thì điều kiện trở thành true
Được gọi là tán tử Lgic R. Nếu một trng hai tán hạng là (A r B) là true.
11


&&
||
!

đúng thì điều kiện trở thành true
Được gọi là tán tử Lgic AND. Nếu cả hai tán hạng là (A && B) là true.
true thì điều kiện trở thành true
Được gọi là tán tử Lgic R. Nếu một trng hai tán hạng là (A || B) là true.
đúng thì điều kiện trở thành true
Được gọi là tán tử Lgic NT. Sử dụng để đả ngược trạng !(A && B) là false.
thái lgic của tán hạng. Nếu điều kiện là true thì tán tử
Lgic NT sẽ ch kết quả là false

Ví dụ
Tán tử gán trng PHP

Dưới đây là những tán tử gán được hỗ trợ bởi ngôn ngữ PHP:
Ví dụ
Tán tử
=

Miêu tả
Tán tử gán đơn giản. Gán giá trị tán hạng bên phải ch
tán hạng trái
+=
Thêm giá trị tán hạng phải tới tán hạng trái và gán giá
trị đó ch tán hạng trái
-=
Trừ đi giá trị tán hạng phải từ tán hạng trái và gán giá
trị này ch tán hạng trái
*=
Nhân giá trị tán hạng phải với tán hạng trái và gán giá
trị này ch tán hạng trái
/=
Chia tán hạng trái ch tán hạng phải và gán giá trị này ch
tán hạng trái
%=
Lấy phần dư của phép chia tán hạng trái ch tán hạng
phải và gán ch tán hạng trái
Tán tử điều kiện trng PHP

Ví dụ
C = A + B sẽ gán giá trị
của A + B và trng C
C += A là tương đương
với C = C + A

C -= A là tương đương
với C = C - A
C *= A là tương đương
với C = C * A
C /= A là tương đương
với C = C / A
C %= A là tương đương
với C = C % A

Có nhiều hơn một tán tử được gọi là tán tử điều kiện. Đầu tiên, nó ước lượng một biểu
thức là true hặc false và sau đó thực thi một trng hai lệnh đã ch tùy thuộc và kết quả của
việc ước lượng. Tán tử điều kiện có cú pháp như sau:
Ví dụ
Tán tử
?:

Miêu tả
Biểu thức điều kiện

Ví dụ
Nếu điều kiện là true ? Thì giá trị X :
Nếu không thì giá trị Y

1.2.4 Lệnh chú thíc trng PHP
Cmmet trng PHP
Một cmment là 1 phần của chương trình chỉ có tác dụng ch người đọc cde và nó sẽ bị lược
bỏ trước khi hiển thị kết quả chương trình. Có 2 kiểu cmment trng PHP:
Cmment đơn dòng − Nói chung, chúng thường được sử dụng ch các giải thích ngắn gọn
hặc các chú ý liên quan đến nội bộ cde. Dưới đây là ví dụ về cmment đơn dòng:

# Đây là ví dụ của một cmment
# Ví dụ cmment thứ hai
// Một ví dụ về cmment đơn dòng khác
print "Ví dụ minh họa cmment đơn dòng";
?>

12


Cmment đa dòng − Được sử dụng để giải thích chi tiết khi cần thiết. Dạng cmment này
khá giống trng C. Đây là ví dụ về cmment đa dòng.
/* Ví dụ một cmment đa dòng:
Web: utehy.edu.vn
Mục đích: minh họa lại cmment viết trên nhiều dòng
Ngôn ngữ: PHP
*/
print "Ví dụ minh họa cmment đơn dòng";
?>

1.3 Cài đặt và cấu hình máy chủ Apache server
Để cài đặt PHP, các bạn có thể cài đặt từng gói riêng lẻ (PHP, Apache, Mysql). Hặc sử
dụng gói phần mềm tích hợp là : Appserv - Win - 2.5.8 (Tên phần mềm là Appserv, dành
ch phiên bản windw, phiên bản 2.5.8).
Bước 1: Bạn cài đặt bình thường bằng cách nhấp và file exe.
Bước 2: Phần mềm sẽ ch bạn chọn cần cài những mdule nà. Hãy giữ nguyên tất cả như
hình dưới và nhấn next.

Bước 3: Trng gia diện dưới:


Server Name: bạn nhập và: lcalhst
13


Email: Bạn nhập và email của bạn:
Prt: Mặc định là 80, tuy nhiên nếu máy bạn đã cài IIS thì có thể chỉnh thành 81 để chạy
dịch vụ bên appserv.
Nhấn next để qua trang kế tiếp.
Bước 4: Trng gia diện bên dưới ta điền thông tin như sau:

Enter rt passwrd: Bạn gõ và rt
Re-enter rt passwrd: nhập lại 1 lần nữa rt
Các cấu hình bên dưỡi giữ nguyên.
Ở phần: Enable InnDB bạn đánh dấu và. Để MYSQL sử lý được các ứng dụng có bật chế
độ InnDB.
Nhấn next để hàn tất việc cài đặt.
Sau khi cài đặt xng bạn gõ và trình duyệt : http://lcalhst
mà ra gia diện bên dưới, tức là bạn đã cài đặt thành công appserv.

14


Bài 2.

Cấu trúc điều khiển trng PHP

2.1 Cấu trúc rẽ nhánh
Là biểu thức dùng kiểm tra 1 sự kiện. Nếu chúng thỏa điều kiện đó thì sẽ thực thi một hành
động. Ngược lại sẽ là một hành động khác.
Các lệnh if, elseif …else và switch trng được sử dụng để điều khiển luồng dựa trên các

điều kiện khác nhau.
Bạn có thể sử dụng các lệnh điều kiện trng cde của bạn để điều khiển luồng. PHP hỗ trợ 3
lệnh điều khiển luồng sau:

Lệnh if...else − Sử dụng lệnh này nếu bạn muốn thực thi một tập hợp cde khi một điều
kiện là true và tập cde khác nếu điều kiện là không true.
Lệnh elseif − Được sử dụng với lệnh if…else để thực thi một tập hợp cde nếu một trng các
điều kiện là true.
Lệnh switch − Được sử dụng nếu bạn muốn lựa chọn một trng các khối cde để được thực
thi. Lệnh switch được sử dụng để tránh sử dụng một khối if…elseif…else dài.
2.1.1 Câu lệnh if else
Nếu bạn muốn thực thi một đạn cde nếu một điều kiện là true và khối cde khác nếu một
điều kiện là false, bạn sử dụng lệnh if…else trng PHP.
Cú pháp
if (điều_kiện)
phần cde này được thực thi nếu điều kiện là true
else
phần cde này được thực thi nếu điều kiện là false

Ví dụ sau sẽ ch kết quả "Chúc cuối tuần vui vẻ!" nếu hôm nay là Friday. Nếu không, nó sẽ
ch kết quả "Chúc một ngày vui vẻ!":
<html>
<bdy>
$d=date("D");
if ($d=="Fri")
ech "Chúc cuối tuần vui vẻ!";
else

15



ech "Chúc một ngày vui vẻ!";
?>
</bdy>
</html>

Lệnh elseif trng PHP
Nếu bạn muốn thực thi một khối cde nếu một trng các điều kiện là true, thì bạn nên sử
dụng lệnh elseif trng PHP.
Cú pháp
if (điều_kiện_1)
phần cde này được thực thi nếu điều kiện 1 là true;
elseif (điều_kiện_2)
phần cde này được thực thi nếu điều kiện 2 là true;
else
phần cde này được thực thi nếu các điều kiện là false;

Ví dụ
Ví dụ sau sẽ ch kết quả "Chúc cuối tuần vui vẻ!" nếu hôm nay là Friday, và "Chủ nhật vui
vẻ!" nếu hôm nay là Sunday. Nếu không, nó sẽ ch kết quả "Chúc một ngày vui vẻ!"trng
Thư viện C:
<html>
<bdy>
$d=date("D");
if ($d=="Fri")
ech "Chúc cuối tuần vui vẻ!";
elseif ($d=="Sun")
ech "Chủ nhật vui vẻ!";

else
ech "Chúc một ngày vui vẻ!";
?>
</bdy>
</html>

2.1.2 Câu lênh swicth case
Nếu muốn lựa chọn một trng nhiều khối cde để được thực thi, bạn nên sử dụng lệnh switch
trng PHP. Lệnh switch được sử dụng để tránh các khối if…elseif…else dài.
Cú pháp
switch (biểu_thức)
{
case nhãn_1:
phần cde này được thực thi nếu biểu_thức = nhãn_1
break;
case nhãn_2:
phần cde này được thực thi nếu biểu_thức = nhãn_2
break;
...
default:
phần cde này được thực thi nếu
biểu_thức là khác với nhãn_1, nhãn_2, ...
}

Ví dụ
Cơ chế làm việc của lệnh switch là: Đầu tiên, nó ước lượng biểu thức đã ch, sau đó tìm
một nhãn để s khớp với giá trị kết quả đã ước lượng. Nếu tìm thấy một s khớp, thì cde
được liên kết với nhãn sẽ được thực thi hặc nếu không có nhãn khớp với kết quả đó, thì
lệnh sẽ thực thi bất kỳ khối cde mặc định đã ch nà.
<html>

<bdy>

16


$d=date("D");
switch ($d)
{
case "Mn":
ech "Hôm nay là Thứ Hai";
break;
case "Tue":
ech "Hôm nay là Thứ Ba";
break;
case "Wed":
ech "Hôm nay là Thứ Tư";
break;
case "Thu":
ech "Hôm nay là Thứ Năm";
break;
case "Fri":
ech "Hôm nay là Thứ Sáu";
break;
case "Sat":
ech "Hôm nay là Thứ Bảy";
break;
case "Sun":
ech "Hôm nay là Chủ Nhật";
break;

default:
ech "Còn ngày này là thứ mấy ???";
}
?>
</bdy>
</html>

2.2 Cấu trúc lặp For
2.2.1 Cấu trúc của for
Lệnh for được sử dụng khi bạn biết trước bao nhiêu lần bạn muốn thực thi một lệnh hoặc
một khối lệnh trong PHP.

Cú pháp
17


for (khởi_tạo; điều_kiện; tăng_giảm_giá_trị)
{
phần code để thực thi
}

khởi_tạo: được sử dụng để thiết lập giá trị bắt đầu cho biến đếm số lần lặp. Một biến có thể
được khai báo ở đây cho mục đích này và tên truyền thống của nó là $i.
Ví dụ
Ví dụ sau tạo 5 lần lặp và thay đổi giá trị đã gán của hai biến qua mỗi lần lặp.
<html>
<body>
$a = 0;
$b = 0;

for( $i=0; $i<5; $i++ )
{
$a += 10;
$b += 5;
}
echo ("Sau vòng lặp, giá trị a=$a và b=$b" );
?>
</body>
</html>

2.2.2 Cấu trúc foreach
Lệnh vòng lặp foreach được sử dụng để lặp qua một mảng. Với mỗi lần lặp, giá trị cho
phần tử mảng hiện tại được gán cho $value và con trỏ mảng được di chuyển tới phần tử kế
tiếp và trong lần lặp tiếp theo thì phần tử kế tiếp sẽ được xử lý.
Cú pháp
foreach (Mảng as giá_trị)
{
phần code để thực thi
}

Ví dụ
Bạn thử ví dụ sau để liệt kê các giá trị của một mảng.
<html>
<body>
$array = array( 1, 2, 3, 4, 5);
foreach( $array as $value )
{
echo "Giá trị phần tử mảng là $value
";

}
?>
</body>
</html>

2.3 Cấu trúc lặp While
2.3.1 cấu trúc whie
Lệnh while trong PHP sẽ thực thi một khối code nếu và miễn là một điều kiện đã xác định
là true.
Nếu điều kiện đã cho là true, thì khối code sẽ được thực thi. Sau khi code được thực thi, thì
biểu thức điều kiện sẽ được ước lượng một lần nữa, và vòng lặp tiếp tục thực thi tới khi
biểu thức điều kiện là false.

18


Cú pháp
while (điều_kiện)
{
phần code được thực thi nếu điều kiện là true
}

Ví dụ
Ví dụ sau giảm giá trị một biến qua mỗi lần lặp và tăng giá trị biến đếm tới khi nó đạt đến
10, thì sự ước lượng là false và vòng lặp kết thúc.
<html>
<body>
$i = 0;
$num = 30;

while( $i < 10)
{
$num--;
$i++;
}
echo ("Vòng lặp dừng tại giá trị i = $i và num = $num" );
?>
</body>
</html>

2.3.2 Cấu trúc do while
Lệnh do…while sẽ thực thi một khối code ít nhất một lần. Sau đó nó sẽ lặp lại vòng lặp
miễn là điều kiện là true.
Cú pháp
do
{
phần code để thực thi
}
while (điều_kiện);

Ví dụ
Ví dụ sau sẽ lượng gia giá trị của i ít nhất một lần, và sau đó nó sẽ tiếp tục tăng biến i miễn
là nó có giá trị nhỏ hơn 10.
<html>
<body>

19



$i = 0;
do{
$i++;
}
while( $i < 10 );
echo ("Vòng lặp dừng tại giá trị i = $i" );
?>
</body>
</html>

2.4 Lệnh ngắt trng PHP
2.4.1 Lệnh Break
Từ khóa break trong PHP được sử dụng để kết thúc sự thực thi của một vòng lặp một cách
đột ngột.
Lệnh break được đặt bên trong khối lệnh. Nó trao bạn toàn quyền điều khiển bất cứ khi
nào bạn muốn thoát khỏi vòng lặp. Sau khi ra khỏi vòng lặp, lệnh ngay sau vòng lặp đó sẽ
được thực thi.

Ví dụ sau kiểm tra điều kiện true khi giá trị biến đếm = 3 và vòng lặp kết thúc.
<html>
<body>
$i = 0;
while( $i < 10)
{
$i++;
if( $i == 3 )break;
}
echo ("Vòng lặp dừng tại giá trị i = $i" );
?>

</body>
</html>

20


2.4.2 Lệnh Cntinue
Từ khóa continue trong PHP được sử dụng để dừng vòng lặp hiện tại nhưng không kết
thúc vòng lặp đó.
Giống lệnh break, lệnh continue được đặt bên trong khối lệnh đang chứa code mà vòng lặp
đó thực thi, được đặt trước bởi một biểu thức kiểm tra điều kiện. Khi gặp lệnh continue,
phần còn lại của vòng lặp bị bỏ qua và tiếp tục vòng lặp tiếp theo.

Vòng lặp sau in ra giá trị của một mảng, nếu thỏa mãn điều kiện thì in ra, ngược lại thì bỏ
qua và tiếp tục vòng lặp.
<html>
<body>
$array = array( 1, 2, 3, 4, 5);
foreach( $array as $value )
{
if( $value == 3 )continue;
echo "Gia tri cua phan tu mang la $value
";
}
?>
</body>
</html>

21



Bài 3.

Làm việc với dữ liệu Frm

3.1 Thẻ PHP kết hợp với HTML
3.1.1 Thẻ PHP
Trong trang web có sử dụng HTML và PHP. Để chạy được mã code php trong trang web
thì phần mở rộng của website phải là *.php.
Nội dung của phần lập trình PHP được đặt trong cặp từ khóa:
//Code php
?>

Việc xây dựng website dựa trên PHP là phương pháp biến đổi mã nguồn php ra dạng hiển
thị HTML thông qua trình biên dịch.
3.1.2 Ví dụ về kết hợp PHP và HTML
<html>
<head>
<title>Ket hop PHP và HTML</title>
</head>
<body>
echo ‘xin chao cac ban’;
?>
</body>
</html>

3.2 Nhận dữ liệu từ web

3.2.1 Nhận dữ liệu he POST
Phương thức POST có tính bảo mật hơn vì dữ liệu gửi phải thông qua một form HTML
nên nó bị ẩn, nghĩa là chúng ta không thể thấy các giá trị đó được.
Client Gửi Lên
Với phương thức GET thì dữ liệu được thấy trên URL thì phương thức POST thì hoàn toàn
ngược lại, POST sẽ gửi dữ liệu qua một cái form HTML và các giá trị sẽ được định nghĩa
trong các input gồm các kiểu (textbox, radio, checkbox, password, textarea, hidden) và
được nhận dang thông qua tên (name) của các input đó.
Server nhận dữ liệu
Tất cả các dữ liệu gửi bằng phương thức POST đều được lưu trong một biến toàn cục
$_POST do PHP tự tạo ra, vì thế để lấy dữ liệu thì bạn chỉ cần lấy trong biến này là được.
Cũng như lưu ý với các bạn là trước khi lấy phải dùng hàm isset($bien) để kiểm tra có hay
không nhé.
if (isset($_POST['id'])){
$id = $_POST['id'];
}

Ví dụ
Bước 1: Bạn tạo một file post.php nằm trong thư mục WWW của Vertrigo Server hoặc thư
mục htdocs của Xampp, sau đó nhập đoạn code tạo form này vào:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>

22



<form method="POST">
Username: <input type="text" name="username" value=""/>

password: <input type="password" name="password" value=""/>

<input type="submit" name="form_click" value="Gửi Dữ Liệu"/>
</form>
</body>
</html>

Bước 2: Bạn mở trình duyệt gõ đường dẫn localhost/post.php và ngắm nghía cái form
mình vừa tạo ra nhé.
Bước 3: Bạn sửa lại đoạn mã HTML đó bằng cách thêm vào một đoạn mã PHP như sau:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<form method="POST">
Username: <input type="text" name="username" value=""/>

password: <input type="password" name="password" value=""/>

<input type="submit" name="form_click" value="Gửi Dữ Liệu"/>

// Nếu người dùng click vào button Gửi Dữ Liệu
// Vì button đó tên là form_click nên đó cũng là
// tên của key nằm trong biến $_POST
if (isset($_POST['form_click'])){
echo 'Tên đăng nhập là: ' . $_POST['username'];
echo '
';

echo 'Mật khẩu là: ' . $_POST['password'];
}
?>
</form>
</body>
</html>

Bước 4: Chạy thử và kiểm tra kết quả.
3.2.2 Nhận dữ liệu the GET
Phương thức GET rất dễ nhận thấy đó là trên URL sẽ kèm theo dữ liệu mà chúng ta muốn
gửi.
Client gửi lên
Phương thức GET là phương thức gửi dữ liệu thông qua đường dẫn URL nằm trên thanh
địa chỉ của Browser. Server sẽ nhận đường dẫn đó và phân tích trả về kết quả cho bạn.
Server sẽ phân tích tất cả những thông tin đằng sau dấu hỏi (?) chính là phần dữ liệu mà
Client gửi lên.
Ví dụ: Với URL freetuts.net?id=12 thì Server sẽ nhận được giá trị id = 12
Để truyền nhiều dữ liệu lên Server ta dùng dấu & để phân cách giữa các cặp giá trị. Giả sử
tôi muốn truyền id = 12 và title = „method_get‟ thì URL sẽ có dạng
freetuts.net?id=12&title=method_get. Lưu ý với các bạn là vị trí các cặp giá trị không quan
trọng, nghĩa là cặp title có thể nằm trước cặp id cũng được.
Server nhận dữ liệu
Tất cả các dữ liệu mà Client gửi lên bằng phương thức GET đều được lưu trong một biến
toàn cục mà PHP tự tạo ra đó là biến $_GET, biến này là kiểu mảng kết hợp lưu trữ danh
sách dữ liệu từ client gửi lên theo quy luật key => value. Ví du với URL
freetuts.net?id=12&title=method_get thì dữ liệu sẽ được lưu trong biến $_GET dưới dạng:
$_GET = array(
'id' => '12',
'title' => 'method_get');


23


Vì thế để lấy dữ liệu thì ta chỉ cần làm như sau:
// Lấy ID
$id = $_GET['id'];
echo $id; // kết quả là 12
// Lấy title
$title = $_GET['title'];
echo $title; // kết quả là method_get

Ví dụ:
Bạn hãy tạo một file get.php nằm trong thư mục WWW của Vertrigo Server hoặc thư mục
htdocs của Xampp, sau đó bạn copy đoạn code này vào:
echo 'Dữ Liệu Chúng Tôi Nhận Được Là
';
foreach ($_GET as $key => $val)
{
echo '<strong>' . $key . ' => ' . $val . '</strong>
';
}

Sau đó bạn ra trình duyệt gõ đường dẫn sau:
localhost/get.php?id=12&title=method_get
Chạy và kiểm tra kết quả.
Lƣu ý:
Trước khi lấy một dữ liệu nào đó bạn phải kiểm tra tồn tại không không mới lấy nhé, vì
nếu bạn không kiểm tra thì giả sử người dùng không truyền dữ liệu qua mà bạn lại nhận thì
sẽ bị báo lỗi ngay. Để kiểm tra ta dùng hàm isset($tenbien) trong php.
Ví dụ:
if (isset($_GET['id'])){
$id = $_GET['id'];

}

3.3 Xuất dữ liệu về phía trình duyệt
3.3.1 Hàm Print
print cũng là một language construct, và có thể sử dụng có dấu hoặc không dấu: print or
print().
Display Strings
Ví dụ dưới đây chỉ ra bằng cách nào hiển thị chuỗi khác nhau với lệnh print ( cho phép
chuỗi chứa các thẻ HTML)
Example
print "

PHP is fun!

";
print "Hello world!
";
print "I'm about to learn PHP!";
?>

Ví dụ dưới chỉ ra bằng cách nào hiển thị chuỗi và biến với lệnh print:
$txt1="Learn PHP";
$txt2="utehy.edu.vn";
$cars=array("Volvo","BMW","Toyota");
print $txt1;
print "
";
print "Study PHP at $txt2";
print "My car is a {$cars[0]}";
?>

24



3.3.2 Hàm Echo
echo là một language construct từ này sẽ giữ nguyên không dịch, nó sẽ cho phép sử dụng
có dấu hoặc không dấu ngoặc đơn: echo or echo().
Hiển thị xâu
Ví dụ dưới đây sẽ cho thấy làm thế nào để hiển thị chuỗi khác nhau với lệnh echo (cho
phép chuỗi chứa các thẻ HTML).
echo "

PHP is fun!

";
echo "Hello world!
";
echo "I'm about to learn PHP!
";
echo "This", " string", " was", " made", " with multiple parameters.";
?>

Hiển thị biến
Ví dụ dưới đây chỉ ra bằng cách nào hiển thị chuỗi và biến với lệnh echo:
$txt1="Learn PHP";
$txt2="W3Schools.com";
$cars=array("Volvo","BMW","Toyota");
echo $txt1;
echo "
";
echo "Study PHP at $txt2";
echo "My car is a {$cars[0]}";
?>

3.4 Nhúng trang PHP và trng trang PHP
3.4.1 Hàm Include và include_one
Hàm include() lấy tất cả text trong file đã chỉ định và sao chép chúng vào trong file có sử
dụng hàm include. Nếu có bất kì vấn đề gì trong quá trình nạp file, thì hàm include() sinh
ra một cảnh báo nhưng script vẫn tiếp tục thực thi.

Giả sử bạn muốn tạo một menu chung cho Website. Khi đó tạo một file là menu.php trong
htdocs với nội dung sau:


Giờ tạo một số trang tùy bạn và chèn file này để tạo header. Ví dụ, test.php có thể có nội
dung sau.
<html>
<body>
<?php include("menu.php"); ?>

Ví dụ minh họa cách include file trong PHP!


</body>
</html>

3.4.2 Hàm Require và Require_one
Hàm require() lấy tất cả text trong file đã chỉ định và sao chép chúng vào file có sử dụng
hàm require. Nếu có bất kì vấn đề gì xảy ra trong quá trình nạp file thì hàm require() sinh
ra một lỗi nghiêm trọng (Fatal Error) và ngăn chặn sự thực thi của script.
Vì vậy không có sự khác nhau nào giữa require() và include() ngoài việc chúng xử lý các
điều kiện lỗi. Chúng tôi khuyên khích bạn sử dụng hàm require() thay cho include(), bởi vì
script không nên tiếp tục thực thi nếu các file bị mất hay sai tên.

25


×