TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO BÀI TẬP LỚN
MÔN: CÁC HỆ THỐNG MÃ NGUỒN MỞ VÀ DI ĐỘNG
ĐỀ TÀI:
ỨNG DỤNG APACHE, PHP VÀ MYSQL TRONG
THIẾT KẾ WEB TRA CỨU ĐIỂM THI ĐẠI HỌC
Giảng viên hướng dẫn:
Nhóm thực hiện:
Lớp:
Hải phòng, tháng 05 năm 2017
1
MỤC LỤC
LỜI MỞ ĐẦU
Chương 1: GIỚI THIỆU CHUNG VỀ APACHE, PHP VÀ MYSQL
I. APACHE HTTP SERVER
1. Lịch sử phát triển
2. Cấu hình Apache
II.HỆ QUẢN TRỊ CSDL MySQL
1. MySQL là một hệ quản trị CSDL.
2. MySQL là một hệ quản trị CSDL quan hệ
3. MySQL là một phần mềm mã nguồn mở
4. Lý do dùng MySQL
5. Các đặc điểm về mặt kỹ thuật của MySQL
6. Ngôn ngữ MySQL
6.1. Khái niệm cơ sở dữ liệu, bảng, cột
6.2. Một số thuật ngữ trong ngôn ngữ MySQL
6.3. Kiểu dữ liệu trong MySQL
6.4. Những cú pháp cơ bản
III. Hypertext Preprocessor - PHP
1. Khái niệm PHP
2. Lịch sử của PHP
3. PHP có thể làm được những gì?
Chương 2: NGÔN NGỮ LẬP TRÌNH SCRIPT PHP
I. CẤU TRÚC CƠ BẢN
II. MỘT SỐ KHÁI NIỆM TRONG PHP
1. Biến trong PHP
2
2. Hằng trong PHP
3. Chuỗi trong PHP
III. KIỂU DỮ LIỆU TRONG PHP
IV. TOÁN TỬ VÀ CÁC BIỂU THỨC TRONG PHP
1. Toán tử trong PHP
1.1. Toán tử gán
1.2. Toán tử số học
1.3. Toán tử so sánh
1.4. Toán tử logic
1.5. Toán tử kết hợp
2. Các biểu thức cơ bản trong PHP
2.1. Biểu thức điều kiện
2.2. Vòng lặp
2.3. Biểu thức switch case
V. XỬ LÝ DỮ LIỆU TRÊN FORM TRONG PHP
V. KẾT HỢP PHP VÀ MYSQL
1. Kết nối cơ sở dữ liệu
2. Lựa chọn cơ sở dữ liệu
3. Thực thi câu lệnh truy vấn
4. Đếm số dòng dữ liệu trong bảng
5. Lấy dữ liệu từ bảng đưa vào mảng
6. Đóng kết nối cơ sở dữ liệu
Chương 3: ỨNG DỤNG APACHE, PHP, MYSQL TRONG THIẾT KẾ WEB
TRA CỨU ĐIỂM THI ĐẠI HỌC.............................................................
I. GIAO DIỆN WEBFORM
3
II. MỘT SỐ ĐOẠN CODE CHÍNH
1. Code webform truyền dữ liệu sang file ketqua.php để xử lý
2. Khai báo thông tin cơ sở dữ liệu
3. Kết nối cơ sở dữ liệu
4.
Xuất kết quả ra dưới dạng bảng
LỜI MỞ ĐẦU
Mã nguồn mở ra đời là một bước ngoặt lớn trong sự phát triển của ứng dụng
công nghệ thông tin. Ngày nay, các ứng dụng mã nguồn mở đã và đang trở thành một
phong trào phát triển cực kỳ mạnh mẽ, có ứng dụng thực tế trong nhiều lĩnh vực khác
nhau như kinh tế, an ninh, quốc phòng, học tập của sinh viên… Có thể nói trong tương
lai mã nguồn mở sẽ phát triển hơn nữa và dần thay thế mã nguồn đóng.
Một số lợi ích khi sử dụng phần mềm mã nguồn mở:
- Độc lập: Phần mềm mã nguồn mở không bị lệ thuộc vào bất kỳ nhà cung cấp
nào.
- Tính thích ứng và sáng tạo: Cho phép lập trình viên xác định và sửa lỗi cũng
như thích ứng phần mềm với các yêu cầu mới phát sinh, giúp nhà lập trình sang tạo ra
phần mềm của riêng mình.
- Làm chủ công nghệ, đảm bảo tính an toàn và riêng tư: Phần mềm mã nguồn
mở thường không là mục tiêu tấn công của virus. Không có gián điệp điện tử. Do nắm
được mà nguồn nên những người sử dụng hay những nhà phát triển làm chủ được
phần mềm, có khả năng thay đổi, bổ sung và phát triển.
- Chất lượng tin cậy: Các phần mềm mã nguồn mở khi đã hoàn thành sẽ được
thử nghiệm, đánh giá, phát hiện lỗi và bổ sung bởi nhiều nhà phát triển khác nhau.
- Tuân thủ các chuẩn và không bị hạn chế về quyền sử dụng.
- Tính tự do: Người sử dụng có thể bỏ qua các phiên bản phát triển chưa ổn
định để cài đặt những phiên bản hoàn chỉnh và ổn định hơn. Phần mềm mã nguồn mở
cũng cho phép mỗi người sử dụng tạo ra và duy trì những phiên bản đặc thù.
4
- Tính lâu dài: Kéo dài thời gian sử dụng/tái sử dụng các phần cứng, thiết bị
trong khi vẫn đảm bảo hiệu năng toàn hệ thống.
- Ngoài ra phần mềm mã nguồn mở là những phần mềm miễn phí kể cả các
phiên bản nâng cấp trong toàn bộ vòng đời sử dụng sản phẩm. Do đó giảm chi phí
đáng kể cho việc phát triển phần mềm để đáp ứng theo yêu cầu nghiệp vụ…
Apache, PHP, MySQL là các phần của chương trình phần mềm mã nguồn mở.
Phần mềm này là sự hợp tác của những lập trình viên có đầu óc. Bằng việc thay đổi
trên những mã nguồn có sẵn, các lập trình viên trên thế giới tiếp tục hoàn thiện và phát
triền nó ngày càng trở nên mạnh hơn và hiệu quả hơn. Sự đóng góp của những người
này được đưa ra công khai cho người khác sử dụng mã nguồn, tạo ra các phần mềm
nổi tiếng trên thế giới.
5
CHƯƠNG 1 : GIỚI THIỆU CHUNG VỀ
APACHE, PHP VÀ MYSQL
II/ APACHE HTTP SERVER
1_Lịch sử phát triển Apache HTTP Server
Apache hay là chương trình máy chủ HTTP là một chương trình dành cho
máy chủ đối thoại qua giao thức HTTP. Apache chạy trên các hệ điều hành
tương tự như Unix, Microsoft Windows, Novell Netware và các hệ điều hành
khác. Apache đóng một vai trò quan trọng trong quá trình phát triển của mạng
web thế giới (tiếng Anh: World Wide Web).
Khi được phát hành lần đầu, Apache là chương trình máy chủ mã nguồn
mở duy nhất có khả năng cạnh tranh với chương trình máy chủ tương tự của
Netscape Communications Corporation mà ngày nay được biết đến qua tên
thương mại Sun Java System Web Server. Từ đó trở đi, Apache đã không ngừng
tiến triển và trở thành một phần mềm có sức cạnh tranh mạnh so với các chương
trình máy chủ khác về mặt hiệu suất và tính năng phong phú. Từ tháng 4 năm
1996, Apache trở thành một chương trình máy chủ HTTP thông dụng nhất. Hơn
nữa, Apache thường được dùng để so sánh với các phần mềm khác có chức năng
tương tự. Tính đến tháng 1 năm 2007 thì Apache chiếm đến 60% thị trường các
chương trình phân phối trang webServer Apache ban đầu đã là một sự thành công
lớn, nhưng họ cho rằng mã ban đầu cần phải được kiểm tra kỹ lưỡng và thiết kế lại.
Trong suốt tháng 5 năm và tháng 6 năm 1995, Robert Thau đã thiết kế một kiến trúc
server mới( mã được đặt tên là Shambhala) nó bao gồm một cấu trúc module và API
cho việc mở rộng được tốt hơn.
Sau khi phát hành rộng rãi bản thử nghiệm beta, rất nhiều lỗ hổng trong các nền
khác nhau đã được tìm thấy, một tập tài liệu mới ( của David Robinson), và quá trình
thêm rất nhiều các chức năng trong dạng của các module chuẩn của họ, Apache 1.0 đã
được phát hành vào ngày1 tháng 12 năm 1995.
Theo đánh giá của Netcraft ( chỉ ra rằng ngày
nay Apache được sử dụng một cách rộng rãi hơn so với tất cả các web server đã được
tổng hợp.
6
2_Cấu hình Apache
• Toàn bộ cấu hình của Apache đều được lưu dưới dạng text.
• File cấu hình chính là httpd.conf nằm trong thư mục {apache_dir}\conf. Trong file
này có thể chứa các khai báo include đến những file cấu hình khác.
• Mỗi dòng trong file cấu hình đều mang 1 ý nghĩa
– Là khoảng trắng
– Là chú thích (bắt đầu bằng ký tự #)
– Là khai báo (gồm từ khóa và giá trị). Từ khóa và giá trị
• Toàn bộ tài liệu về Apache (bao gồm cả các khai báo cấu hình) đều được cài đặt (mặc
định) cùng với Apache. Có thể truy cập vào tài liệu này thông qua URL (có dấu / cuối
cùng) http://<tên máy/ IP>/manual/
• Thông thường URL trên sẽ bị vô hiệu hóa (mặc định) cho đến khi bỏ chú thích dòng
“Include conf/extra/httpd-manual.conf” trong file cấu hình chính (httpd.conf) và restart
lại Apache.
• Một số khai báo thường gặp khi cấu hình Apache:
– Listen: Khai báo web server sẽ được dùng tại IP nào và cổng nào. Có thể khai
báo nhiều lần
– LoadModule: Khai báo các module được nạp vào khi Apache khởi động. Nên
dùng để bỏ bớt các module không cần thiết hoặc nạp module do người dùng tự
viết.
– ServerName: Tên của server. Nếu Apache không tìm được tên của máy tính
qua DNS thì khai báo này bắt buộc phải có.
– DirectoryIndex: Khai báo các file mặc định
– AddDefaultCharset: Khai báo bảng mã mặc định của luồng siêu văn bản trả
về cho client.
– DocumentRoot: Thư mục gốc của web server. Cần lưu ý đến quyền của hệ
thống gán lên thư mục này đối với account dùng để chạy Apache.
7
– Directory: Là khai báo khối (bên trong chứa các khai báo con) dùng để định
nghĩa quy tắc ứng xử của Apache đối với từng thư mục.
– VirtualHost: Là khai báo khối, dùng để định nghĩa các web server ảo theo tên
trên một máy tính duy nhất.
– Alias: Dùng để tạo các thư mục ảo.
II_HỆ QUẢN TRỊ CSDL MySQL
MySQL, cơ sở dữ liệu SQL mã nguồn mở thông dụng nhất, được cung cấp bởi
MySQL AB. MySQL AB là một công ty thương mại thực hiện việc tạo ra các dịch vụ
cung cấp cho doanh nghiệp đó xung quanh cơ sở dữ liệu MySQL.
1_MySQL là một hệ quản trị CSDL.
Một CSDL là một tập hợp cấu trúc của dữ liệu. Nó có thể là bất kỳ một cái gì từ
một danh sách bán hàng đơn giản cho tới gallery ảnh hoặc số lượng lớn các thông tin
trong một mạng doanh nghiệp. Để thêm, truy nhập và xử lý dữ liệu được lưu trữ trong
một CSDL máy tính, ta cần một hệ quản trị CSDL như MySQL. Từ khi các máy tính
thực hiện tốt việc xử lý lượng lớn dữ liệu, quản trị CSDL đóng một vai trò chính yếu
trong việc tính toán, như là các công cụ đơn lẻ, hoặc một phần của các ứng dụng khác.
2_MySQL là một hệ quản trị CSDL quan hệ.
Một CSDL quan hệ lưu trữ dữ liệu trong trong một số bảng chuyên biệt tốt hơn
là việc đặt toàn bộ dữ liệu trong một nơi lưu trữlớn. Điều này làm tăng thêm tốc độ và
sự linh hoạt. Các bảng được liên kết với nhau bằng cách định nghĩa các quan hệ tạo
cho nó khả năng kết nối dữ liệu từ một vài bảng khác nhau theo yêu cầu. SQL là một
phần của MySQL trong “Structured Query Language”- ngôn ngữ chuẩn thông dụng
nhất được dùng để truy nhập các CSDL.
3_MySQL là một phần mềm mã nguồn mở
Mã nguồn mở có nghĩa là nó có thể được sử dụng bởi bất kỳ ai cho mục đích sử
dụng hoặc thay đổi nào. Bất kỳ ai cũng có thể download MySQL từ internet và sử
dụng nó mà không phải trả bất kỳ một thứ gì. Bất kỳ ai có ý thích cũng có thể nghiên
cứu mã nguồn và thay đổi chúng theo yêu cầu của riêng mình. MySQL dùng GPL
(GNU General Public License) ‘http:// www.gnu. Org’, để định ra ta có thể được làm
gì và không được làm gì với phần mềm trong các hoàn cảnh khác nhau. Nếu ta cảm
8
thấy khó chịu với GPL hoặc muốn nhúng MySQL trong một ứng dụng thương mại thì
ta có thể mua một bản quyền thương mại từ các nhà cung cấp.
5_Lý do dùng MySQL
MySQL rất nhanh, đáng tin cậy và dễ dàng để sử dụng. Nếu điều đó là cái mà
bạn đang mong muốn, bạn có thể dùng thử nó. MySQL cũng có một tập các đặc điểm
rất thiết thực được phát triển trong một sự hợp tác rất chặt chẽ với người sử dụng. Bạn
có thể đem so sánh một cách công phu giữa MySQL và một số hệ quản trị CSDL khác
trong trang web chấm điểm của nhà cung cấp.
MySQL đã được phát triển một cách sáng tạo để nắm bắt các CSDL rất lớn và nhanh
hơn rất nhiều các giải pháp hiện tại và đã thành công trong việc được sử dụng trong
các môi trường sản xuất đòi hỏi cao trong vài năm. Thông qua quá trình phát triển
không ngừng, ngày nay, MySQL cung cấp một tập các hàm rất hữu ích và dồi dào. Sự
kết nối, tốc độ và sự bảo mật đã làm cho MySQL trở nên thích ứng cao cho việc truy
cập các CSDL trên internet.
5_Các đặc điểm về mặt kỹ thuật của MySQL
MySQL là một hệ thống client/server bao gồm một SQL server đa luồng cho
phép hỗ trợ nhiều thiết bị đầu cuối khác nhau, một vài chương trình client khác nhau
và các thư viện, các công cụ quản trị và một vài giao diện lập trình.
Các nhà cung cấp cũng cung cấp MySQL như là một thư viện đa luồng mà ta có thể
kết nối trong ứng dụng của ta để đạt tới một sản phẩm nhỏ hơn, nhanh hơn, dễ dàng
quản lý hơn.
MySQL có nhiều các phần mềm được phân phối có sẵn.
Điều này thật sự thuận tiện cho ta trong việc tìm ứng dụng yêu thích của ta hoặc ngôn
ngữ hỗ trợ MySQL.
6_Ngôn ngữ MySQL
6.1_ Khái niệm cơ sở dữ liệu, bảng, cột
Cơ sở dữ liệu: là tên của cơ sở dữ liệu chúng ta muốn sử dụng
Bảng: là 1 bảng giá trị nằm trong cơ sở dữ liệu.
Cột: là 1 giá trị nằm trong bảng. Dùng để lưu trữ các trường dữ liệu.
9
Ví dụ:
Bảng user
User_id
User_name
User_password
User_email
01
Nguyen Van A
123456
Như vậy ta có thể hiểu như sau:
1 cơ sở dữ liệu có thể bao gồm nhiều bảng.
1 bảng có thể bao gồm nhiều cột
1 cột có thể có hoặc không có những thuộc tính.
6.2_Một số thuật ngữ trong ngôn ngữ MySQL:
NULL : Giá trị cho phép rỗng.
AUTO_INCREMENT : Cho phép giá trị tăng dần (tự động).
UNSIGNED : Phải là số nguyên dương
PRIMARY KEY : Cho phép nó là khóa chính trong bảng.
6.3_Kiểu dữ liệu trong MySQL:
6.4_Những cú pháp cơ bản:
Cú pháp tạo 1 cơ sở dữ liệu:
CREATE DATABASE tên_cơ_sở_dữ_liệu;
Cú pháp sử dụng cơ sở dữ liệu:
Use tên_database;
10
Cú pháp thoát khỏi cơ sở dữ liệu:
Exit
Cú pháp tạo 1 bảng trong cơ sở dữ liệu:
CREATE TABLE user (<tên_cột><mô_tả>,…,<tên_cột_n>…..<mô_tả_n>)
Ví dụ:
mysql> create table user(user_id INT(15) UNSIGNED NOT NULL
AUTO_INCREMENT, username VARCHAR(255) NOT NULL, password CHAR(50)
NOT NULL, email VARCHAR(200) NOT NULL, PRIMARY KEY (user_id));
Hiển thị có bao nhiều bảng:
show tables;
Hiển thị có bao nhiêu cột trong bảng:
show columns from table;
Thêm 1 cột vào bảng :
ALTER TABLE tên_bảng ADD <tên_cột><thuộc_tính> AFTER <tên_cột>
Ví dụ:
mysql> alter table user add sex varchar(200) NOT NULL after email;
Thêm giá trị vào bảng:
INSERT INTO Tên_bảng(tên_cột) VALUES(Giá_trị_tương_ứng);
Ví dụ:
mysql> insert into user(username,password,email,sex,home)
values(“Lanna”,”12345″,””,”F”,”www.abc.com”);
Truy xuất dữ liệu:
Cú pháp: SELECT tên_cột FROM Tên_bảng;
Ví dụ:
mysql> select user_id,username from user;
Truy xuất dữ liệu với điều kiện:
Cú pháp: SELECT tên_cột FROM Tên_bảng WHERE điều kiện;
Ví dụ:
mysql> select user_id,username from user where user_id=2;
Truy cập dữ liệu và sắp xếp theo trình tự
Cú pháp:
SELECT tên_cột FROM Tên_bảng
11
WHERE điều kiện (có thể có where hoặc không)
ORDER BY Theo quy ước sắp xếp.
Trong đó quy ước sắp xếp bao gồm hai thông số là ASC (từ trên xuống dưới), DESC
(từ dưới lên trên).
Ví dụ:
mysql> select user_id,username from user order by username ASC ;
Truy cập dữ liệu có giới hạn :
Cú pháp:
SELECT tên_cột FROM Tên_bảng
WHERE điều kiện (có thể có where hoặc không)
LIMIT vị trí bắt đầu, số record muốn lấy ra
Ví dụ:
mysql> select user_id,username from user order by username ASC limit 0,10 ;
Cập nhật dữ liệu trong bảng:
Cú pháp:
Update tên_bảng set tên_cột=Giá trị mới
WHERE (điều kiện).
Nếu không có ràng buộc điều kiện, chúng sẽ cập nhật toàn bộ giá trị mới của các
record trong bảng.
Ví dụ:
mysql> update user set email=”” where user_id=1 ;
Xóa dữ liệu trong bảng:
Cú pháp:
DELETE FROM tên_bảng WHERE (điều kiện).
Nếu không có ràng buộc điều kiện, chúng sẽ xó toàn bộ giá trị của các record trong
bảng.
12
III_Hypertext Preprocessor - PHP
1_Khái niệm PHP
PHP (một cách chính thức là “PHP: Hypertext Preprocessor”) là một ngôn ngữ
script được nhúng bên server HTML.
Ví dụ:
<html>
<head>
<title>Example</title>
</head>
<body>
echo "Hi, I'm a PHP script!";
?>
</body>
</html>
Chú ý về sự khác nhau của một script được viết bằng các ngôn ngữ khác nhau giống
như perl hoặc C - thay vì viết một chương trình với rất nhiều lệnh để xuất ra HTML, ta
viết một script HTML với một số mã nhúng để thực hiện một công việc gì đó ( trong
trường hợp này, đưa ra một số văn bản) . Mã PHP được đóng kín trong các tag bắt đầu
và các tag kết thúc đặc biệt cho phép ta nhảy vào và nhảy ra chế độ PHP.
Điều nhận ra PHP từ những gì giống JavaScript bên phía Client là mã chương trình
được thực hiện bên phía server. Nếu ta đã có một script giống như trên bên phía server
của ta, client sẽ nhận các kết quả từ việc chạy script đó, mà không còn cách nào để xác
định điều gì bên dưới mã lệnh. Thậm chí ta có thể cấu hình Webserver của ta để xử lý
tất cả các file HTML của ta với PHP, và vì vậy không còn cách nào mà những người
sử dụng có thể biết điều gì ta lên kế hoạch.
2_Lịch sử của PHP
PHP đã được nghĩ đến trong khoảng cuối năm 1995 bởi Rasmus Lerdorf. Các
phiên bản không phát hành trước đó đã được dùng trên chính trang chủ của anh ta để
theo dõi ai đang tìm bản lý lịch trực tuyến của anh ta. Phiên bản đầu tiên được dùng
13
bởi những người khác đã có sẵn trong khoảng thời gian trước năm 1995 và đã được
biết đến như là các công cụ trang chủ cá nhân. Nó bao gồm một bộ máy phân tích từ
loại một cách đơn giản mà chỉ được hiểu là một số ít các macro đặc biệt và một số các
tiện ích mà được dùng một cách thông dụng trên các trang chủ trước đó. Bộ phân tích
từ loại đã được viết lại vào giữa năm 1995 và có tên là PHP/FI phiên bản 2. FI có được
lạ do từ một gói khác của Rasmus đã được viết lại được biên dịch định dạng dữ liệu
HTML. Anh ta đã kết hợp các script các công cụ trang chủ cá nhân với trình biên dịch
form và thêm vào hỗ trợ mSQL và PHP/FI đã ra đời. PHP/FI đã phát triển lên một
cách đáng kinh ngạc và mọi người đã bắt đầu đóng góp mã cho nó.
Để thống kê một cách nghiêm khắc là một điều phức tạp, nhưng ước lượng khoảng
cuối năm 1996 PHP/FI đã được dùng trên ít nhất 15000 trang web trên khắp thế giới.
Khoảng giữa năm 1997 con số này đã tăng lên trên 50000 trang web. Giữa năm 1997
cũng đã thấy một sự thay đổi trong việc phát triển PHP. Nó thay đổi từ việc sở hữu dự
án cưng của Rasmus rằng một nhóm người đã đóng góp vào, để có thêm nhiều sự
thống nhất có trật tự của nhóm sao cho đạt hiệu quả cao.
Bộ phân tích từ loại đã được viết lại một cách hỗn tạp bởi Zeev Suraski và Andi
Gutmans và bộ phân tích từ loại mới này đã định hình nền tảng cho phiên bản 3 của
PHP. Nhiều mã tiện ích từ PHP/FI đã được dùng cho PHP3 và nhiều trong số đó đã
được viết lại một cách hoàn toàn.
Phiên bản PHP5 dùng bộ máy scripting Zend để phân phối sự thực hiện cao cấp hơn,
hỗ trợ một mảng các thư viện và các mở rộng của các hãng thứ 3 rộng rãi hơn và chạy
như là một module server địa phương với toàn bộ các web server được ưa chuộng.
Ngày nay, PHP 3 hoặc PHP 5 hiện tại chuyên chở một số lượng các sản phẩm thương
mại như web server Red Hat’s Stronghold. Ngày nay, theo ước lượng thì PHP được
dùng trong khoảng 5.1 triệu trang trên toàn thế giới và hơn cả IIS server của Microsoft
( khoảng 5.03 triệu trang)
3_PHP có thể làm được những gì ?
Tại hầu hết các mức cơ bản nhất, PHP có thể làm bất kỳ điều gì mà các chương
trình CGI khác có thể làm, ví dụ như tập hợp các dạng dữ liệu, sinh ra nội dung các
trang web động, hoặc gửi và nhận các cookie.
14
Có lẽ đặc điểm mạnh nhất và thuận tiện nhất trong PHP là nó hỗ trợ khả năng
rộng lớn các cơ sở dữ liệu. Viết một trang web có tương tác cơ sở dữ liệu trở nên đơn
giản một cách đáng kinh ngạc.
PHP cũng hỗ trợ cho việc “nói chuyện” với các dịch vụ khác sử dụng các thao
tác như IMAP, SNMP, NNTP, POP3, HTTP và vô số giao thức khác. Ta cũng có thể
mở các socket mạng mới và tương tác sử dụng các giao thức khác.
15
CHƯƠNG 2 : NGÔN NGỮ LẬP TRÌNH SCRIPT PHP
I. Cấu trúc cơ bản
PHP cũng có thẻ bắt đầu và kết thúc giống với ngôn ngữ HTML. Chỉ khác, đối với PHP
chúng ta có nhiều cách để thể hiện.
Cách 1 : Cú pháp chính:
<?php Mã lệnh PHP ?>
Cách 2: Cú pháp ngắn gọn
<? Mã lệnh PHP ?>
Trong PHP để kết thúc 1 dòng lệnh chúng ta sử dụng dấu “;”
Để chú thích 1 đoạn dữ liệu nào đó trong PHP ta sử dụng dấu “//” cho từng dòng. Hoặc
dùng cặp thẻ “/*……..*/” cho từng cụm mã lệnh.
Để xuất dữ liệu ra trình duyệt chúng ta có những dòng cú pháp sau :
+ Echo “Thông tin”;
+ Printf “Thông tin”;
Thông tin bao gồm : biến, chuỗi, hoặc lệnh HTML ….Nễu giữa hai chuỗi muốn liên kết
với nhau ta sử dụng dấu “.”
II_Một số khái niệm cơ bản trong PHP
1_ Biến trong PHP.
Biến được xem là vùng nhớ dữ liệu tạm thời. Và giá trị có thể thay đổi được. Biến được
bắt đầu bằng ký hiệu “$”. Và theo sau chúng là 1 từ, 1 cụm từ nhưng phải viết liền hoặc
có gạch dưới.
1 biến được xem là hợp lệ khi nó thỏa các yếu tố :
16
+ Tên của biến phải bắt đầu bằng dấu gạch dưới và theo sau là các ký tự, số hay dấu gạch
dưới.
+ Tên của biến không được phép trùng với các từ khóa của PHP.
Trong PHP để sử dụng 1 biến chúng ta thường phải khai báo trước, tuy nhiên đối với các
lập trình viên khi sử dụng họ thường xử lý cùng một lúc các công việc, nghĩa là vừa khái
báo vừa gán dữ liệu cho biến.Bản thân biến cũng có thể gãn cho các kiểu dữ liệu khác.
Và tùy theo ý định của người lập trình mong muốn trên chúng.
2_ Hằng trong PHP.
Nếu biến là cái có thể thay đổi được thì ngược lại hằng là cái chúng ta không thể thay đổi
được. Hằng trong PHP được định nghĩa bởi hàm define theo cú pháp: define (string
tên_hằng, giá_trị_hằng ).
Cũng giống với biến hằng được xem là hợp lệ thì chúng phải đáp ứng 1 số yếu tố :
+ Hằng không có dấu “$” ở trước tên.
+ Hằng có thể truy cập bất cứ vị trí nào trong mã lệnh
+ Hằng chỉ được phép gán giá trị duy nhất 1 lần.
+ Hằng thường viết bằng chữ in để phân biệt với biến
3_Chuỗi trong PHP.
Chuỗi là một nhóm các kỹ tự, số, khoảng trắng, dấu ngắt được đặt trong các dấu nháy.
Ví dụ:“welcome to VietNam”
Để tạo 1 biễn chuỗi, chúng ta phải gán giá trị chuỗi cho 1 biến hợp lệ.
Ví dụ:
$fisrt_name= “Nguyen”;
$last_name= ‘Van A’;
17
Để liên kết 1 chuỗi và 1 biến chúng ta thường sử dụng dấu “.”
III_Kiểu dữ liệu trong PHP
Các kiểu dữ liệu khác nhau chiếm các lượng bộ nhớ khác nhau và có thể được xử lý theo
cách khác nhau khi chúng được theo tác trong 1 script.
Trong PHP chúng ta có 6 kiểu dữ liệu chính như sau :
IV_Toán tử và các biểu thức căn bản trong PHP
Đối với mọi ngôn ngữ lập trình, toán tử và biểu thức luôn là những kiến thức cơ bản được
sử dụng để xử lý các thao tác trong giai đoạn lập trình. Và PHP cũng không ngoại lệ,
chúng vẫn có những kiến trúc cơ bản như một ngôn ngữ lập trình thông thường.
1_Toán tử trong PHP:
1.1- Toán tử gán:
Chúng ta đã từng tiếp xúc với toán tử này bởi việc khởi tạo 1 biến. Nó gồm ký tự đơn =.
Toán tử gán lấy giá trị của toán hạng bên phải gán nó vào toán hạng bên trái.
Ví dụ:
$name = “Johny Nguyen”;
1.2- Toán tử số học:
Là dạng phép tính giản đơn cộng, trừ, nhân, chia trong số học. Ngoài ra còn có phép chia
lấy dư (%). Được sử dụng để lấy ra đơn vị dư của 1 phép toán.
18
1.3- Toán tử so sánh:
Là toán tử được sử dụng để thực hiện các phép toán so sánh giữa hai số hạng. Chi tiết:
1.4- Toán tử logic:
Toán tử logic là các tổ hợp các giá trị boolean.
Ví dụ: toán tử or trở về true nếu toán tử trái hoặc toán tử phải là true.
True || false là true.
Ta có bảng các toán tử như sau:
19
1.5- Toán tử kết hợp:
Khi tạo mã PHP, chúng ta sẽ thường nhận thấy cần phải tăng hoặc giảm lượng biến một
số nguyên nào đó. Bạn sẽ thường thực hiện điều này khi chúng ta đếm 1 giá trị nào đó
trong vòng lặp.
2_ Các biểu thức cơ bản trong PHP:
2.1- Biểu thức điều kiện:
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.
20
Cú pháp:
If(Điều kiện)
{
hành động
}
2.2 – Vòng lặp trong php
a- While()….
Phép lặp này yêu cầu phải thỏa mãn điều kiện thì mới thực thi được vòng lặp
Cú pháp:
While(điều kiện)
{
Hành động – thực thi;
}
b-Do….while():
Phép lặp này sẽ thực thi hành động ít nhất là một lần. Sau đó mới tiến hành kiểm tra điều
kiện.
Cú pháp:
Do
{
21
Hành động thực thi;
}while(điều kiện)
c- For():
Phép lặp này là phép toán gộp các tham số. Giúp người lập trình giảm thiểu thời gian
phải khai báo biến và các tham số khi thực thi việc lặp dữ liệu.
Cú pháp:
For( giá trị ; điều kiện ; biến tăng hoặc giảm)
{ Hành động }
2.3- Biểu thức switch case:
Là biểu thức sử dụng để giảm thiểu quá trình xử lý dữ liệu nếu có quá nhiều phép toán if
else.
Cú pháp:
Switch(biến)
{
Case giá trị 1: Hành động; Break;
…………
Case giá trị N: Hành động; Break;
Default: Hành động; Break;
}
V_ Xử lý dữ liệu trên form trong PHP
22
Một trong những ứng dụng quan trọng của PHP đó là giúp tương tác xử lý dữ liệu
trên form của người sử dụng. Nhằm mục đích giúp cập nhật thông tin một cách linh động
và dễ dàng quản lý chung hơn bởi sự kết hợp tuyệt vời của cơ sở dữ liệu. Tuy nhiên để
làm được điều ấy PHP yêu cầu form phải đáp ứng 1 số quy định chung đặt ra. Một form
phải bao gồm:
Tên form để dễ dàng tách biệt với giá trị của chúng.
Action: hành động chuyển tiếp đến link xử lý.
Method: Là phương thức truyền bao gồm POST và GET.
Vậy làm cách nào để chúng ta lấy được giá trị vừa nhập liệu nào ?.
PHP cho phép ta lấy giá trị dựa vào 2 phương thức POST và GET.
Đới với POST ta có : $_POST[‘Giá trị’]
Đối với GET ta có : $_GET[‘Giá trị’]
Vậy với đoạn code trên có thể lấy được biến xử lý là : $_POST[‘username’];
Username là tên của field mà người sử dụng nhập liệu vào.
Phương thức GET:
Phương thức này cũng được dùng để lấy dữ liệu từ form nhập liệu. Tuy nhiên nhiệm vụ
chính của nó vẫn là lấy nội dung trang dữ liệu từ web server.
Ví dụ:
Với url sau: shownews.php?id=50
Vậy với trang shownews ta dùng hàm $_GET[‘id’] sẽ được giá trị là 50.
Phương thức POST:
Phương thức này được sử dụng để lấy dữ liệu từ form nhập liệu. Và chuyển chúng lên
trình chủ webserver.
23
VI_Kết hợp PHP và MySQL
Để làm việc với mysql và PHP chúng ta cần nắm 6 hàm cơ bản:
1- Kết nối cơ sở dữ liệu:
Cú pháp:
mysql_connect(“hostname”,”user”,”pass”)
2- Lựa chọn cơ sở dữ liệu:
Cú pháp:
mysql_select_db(“tên_CSDL”)
Ví dụ:
$conn=mysql_connect(“localhost”,”root”,”root”) or die(” khong the ket noi”);
mysql_select_db(“demo”);
3- Thực thi câu lệnh truy vấn:
Cú pháp:
mysql_query(“Câu truy vấn ở đây”);
4- Đếm số dòng dữ liệu trong bảng:
Cú pháp:
mysql_num_rows();
5- Lấy dữ liệu từ bảng đưa vào mảng:
Cú pháp:
mysql_fetch_array();
6- Đóng kết nối cơ sở dữ liệu:
24
Cú pháp:
mysql_close();
25