Giáo trình Căn bản PHP

1. GIỚI THIỆU PHP

PHP viết tắt của chữ Personal Home Page ra đời năm 1994 do phát minh của

Rasmus Lerdorf, và nó tiếp tục được phát triển bởi nhiều cá nhân và tập thể khác, do đó

PHP được xem như một sản phẩm của mã nguồn mở.

PHP là kịch bản trình chủ (server script) chạy trên phía server (server side) như

cách server script khác (asp, jsp, cold fusion).

PHP là kịch bản cho phép chúng ta xây dựng ứng dụng web trên mạng internet hay

intranet tương tác với mọi cơ sở dữ liệu như mySQL, PostgreSQL, Oracle, SQL Server và

Access.

Lưu ý rằng, từ phiên bản 4.0 trở về sau mới hỗ trợ session, ngoài ra PHP cũng như

Perl là kịch bảng xử lý chuỗi rất mạnh chính vì vậy bạn có thể sử dụng PHP trong những

có yêu cầu về xử lý chuỗi.

2. CÀI ĐẶT PHP

Cài đặt PHP trên nền Windows thì sử dụng php-4.0.6-Win32.zip, sau khi cài đặt

ứng dụng này trên đĩa cứng sẽ xuất hiện thư mục PHP, trong thự mục này sẽ có tập tin

php4ts.dll và php.exe cùng với thư mục sessiondata.

Ngoài ra, trong thư mục WINDOW hoặc WINNT sẽ xuất hiện tập tin php.ini, tập

tin này cho phép bạn cấu hình cho ứng dụng PHP. Chẳng hạn, khi sử dụng session, PHP

cần một nơi để lưu trữ chúng, trong tập tin này mặc định là session.save_path =

C:\PHP\sessiondata, nếu bạn cài đặt PHP với thư mục PHP trên đĩa D thì bạn cần thay

đổi đường dẫn trong khai báo này.

Tương tự như vậy, khi có lỗi trong trangPHP thì lỗi thường xuất hiện khi triệu gọi

chúng, để che dấu các lỗi này thì bạn cần khai báo display_errors = Off thay vì chúng ở

trạng thái display_errors = On.

Ngoài ra, trang PHP cũng có thể trình bày một số warning khi chúng phát hiện cú

pháp không hợp lý, chính vì vậy để che dấu các warning này thì bạn cũng cần khai báo

trạng thái Off thay vì On như assert.warning = Off.

 

pdf 142 trang kimcuc 7100
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Căn bản PHP", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Giáo trình Căn bản PHP

Giáo trình Căn bản PHP
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Môn học: PHP 
Bài 1 
Những vấn đề chính sẽ được đề cập trong bài học: 
9 Giới thiệu PHP 
9 Cấu hình IIS, Apache Web Server 
9 Cài đặt PHP. 
o Cài đặt PHP. 
o Cấu hình ứng dụng PHP 
9 Giới thiệu PHP. 
o PHP Script. 
o Ghi chú trong PHP 
o In nội dung bằng PHP 
1. GIỚI THIỆU PHP 
PHP viết tắt của chữ Personal Home Page ra đời năm 1994 do phát minh của 
Rasmus Lerdorf, và nó tiếp tục được phát triển bởi nhiều cá nhân và tập thể khác, do đó 
PHP được xem như một sản phẩm của mã nguồn mở. 
PHP là kịch bản trình chủ (server script) chạy trên phía server (server side) như 
cách server script khác (asp, jsp, cold fusion). 
PHP là kịch bản cho phép chúng ta xây dựng ứng dụng web trên mạng internet hay 
intranet tương tác với mọi cơ sở dữ liệu như mySQL, PostgreSQL, Oracle, SQL Server và 
Access. 
Lưu ý rằng, từ phiên bản 4.0 trở về sau mới hỗ trợ session, ngoài ra PHP cũng như 
Perl là kịch bảng xử lý chuỗi rất mạnh chính vì vậy bạn có thể sử dụng PHP trong những 
có yêu cầu về xử lý chuỗi. 
2. CÀI ĐẶT PHP 
Cài đặt PHP trên nền Windows thì sử dụng php-4.0.6-Win32.zip, sau khi cài đặt 
ứng dụng này trên đĩa cứng sẽ xuất hiện thư mục PHP, trong thự mục này sẽ có tập tin 
php4ts.dll và php.exe cùng với thư mục sessiondata. 
Ngoài ra, trong thư mục WINDOW hoặc WINNT sẽ xuất hiện tập tin php.ini, tập 
tin này cho phép bạn cấu hình cho ứng dụng PHP. Chẳng hạn, khi sử dụng session, PHP 
cần một nơi để lưu trữ chúng, trong tập tin này mặc định là session.save_path = 
C:\PHP\sessiondata, nếu bạn cài đặt PHP với thư mục PHP trên đĩa D thì bạn cần thay 
đổi đường dẫn trong khai báo này. 
Tương tự như vậy, khi có lỗi trong trangPHP thì lỗi thường xuất hiện khi triệu gọi 
chúng, để che dấu các lỗi này thì bạn cần khai báo display_errors = Off thay vì chúng ở 
trạng thái display_errors = On. 
Ngoài ra, trang PHP cũng có thể trình bày một số warning khi chúng phát hiện cú 
pháp không hợp lý, chính vì vậy để che dấu các warning này thì bạn cũng cần khai báo 
trạng thái Off thay vì On như assert.warning = Off. 
3. CẤU HÌNH ỨNG DỤNG PHP 
3.1. Cấu hình IIS 
Sau khi cài đặt hệ điều hành Windows NT hay 2000 trở về sau, bằng cách khai báo 
mới một web site hay virtual site trong một site đang có theo các bước như sau: 
1. Tạo một thư mục có tên myPHP đề lưu trữ các tập tin PHP 
2. Khởi động IIS (tự động khởi động nếu Windows NT/2000) 
Giáo viên: Phạm Hữu Khang 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
3. Chọn Start | Programs | Administrative Tools | Internet Information Server 
4. Nếu tạo virtual site thì chọn Default Web Ste | R-Click | New | Virtual Site 
5. Trong trường hợp tạo mới Site thì Default Web Ste | R-Click | New | Site 
6. Nếu chọn trường hợp 4 thì bạn cung tấp diễn giải của site như hình 1-1 
Hình 1-1: Khai báo diễn giải 
7. Chọn nút Next và khai báo IP và port, trong trường hợp bạn không sử dụng port 
80 cho ứng site khác thì chọn giá trị mặc định. Tuy nhiên nếu có nhiều ứng 
dụng trước đó đã cấu hình trong IIS thì bạn có thể thay đổi port khác, ví dụ 
chọn port 85 như hình 1-2. 
Hình 1-2: Khai báo IP và Port 
Lưu ý rằng, port 80 là port chuẩn điều này có nghĩa là khi triệu gọi trên trình 
duyệt bạn không cần gõ port, ví dụ  Đối với trường hợp port khác thì bạn 
phải gõ tương tự như  
Giáo viên: Phạm Hữu Khang 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
8. Chọn Next, bạn chọn thư mục của ứng dụng, đối với trường hợp này chúng ta 
chọn vào thư mục myPHP, chẳng hạn trong trường hợp này chúng ta chọn htư 
mục myPHP như hình 1-3. 
Hình 1-3: Chọn thư mục myPHP 
9. Kế đến chọn quyền truy cập web site, trong trường hợp đang thiết kế thì bạn 
chọn vào Browse. Ngoài ra, nếu bạn cho phép người sử dụng internet có thể 
thực thi tập tin thực thi từ xa thì chọn vào tuỳ chọn execute. 
Hình 1-4: Quyền truy cập 
10.Chọn Next và Finish, trong cửa sổ IIS xuất hiện ứng dụng có tên myPHP (khai 
báo trong phần diễn giải) như hình 1-5. 
Giáo viên: Phạm Hữu Khang 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Hình 1-5: Tạo thành công ứng dụng PHP trong IIS 
11.Sau khi tạo ứng dụng xong, bạn chọn tên ứng dụng myPHP | R-Click } 
Properties | cửa sổ xuất hiện như hình 1-5. 
Hình 1-5: Cấu hình PHP trong IIS 
12.Bằng cách chọn vào nút Configuration, cửa sổ sẽ xuất hiện như hình 1-6. 
Giáo viên: Phạm Hữu Khang 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Hình 1-6: Thêm PHP Engine 
13.Chọn nút Add, và khai báo như hình 1-7. 
Hình 1-7: Khai báo PHP Engine 
14.Để kiểm tra úng dụng, bạn mở cửa sổ IE và gõ trên thanh địa chỉ chuỗi như sau: 
 , kết quả xuất hiện như hình 1-8. 
Giáo viên: Phạm Hữu Khang 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Hình 1-8: Ứng dụng PHP đã được khởi động 
3.2.
4.
 Cài đặt Apache Web Servr 
Để cài đặt Apache Web Server, bạn theo các bước sau 
1. Chep tap tin apache_1.3.22-win32-x86.exe xuong dia cung 
2. Chay tap tin nay va cai dat len dia C:\Program Files\, sau khi ket thuc thanh 
cong phan cai dat Apache, bạn bắt đầu cấu hình ứng dụng PHP. 
3. Chép ba dòng lệnh từ tập tin install.txt trong thư mục C:\PHP 
 ScriptAlias /php/ "c:/php/" 
 AddType application/x-httpd-php .php 
 Action application/x-httpd-php "/php/php.exe" 
4. Paste vào tập tin httpd.conf trong thư mục C:\Program Files\Apache 
Group\Apache\Conf\ 
5. Chon Start | Programs | Apache HTTP Server | Control Apache Server | Start 
6. Viet trang test.php voi noi dung 
7. Chep tap tin test.php vao thu muc C:\Program Files\Apache 
Group\Apache\htdocs\ 
8. Sau đó gõ trên trình duyệt  
 GIỚI THIỆU PHP 
4.1. Yêu cầu 
PHP dựa trên cú pháp của ngôn ngữ lập trình C, chính vì vậy khi làm việc với PHP 
bạn phải là người có kiến thức về ngôn ngữ C, C++, Visual C. Nếu bạn xây dựng ứng 
dụng PHP có kết nối cơ sở dữ liệu thì kiến thức về cơ sở dữ liệu MySQL, SQL Server hay 
Oracle là điều cần thiết. 
Giáo viên: Phạm Hữu Khang 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
4.2. 
4.3.
4.4.
Giới thiệu 
PHP là kịch bản trình chủ (Server Script) được chạy trên nền PHP Engine, cùng 
với ứng dụng Web Server để quản lý chúng. Web Server thường sử dụng là IIS, Apache 
Web Server, ... 
 Thông dịch trang PHP 
Khi người sử dụng gọi trang PHP, Web Server triệu gọi PHP Engine để thông dịch 
(tương tự như ASP 3.0 chỉ thông dịch chứ không phải biên dịch) dịch trang PHP và trả về 
kết quả cho người sử dụng như hình 1-9. 
Hình 1-9: Quá trình thông dịch trang PHP 
Tập tin 
PHP 
Web 
Server 
PHP 
Engine 
P
Parse
Response 
Request 
Parse 
Request 
Response 
 Kịch bản (script) 
Nội dung của PHP có thể khai báo lẫn lộn với HTML, chính vì vậy bạn sử dụng cặp 
dấu giá để khai báo mã PHP. Chẳng hạn, chúng ta khai báo: 
 1-Giá trị biến Str: 
 2-Giá trị biến i: 
 3-Giá trị cũ thể: 
Chẳng hạn bạn khai báo trang hello.php với nội dung như ví dụ 1-1 sau: 
Ví dụ 1-1: Trang hello.php 
::Welcome to PHP 
 Greeting: 
Kết quả trả về như hình 1-10 khi triệu gọi trang này trên trình duyệt. 
Giáo viên: Phạm Hữu Khang 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Hình 1-10: Kết quả trang hello.php 
Trong trường hợp có nhiều khai báo, bạn sử dụng Scriptlet, đều này có nghĩa là sử 
dụng cặp dấu trên như với các khai báo PHP với cú pháp của C như 
sau: 
 <?php 
 $sotrang=$pagenumber; 
 $record=$rownumber; 
 $totalRows = 0; 
 $paging=""; 
 ?> 
 -Khai báo trên là Scriptlet 
 Giá trị của paging: 
 -Khai báo này là Script 
Lưu ý rằng, kết thúc mỗi câu lệnh phải dùng dấu ; 
Ví dụ, bạn khai báo đoạn PHP trên trong tập tin script.php như ví dụ 1-2 
Ví dụ 1-2: Trang script.php 
::Welcome to PHP 
 <?php 
 $sotrang=$pagenumber; 
 $record=$rownumber; 
 $totalRows = 0; 
 $paging="Go to 1 2 3 4 5 Next"; 
 ?> 
 Giá trị của paging: 
Kết quả trả về như hình 1-11 khi triệu gọi trang này trên trình duyệt. 
Giáo viên: Phạm Hữu Khang 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Hình 1-11: Kết quả trang hello.php 
Lưu ý rằng, nếu bạn muốn sử dụng script hay scriptlet như ASP thì bạn khai báo 
trong tập tin php.ini như sau: 
 asp_tags = On 
 ; Allow ASP-style tags. mặc định là Off 
Khi đó trong trang PHP, thay vì bạn khai báo 
 <?php 
 $sotrang=$pagenumber; 
 $record=$rownumber; 
 $totalRows = 0; 
 $paging=""; 
 ?> 
Thì bạn có thể khai báo như sau: 
 <% 
 $sotrang=$pagenumber; 
 $record=$rownumber; 
 $totalRows = 0; 
 $paging=""; 
 %> 
4.5. Ghi chú trong PHP 
Ghi chú trong kịch bản PHP tương tự ngôn ngữ lập trình C, để ghi chú một dòng 
thì bạn sử dụng cặp dấu /. Chẳng hạn khai báo sau là ghi chú: 
 <?php 
 // Khai báo biến để paging 
 $sotrang=$pagenumber; 
 $record=$rownumber; 
 $totalRows = 0; 
 $paging=""; 
 ?> 
Trong trường hợp có nhiều dòng cần ghi chú bạn sử dụng cặp dấu /* và */, ví dụ 
khai báo ghi chú như sau: 
Giáo viên: Phạm Hữu Khang 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
 /* 
 Khai báo biến để đọc dữ liệu 
 trong đó totalRows là biến trả 
 về tổng số mẩu tin 
 */ 
 $result = mysql_query($stSQL, $link); 
 $totalRows=mysql_num_rows($result); 
Ngoài ra, bạn cũng có thể sử dụng dấu # để khai báo ghi chú cho từng dòng, ví dụ 
khai báo sau là ghi chú: 
 <?php 
 # Khai báo biến để paging 
 $sotrang=$pagenumber; 
 $record=$rownumber; 
 $totalRows = 0; 
 $paging=""; 
 ?> 
4.6. In kết quả trên trang PHP 
Khác vớ các kịch bản như ASP, JSP, Perl, đối với PHP để in ra giá trị từ biến, biểu 
thức, hàm, giá trị cụ thể thỉ bạn có thể sử dụng script như trên: 
 Giá trị của paging: 
Tuy nhiên, để sử dụng cú pháp của PHP khi in ra giá trị từ biến, biểu thức, hàm, 
giá trị cụ thể thì sử dụng khai báo echo như sau: 
 <?php 
 $stSQLs=”select * from Customers”; 
 echo $stSQLs; 
 ?> 
Chẳng hạn, khai báo echo như ví dụ 1-3. 
Ví dụ 1-2: Trang echo.php 
::Welcome to PHP 
 <?php 
 $sotrang=$pagenumber; 
 $record=$rownumber; 
 $totalRows = 0; 
 $paging="Go to 1 2 3 4 5 Next"; 
 /*dùng phát biểu echo */ 
 echo “Giá trị của paging: “; 
 echo $paging; 
 ?> 
Kết quả trả về như hình 1-12 khi triệu gọi trang này trên trình duyệt. 
Giáo viên: Phạm Hữu Khang 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Hình 1-11: Kết quả trang hello.php 
5. KẾT LUẬN 
Trong bài này, chúng ta tập trung tìm hiểu cách cài đặt PHP và Apache Web 
Server, sau đó cấu hình ứng dụng PHP trong IIS hay sử dụng cấu hình mặc định của 
chúng. 
Ngoài ra, bạn làm quen cách khai báo mã PHP trong trang .php cùng với script hay 
scriptlet. 
Giáo viên: Phạm Hữu Khang 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Môn học: PHP 
Bài 2 
Bài học này chúng ta sẽ làm quen và tìm hiểu cú pháp và một 
số phương thức cơ bản của PHP: 
9 Câu lệnh. 
9 Kiểu dữ liệu và biến 
9 Khai báo và sử dụng hằng. 
9 Dữ liệu mảng 
9 Chuyển đổi kiểu dữ liệu 
1. KHÁI NIỆM VỀ CÚ PHÁP PHP 
Cú pháp PHP chính là cú pháp trong ngôn ngữ C, các bạn làm quen với ngôn ngữ C 
thì có lợi thế trong lập trình PHP. 
Để lập trình bằng ngôn ngữ PHP cần chú ý những điểm sau: 
™ Cuối câu lệnh có dấu ; 
™ Biến trong PHP có tiền tố là $ 
™ Mỗi phương thức đều bắt đầu { và đóng bằng dấu } 
™ Khi khai báo biến thì không có kiễu dữ liệu 
™ Nên có giá trị khởi đầu cho biến khai báo 
™ Phải có chi chú (comment) cho mỗi feature mới 
™ Sử dụng dấu // hoặc # để giải thích cho mỗi câu ghi chú 
™ Sử dụng /* và */ cho mỗi đoạn ghi chú 
™ Khai báo biến có phân biệt chữ hoa hay thường 
2. KHAI BÁO BIẾN 
Khi thực hiện khai báo biến trong C, bạn cần phải biết tuân thủ quy định như: kiễu 
dữ liệu trước tên biến và có giá trị khởi đầu, tuy nhiên khi làm việc với PHP thì không 
cần khai báo kiểu dữ liệu nhưng sử dụng tiền tố $ trước biến. 
Xuất phát từ những điều ở trên, khai báo biến trong PHP như sau: 
™ $variablename [=initial value]; 
$licount=0; 
$lsSQL=”Select * from tblusers where active=1”; 
$nameTypes = array("first", "last", "company"); 
$checkerror=false; 
™ Chẳng hạn, khai báo như ví dụ 2-1 (variables.php) 
::Welcome to PHP 
Giáo viên: Phạm Hữu Khang 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Variable 
<?php 
 $sotrang=10; 
 $record=5; 
 $check = true; 
 $strSQL="select * from tblCustomers"; 
 $myarr = array("first", "last", "company"); 
 $myarrs[2]; 
 $myarrs[0]="Number 0"; 
 $myarrs[1]="Number 1"; 
 $myarrs[2]="Number 2"; 
 echo $myarr[1];echo ""; 
 echo $myarrs[2]; 
?> 
3. KIỂU DỮ LIỆU 
Bảng các kiểu dữ liệu thông thường 
Boolean True hay false 
Integer giá trị lớn nhất xấp xỉ 2 tỷ 
Float ~1.8e308 gồm 14 số lẽ 
String Lưu chuỗi ký tự chiều dài vô hạn 
Object Kiểu đối tượng 
Array Mảng với nhiều kiểu dữ liệu 
3.1. Thay đổi kiểu dữ liệu 
Để thay đổi kiểu dữ liệu, bạn có thể sử dụng cách ép kiểu như trong các ngôn ngữ lập 
trình C hay Java. Chẳng hạn, khai báo ép kiểu như ví dụ 2-2 (box.php): 
::Welcome to PHP 
Variable 
<?php 
 $i="S10A"; 
 echo $i+10; 
 echo ""; 
 $i="10A"; 
 $j=(float)$i; 
 $j+=10; 
 echo $i; 
 echo ""; 
 echo $j; 
 echo ""; 
 $q=12;$p=5; 
 echo "Amount: ".(float)$q/$p; 
?> 
Giáo viên: Phạm Hữu Khang 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Lưu ý rằng, PHP tự động nhận biết giá trị chuỗi đằng sau số sẽ không được chuyển 
sang kiểu dữ liệu số như trường hợp trên. 
Ngoài ra, bạn có thể sử dụng hàm settype để chuyển đổi dữ liệu này sag dữ liệu khác, 
ví dụ chúng ta khai báo như ví dụ 2-3 (settype.php). 
::Welcome to PHP 
Change DataType of Variable 
<?php 
 $var="12-ABC"; 
 $check=true; 
 echo $var; 
 echo ""; 
 echo $check; 
 echo ""; 
 settype($var,"integer"); 
 echo $var; 
 echo ""; 
 settype($check,"string"); 
 echo $check; 
?> 
3.2. Kiểm tra kiểu dữ liệu của biến 
Để kiểm tra kiểu dữ liệu của biến, bạn sử dụng các hàm như sau: 
is_int để kiểm tra biến có kiểu integer, nếu biến có kiểu integer thì hàm sẽ trả về giá 
trị là true (1). Tương tự, bạn có thể sử dụng các hàm kiểm tra tương ứng với kiểu dữ 
liệu là is_array, is_bool, is_callable, is_double, is_float, is_int, is_integer, is_long, 
is_null, is_numeric, ... Them mau tin 
<?php 
 require("dbcon.php"); 
 $sql="insert into tblships values('A01','Testing')"; 
 $result = mysql_query($sql,$link); 
 $affectrow=0; 
 if($result) 
 $affectrow=mysql_affected_rows(); 
 mysql_close($link); 
?> 
So mau tin them vao 
Trong đó, bạn sử dụng hàm mysql_query với hai tham số là $sql và $link. Kết quả trả về là số 
mẩu tin thực thi. Ngoài ra, bạn có thể sử dụng đoạn kết nối cơ sở dữ liệu trong tập tin dbcon.php như 
ví dụ sau: 
 <?php 
 $link = mysql_connect ("localhost", "root", "") 
 or die ("Could not connect to MySQL Database"); 
 mysql_select_db("Test", $link); 
?> 
Trong trường hợp cho phép người sử dụng thêm mẩu tin thì bạn thiết kế form yêu cầu người sử 
dụng nhập hai giá trị sau đó submit đến trang kế tiếp để thực thi việc thêm gt sau đó submit đến 
trang kế tiếp để thực thi việc thêm giá trị vừa nhập vào cơ sở dữ liệu như hình 9-1. 
PHP VÀ DATABASE 9-3 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Hình 9-1: Thêm mẩu tin 
Để làm điều này, trước tiên bạn khai báo trang them.php, trong đó khai báo đoạn javascript để 
kiểm tra dữ liệu nhập như sau: 
 function checkInput() 
 { 
 if (document.frmPHP.txtID.value=="") 
 { 
 alert("Invalid ID, Please enter ID"); 
 document.frmPHP.txtID.focus(); 
 return false; 
 } 
 if (document.frmPHP.txtName.value=="") 
 { 
 alert("Please enter Name"); 
 document.frmPHP.txtName.focus(); 
 return false; 
 } 
 return true; 
 } 
Kế đến khai báo thể form và hai thẻ input lại text yêu cầu người sử dụng nnập ID và Name như 
sau: 
<form name="frmPHP" method="post" 
 action="doinsert.php" 
 onsubmit="return checkInput();"> 
 Please enter ID and Name 
 ID: 
 <input type="text" name="txtID" 
 size="25" maxlength="3" class="textbox"> 
PHP VÀ DATABASE 9-4 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
 Name: 
 <input type="text" name="txtName" 
 size="25" maxlength="50" class="textbox"> 
 <input type="submit" 
 value="Submit" class="button"> 
Lưu ý rằng, bạn khai báo số ký tự lớn nhất cho phép nhập bằng với kích thước đã khai báo 
trong cơ sở dữ liệu ứng với thuộc tính maxlength. 
Khi người sử dụng nhập hai giá trị và nhấn nút submit, trang kế tiếp đựơc triệu gọi. Trang này 
lấy giá trị nhập bằng cách sử dụng biến form hay $HTTP_POST_VARS. Đối với trường hợp này 
chúng ta sử dụng biến form như trang doinsert.php. 
::Welcome to PHP and mySQL 
Them mau tin 
<?php 
 $affectrow=0; 
 require("dbcon.php"); 
 $sql="insert into tblships(ShipID,ShipName) "; 
 $sql .=" values('".$txtID."','".$txtName."')"; 
 $result = mysql_query($sql,$link); 
 if($result) 
 $affectrow=mysql_affected_rows(); 
 mysql_close($link); 
?> 
So mau tin them vao 
3. CẬP NHẬT MẨU TIN 
Đối với trường hợp cập nhật mẩu tin, bạn cũng sử dụng hàm mysql_query với phát biểu Update 
thay ví Insert như trên, ví dụ chúng ta khai báo trang update.php để cập nhật mẩu tin trong bảng 
tblShips với tên là UpdateTesting khi mã có giá trị là A01. 
::Welcome to PHP and mySQL 
Cap nhat mau tin 
<?php 
 require("dbcon.php"); 
 $sql="Update tblships set ShipName='UpdateTesting' "; 
 $sql.=" where ShipID='A01'"; 
 $result = mysql_query($sql,$link); 
 $affectrow=0; 
 if($result) 
PHP VÀ DATABASE 9-5 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
 $affectrow=mysql_affected_rows(); 
 mysql_close($link); 
?> 
So mau tin cap nhat 
Lưu ý rằng, để biết số mẩu tin đã thực thi bởi phát biểu SQL bạn sử dụng hàm 
mysql_affected_rows. 
if($result) 
 $affectrow=mysql_affected_rows(); 
Tương tự như trên, bạn có thể thiết kế form cho phép người sử dụng cập nhật dữ liệu bằng cách 
thiết kế form yêu cầu người sử dụng nhập mã và tên cập nhận. 
Trước tiên thiết kế from cho phép nhập dữ liệu để cập nhật như ví dụ trang capnhat.php, sau 
khi học phần truy vấn xong, thaqy vì nhập mã bạn cho phép người sử dụng chọn trong danh sách đã 
có như hình 9-2. 
Hình 9-2: Cập nhật dữ liệu 
Sau khi người sử dụng nhấn nút submit, trang doupdate.php sẽ triệu gọi, kết quả trả về 1 hay 0 
mẩu tin. 
::Welcome to PHP and mySQL 
Cap nhat mau tin 
<?php 
 $affectrow=0; 
 require("dbcon.php"); 
 $sql="update tblships set ShipName='"; 
 $sql .=$txtName."' where ShipID='".$txtID."'"; 
 $result = mysql_query($sql,$link); 
 if($result) 
 $affectrow=mysql_affected_rows(); 
 mysql_close($link); 
?> 
PHP VÀ DATABASE 9-6 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
So mau tin cap nhat 
4. XOÁ MẨU TIN 
Tương tự như vậy khi xoá mẩu tin, bạn chỉ thay đổi phát biểu SQL dạng Delete như ví dụ trong 
tập tin delete.php. 
::Welcome to PHP and mySQL 
Xoa mau tin 
<?php 
 require("dbcon.php"); 
 $sql="Delete From tblships where ShipID='A01'"; 
 $result = mysql_query($sql,$link); 
 $affectrow=0; 
 if($result) 
 $affectrow=mysql_affected_rows(); 
 mysql_close($link); 
?> 
So mau tin da xoa 
Đối với trường hợp xoá thì đơn giản hơn, bạn cỉh cần biết được mã cần xoá, chính vì vậy trong 
trường hợp này chúng ta chỉ cần thiết kế trang cho phép nhập mã như hình 9-3. 
Hình 9-3: Xoá 1 mẩu tin 
Sau khi nhập mã cần xoá, nếu người sử dụng nhấn nút Delete lập tức trang dodelete.php sẽ 
triệu gọi và xoá mẩu tin tương ứng. 
::Welcome to PHP and mySQL 
PHP VÀ DATABASE 9-7 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Xoa mau tin 
<?php 
 $affectrow=0; 
 require("dbcon.php"); 
 $sql="delete from tblships "; 
 $sql .=" where ShipID='".$txtID."'"; 
 $result = mysql_query($sql,$link); 
 if($result) 
 $affectrow=mysql_affected_rows(); 
 mysql_close($link); 
?> 
So mau tin xoa 
5. TRUY VẤN DỮ LIỆU 
Để truy vấn dữ liệu bạn sử dụng hàm mysql_num_rows để biết được số mẩu tin trả về và hàm 
mysql_fetch_array để đọc từng mẩu tin và mảng sau đó trình bày giá trị từ mảng này. Chẳng hạn, 
chúng ta tạo một tập tin lietke.php dùng để liệt kê danh sách mẩu tin trong bảng tblShips như hình 
9-4. 
Hình 9-4: Liệt kê mẩu tin 
Để làm điều này, bạn khai báo đoạn chương trình đọc bảng dữ liệu tương tự như ví dụ sau: 
 <?php 
 require("dbcon.php"); 
 $totalRows = 0; 
 $stSQL ="select * from tblShips"; 
 $result = mysql_query($stSQL, $link); 
 $totalRows=mysql_num_rows($result); 
?> 
Sau đó, dùng hàm mysql_fetch_array để đọc từng mẩu tin và in ra như sau: 
 <?php 
 if($totalRows>0) 
 { 
 $i=0; 
 while ($row = mysql_fetch_array ($result)) 
 { 
 $i+=1; 
PHP VÀ DATABASE 9-8 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
 ?> 
Trong trường hợp số mẩu tin trả về là 0 thì in ra câu thông báo không tìm thấy như sau: 
 <?php 
 } 
}else{ 
 ?> 
   
 Oop! Ship not found! 
 <?php 
 } 
?> 
6. KẾT LUẬN 
Trong bài này, chúng ta tập trung tìm hiểu cách kết nối cơ sở dữ liệu, thêm, xoá cập nhật và 
liệt kê mẩu tin. Trong bài kế tiếp chúng ta tìm hiểu nhiều các trình bày dữ liệu, xoá mẩu tin theo 
dạng mảng. 
PHP VÀ DATABASE 9-1 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Môn học: PHP 
BÀI 10: XOÁ, CẬP NHẬT DỮ LIỆU DẠNG MẢNG 
Trong bài trước chúng ta đã làm quen với cách xoá mẩu tin trong cơ 
sở dữ liệu mySQL. Đối với trường hợp xoá một lúc nhiều mẩu tin, chúng ta 
phải xây dựng trang PHP có sử dụng thẻ input dạng checkbox. 
 Những vấn đề chính sẽ được đề cập trong bài học này 
9 Liệt kê dữ liệu dạng danh sách 
9 Xoá nhiều mẩu tin 
9 Cập nhật nhiều mẩu tin 
1. LIỆT KÊ DỮ LIỆU 
Để xoá nhiều mẩu tin cùng một lúc, trước tiên bạn khai báo trang PHP để liệt kê danh sách mẩu 
tin trong mảng dữ liệu chằng hạn, mỗi mẩu tin xuất hiện một checkbox tương ứng. Checkbox này 
có giá trị là mã nhận dạng của mẩu tin đó. Trong trường hợp này chúng ta dùng cột khoá của 
mã chuyển hàng (SubCateID) trong bảng tblSubCategories định nghĩa trong trang lietke.php như 
hình 10-1. 
PHP VÀ DATABASE 9-2 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Hình 10-1: Liệt kê danh sách lại sản phẩm 
Để cho phép lấy được nhiều giá trị chọn của sản phẩm như hình tren, bạn khai báo các checkbox 
này cùng tên (giả sử tên là chkid) và giá trị trị là SubCateID của mỗi sản phẩm như ví dụ 10-1 
trong trang lietke.php. 
<?php 
 if($totalRows>0) 
 { 
 $i=0; 
 while ($row = mysql_fetch_array ($result)) 
 { 
 $i+=1; 
 ?> 
 <input type=checkbox name=chkid 
 value=""> 
 "> 
 <?php 
 } 
 ?> 
 <input type=button value="New" 
 onclick="window.open('them.php',target='_main')"> 
 Tong so mau tin 
 <?php 
 }else{ 
 ?> 
     
 Oop! Ship not found! 
 <?php 
 } 
 ?> 
Trong đó, hai khai báo sau: 
Cho biết bạn submit từ trang nào và loại xoá nhiều mẩu tin hay một mẩu tin đối với bảng tương 
ứng. Mục đích của vấn đề này là trang delete sử dụng chung cho nhiều bảng khác nhau và từ trang 
liệt kê (xoá nhiều) hoặc từ trang edit (1 mẩu tin cụ thể). 
Ngoài ra, chúng ta khai báo để nhận giá trị chọn trên 
cách checkbox bằng cách khai báo đoạn javascript như sau: 
 function calculatechon() 
PHP VÀ DATABASE 9-3 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
 { 
 var strchon=""; 
 var alen=document.frmList.elements.length; 
 var buttons=1; 
 alen=(alen>buttons)?document.frmList.chkid.length:0; 
 if (alen>0) 
 { 
 for(var i=0;i<alen;i++) 
 if(document.frmList.chkid[i].checked==true) 
 strchon+=document.frmList.chkid[i].value+","; 
 }else 
 { 
 if(document.frmList.chkid.checked==true) 
 strchon=document.frmList.chkid.value; 
 } 
 document.frmList.chon.value=strchon; 
 return isok(); 
 } 
Tuy nhiên, do nhiều loại sản phẩm thuộc các nhóm sản phẩm khác nhau, chính vì vậy bạn khai báo 
danh sách nhóm sản phẩm trên thẻ select cho phép người sử dụng liệt kê sách theo nhóm sản 
phẩm như hình 10-2. 
Hình 10-2: Liệt kê danh sách loại sách 
Để liệt kê danh sách nhóm trong bảng tblCategories, bằng cách khai báo phương thức nhận chuỗi 
SQL dạng Select và giá trị mặc định trả về nhiều phần tử thẻ option trong tập tin database.php 
như ví dụ 10-2. 
PHP VÀ DATABASE 9-4 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
function optionselected($stSQL,$item,$links) 
{ 
 $results = mysql_query($stSQL, $links); 
 $totalRows=mysql_num_rows($results); 
 $strOption=""; 
 $strOption .="--Select--"; 
 if($totalRows>0) 
 { 
 while ($row = mysql_fetch_array ($results)) 
 { 
 $strOption .="<option value=\"" ; 
 $strOption .=$row["ID"]."\""; 
 if($row["ID"]==$item) 
 $strOption .=" selected "; 
 $strOption .= ">".$row["Name"]; 
 $strOption .=""; 
 } 
 } 
 return $strOption; 
} 
Sau đó, gọi phương thức này trong trang lietketheonhom.php như ví dụ 10-3. 
<?php 
 require("dbcon.php"); 
 require("database.php"); 
 $id=""; 
 if (isset($cateid)) 
 $id=$cateid; 
 $stSQL ="select CateID As ID, CateName as Name from tblCategories "; 
 $result = mysql_query($stSQL, $link); 
 $totalRows=mysql_num_rows($result); 
 $strOption=optionselected($stSQL,$id,$link); 
?> 
 Category: 
   
Lần đầu tiên bạn có thể chọn mặc định một nhóm hoặc liệt kê tất cả, khi người sử dụng chọn nhóm 
sản phẩm nào đó thì trang lietketheonhom.php sẽ liệt kê danh sách loại sách của nhóm sách đó. 
Để làm điều này, bạn khai báo thẻ form với thẻ select như ví dụ 10-4. 
 Category: 
   
Khi người sử dụng chọn các mẩu tin như hình 10-2 và nhấn nút Delete, dựa vào giá trị của nút có 
tên action (trong trường hợp này là Delete), bạn có thể khai báo biến để lấy giá trị chọn bằng cách 
khai báo như ví dụ 10-5. 
 $strid=$chon; 
PHP VÀ DATABASE 9-5 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
 $strid=str_replace(",","','",$strid); 
Dựa vào thẻ hidden khai báo trong các trang trình bày danh sách (chẳng ạn lietketheonhom.php) 
mẩu tin như sau: 
Bạn có thể biết từ trang nào gọi đến trang dodelete.php để quay trở về khi thực hiện xong tác vụ xử 
lý. 
Ngoài ra, dựa vào giá trị của nút action để thực hiện phát biểu SQL. Chẳng hạn, trong trường hợp 
này nếu người sử dụng nhấn hút Delete thì bạn khai báo như ví dụ 10-6 sau: 
switch($strfrom) 
 { 
 case "subcategories": 
 $stSQL ="delete from tblsubcategories where SubCateID in('".$strid."')"; 
 $strlocation="Location:lietketheonhom.php"; 
 break; 
 case "categories": 
 $stSQL ="delete from tblcategories where CateID in('".$strid."')"; 
 $strlocation="Location:nhom.php"; 
 break; 
 } 
Sau đó, bạn có thể thực thi phát biểu SQL vừa khai báo ở trên như ví dụ 10-7. 
 if($stSQL!="") 
 { 
 $result = mysql_query($stSQL, $link); 
 } 
Lưu ý rằng, bạn cũng nên khai báo try catch trong khi làm việc với cơ sở dữ liệu. Ngoài ra, bạn 
cũng phải xác nhận trước khi thực thi hành động xoá mẩu tin chọn bằng cách khai báo đoạn 
Javascript như sau: 
function isok() 
 { 
 return confirm('Are you sure to delete?'); 
 } 
Sau đó gọi trong biến cố onsubmit của form như sau: 
2. CẬP NHẬT NHIỀU MẨU TIN 
Tương tự như trường hợp Delete, khi bạn duyệt (approval) một số mẩu tin theo một cột dữ liệu nào 
đó, chẳng hạn, trong trường hợp này chúng ta cho phép sử dụng những sản phẩm đã qua sự đồng ý 
của nhà quản lý thì cột dữ liệu Activate của bảng tbltems có giá trị là 1. 
Để làm điều này, trước tiên bạn liệt kê danh sách sản phẩm như hình 10-3. 
PHP VÀ DATABASE 9-6 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Hình 10-3: Liệt kê danh sách sản phẩm duyệt hay chưa 
Tương tự như trong trường hợp delete, bạn khai báo trang doUpdate như sau: 
::Welcome to PHP and mySQL 
Cap nhat mau tin 
<?php 
require("dbcon.php"); 
$strid=$chon; 
$strid=str_replace(",","','",$strid); 
$strfrom=""; 
if(isset($from_)) 
 { 
 $strfrom=$HTTP_POST_VARS{"from_"}; 
 } 
$strtype=""; 
if(isset($type)) 
 { 
 $strtype=$HTTP_POST_VARS{"type"}; 
 } 
$stSQL=""; 
if($strfrom"") 
{ 
 switch($strfrom) 
 { 
 case "items": 
 $stSQL ="update tblItems set Activate=1 where ItemID 
in('".$strid."')"; 
PHP VÀ DATABASE 9-7 
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
 break; 
 } 
 if($stSQL!="") 
 { 
 $result = mysql_query($stSQL, $link); 
 if($result) 
 $affectrow=mysql_affected_rows(); 
 mysql_close($link); 
 } 
} 
?> 
So mau tin cap nhat 
3. KẾT LUẬN 
Trong bài này, chúng ta tìm hiểu chức năng xoá, cập nhật nhiều mẩu tin bằng cách sử dụng thẻ 
input loại checkbox cùng tên và khác giá trị, bài kế tiếp chúng ta tiếp tục tìm hiểu về chức năng 
đăng nhập trong PHP. 

File đính kèm:

  • pdfgiao_trinh_can_ban_php.pdf