Weitere Ă€hnliche Inhalte Ăhnlich wie Haiphongit.com.tai lieu-laptrinh ph-pvamysql (20) Mehr von Giang Nguyá»
n (20) Haiphongit.com.tai lieu-laptrinh ph-pvamysql1. Ban chĂ ÂźÂčo c«ng nghĂ th«ng tin cña cÂŹ quanMySQL
Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP &
٦ng
***
T”I liĂu tham kh¶o
Ng«n ngĂ· lĂp trĂnh pHP
H” néi, 2003
1
2. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
PhĂn I : GiĂi thiĂu ng«n ngĂ· lĂp trĂnh PHP
châÂŹng i : Ng«n ngĂ· lĂp trĂnh pHP
I. GiĂi thiĂu PHP v” m«i trâĂȘng lĂp trĂnh web.
1. PHP l” gà ?
Cži tÂȘn PHP ban ÂźĂu ÂźâĂźc viĂt tŸt bĂ«i cĂŽm tĂ” Personal Home Page, v”
ÂźâĂźc phžt triĂn tĂ” nšm 1994 bĂ«i Rasmus Lerdorf. LĂłc ÂźĂu chĂ l” mĂ©t bĂ© ÂźĂc
t¶ Perl, ÂźâĂźc sö dĂŽng Ÿà lâu dĂu vĂt ngâĂȘi dĂŻng trÂȘn cžc trang web. Sau Ÿã,
Rasmus Lerdorf Ÿ· phžt triĂn PHP nhâ l” mĂ©t mžy ÂźĂc t¶ (Scripting engine).
V”o giĂ·a nšm 1997, PHP Ÿ· ÂźâĂźc phžt triĂn nhanh chĂŁng trong sĂč yÂȘu thĂch
cña nhiĂu ngâĂȘi. PHP Ÿ· kh«ng cĂn l” mĂ©t dĂč žn cž nh©n cña Rasmus
Lerdorf v” Ÿ· trë th”nh mét c«ng nghà web quan trÀng. Zeev Suraski v”
Andi Gutmans Ÿ· ho”n thiĂn viĂc ph©n tĂch cĂł phžp cho ng«n ngĂ· Ÿà rĂ„i
thžng 6 nšm 1998, PHP3 Ÿ· ra ÂźĂȘi (phiÂȘn b¶n n”y cĂŁ phĂn mĂ« rĂ©ng l”
*.php3). Cho ÂźĂn tĂn thĂȘi ÂźiĂm Ÿã, PHP châa mĂ©t lĂn ÂźâĂźc phžt triĂn chĂnh
thĂžc, mĂ©t yÂȘu cĂu viĂt lÂči bĂ© ÂźĂc t¶ ÂźâĂźc Âźâa ra, ngay sau Ÿã PHP4 ra ÂźĂȘi
(phiÂȘn b¶n n”y cĂŁ phĂn mĂ« rĂ©ng kh«ng ph¶i l” *.php4 m” l” *.php). PHP4
nhanh hÂŹn so vĂi PHP3 rĂt nhiĂu. PHP b©y giĂȘ ÂźâĂźc gĂ€i l” PHP Hypertext
PreProcesor.
2. TÂči sao ph¶i sö dĂŽng PHP
Nhâ chĂłng ta Ÿ· biĂt, cĂŁ rĂt nhiĂu trang web ÂźâĂźc x©y dĂčng bĂ«i ng«n
ng÷ HTML (HyperText Markup Language). §©y chà l” nh÷ng trang web
tĂnh, nghĂa l” chĂłng chĂ chĂža ÂźĂčng mĂ©t nĂ©i dung cĂŽ thĂ vĂi nhĂ·ng dĂng všn
b¶n Ÿn thuĂn, hĂnh ¶nh ,v” cĂŁ thĂ ÂźâĂźc sĂč hç trĂź bĂ«i ng«n ngĂ· JavaScript,
hoĂc Java Apple. NhĂ·ng trang web nhâ vĂy ngâĂȘi ta thâĂȘng gĂ€i l” client-
side. Tuy nhiÂȘn, Internet v” Intranets Ÿ· ÂźâĂźc sö dĂŽng cho cžc Ăžng dĂŽng cĂn
tĂi cÂŹ sĂ« dĂ· liĂu. Cžc trang Ăžng dĂŽng nhâ vĂy ÂźâĂźc gĂ€i l” trang web Ÿéng,
bĂ«i vĂ nĂ©i dung cña chĂłng lu«n thay ŸÊi tĂŻy thuĂ©c v”o dĂ· liĂu v” ngâĂȘi sö
dĂŽng. PHP l” ng«n ngĂ· l”m ÂźâĂźc nhĂ·ng ÂźiĂu nhâ vĂy. B»ng cžch chÂčy
châÂŹng trĂnh PHP trÂȘn mžy chñ Web server, bÂčn cĂŁ thĂ tÂčo ra cžc Ăžng dĂŽng
2
3. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
cĂŁ sĂč tâÂŹng tžc vĂi cÂŹ sĂ« dĂ· liĂu Ÿà tÂčo ra nhĂ·ng trang web v” Ÿ©y ÂźâĂźc gĂ€i
l” trang web Ÿéng.
ChĂłng ta h·y xem xĂt cžch hoÂčt Ÿéng
cña trang web ÂźâĂźc viĂt b»ng ng«n ngĂ· HTML
v” PHP nhâ thĂ n”o.
Web server
VĂi cžc trang HTML : + Äá»c yĂȘu cáș§u từ browser
+ TĂŹm file.htm trĂȘn server
Khi cĂŁ yÂȘu cĂu tĂi mĂ©t trang web tĂ” + Gá»i láșĄi cáșŁ file.htm cho browser
phĂa ngâĂȘi sö dĂŽng (browser). Web server
thĂčc hiĂu ba bâĂc sau :
+ §Àc yÂȘu cĂu tĂ” phĂa browser,
Request
+ TĂm trang web trÂȘn server.
http://domain/file.htm
+ Göi trang web Ÿã trĂ« lÂči cho
browser (nĂu tĂm thĂy)
qua mÂčng Internet hoĂc Intranet . Trang html
VĂi cžc trang PHP :
Khžc vĂi cžc trang HTML, khi mĂ©t trang PHP ÂźâĂźc yÂȘu cĂu, web
server ph©n tĂch v” thi h”nh cžc ÂźoÂčn m· PHP
Ÿà tÂčo ra trang HTML. Web server
+ Äá»c yĂȘu cáș§u từ browser
§iĂu Ÿã ÂźâĂźc thĂ hiĂn b»ng bĂšn bâĂc sau : + TĂŹm trang web(file.php) trĂȘn server
+ §Àc yÂȘu cĂu tö phĂa browser. + Thá»±c hiá»n cĂĄc ÄoáșĄn mĂŁ PHP
+ Gá»i tráșŁ láșĄi ná»i dung cho browser
+ TĂm trang web trÂȘn server.
+ ThĂčc hiĂn cžc ÂźoÂčn m· PHP trÂȘn trang web Ÿã Ÿà söa
ŸÊi néi dung cña trang.
+ Göi trĂ« lÂči nĂ©i dung cho browser (Ÿ©y l” trang HTML
cĂŁ thĂ hiĂn thĂ ÂźâĂźc bĂ«i trĂnh duyĂt Internet Explorer
hoĂc trĂnh duyĂt n”o Ÿã). Káșżt xuáș„t
TĂŁm lÂči, sĂč khžc nhau giĂ·a HTML v” PHP
l” HTML kh«ng ÂźâĂźc thĂčc hiĂn trÂȘn mžy
Request
chñ Web server cĂn cžc trang *.php http://domain/file.php
viĂt b»ng cžc ÂźoÂčn m· PHP ÂźâĂźc thĂčc hiĂn
trÂȘn mžy chñ Web server do Ÿã nĂŁ linh Ÿéng v” mĂm dĂo hÂŹn .
3
4. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
3. NhĂ·ng ÂźiĂm mÂčnh cña PHP
-PHP thĂčc hiĂn vĂi tĂšc Ÿé rĂt nhanh v” hiĂu qu¶ .MĂ©t Server bĂnh thâĂȘng
cĂŁ thà Ÿžp Ăžng ÂźâĂźc h”ng triĂu truy cĂp tĂi trong mĂ©t ng”y.
PHP hç trĂź kĂt nĂši tĂi rĂt nhiĂu hĂ CSDL khžc nhau:
PostgreSQL,mSQL,Oracle, dbm, filePro ,Hyperware, informix,InterBase,
Sybase, ... Ngo”i ra cĂn hç trĂź kĂt nĂši vĂi ODBC th«ng qua Ÿã cĂŁ thĂ kĂt
nĂši vĂi nhiĂu ng«n ngĂ· khžc m” ODBC hç trĂź.
-PHP cung cĂp mĂ©t hĂ thĂšng thâ viĂn phong phĂł : Do PHP ngay tĂ” ÂźĂu
ÂźâĂźc thiĂt kĂ nh»m mĂŽc ÂźĂch x©y dĂčng v” phžt triĂn cžc Ăžng dĂŽng trÂȘn
web nÂȘn PHP cung cĂp rĂt nhiĂu h”m x©y dĂčng sÂœn giĂłp thĂčc hiĂn cžc
c«ng viĂc rĂt dĂ d”ng : göi, nhĂn mail ,l”m viĂc vĂi cžc cookie, v” nhiĂu
thÞ khžc n÷a .
-PHP l” mĂ©t ng«n ngĂ· rĂt dĂ dĂŻng, dĂ hĂ€c v” Ÿn gi¶n hÂŹn nhiĂu so vĂi
cžc ng«n ngĂ· khžc nhâ Perl, Java. NĂu bÂčn Ÿ· biĂt ng«n ngĂ· C thĂ mĂ€i
viĂc sĂ ho”n to”n thuĂn lĂźi .
-PHP cĂŁ thĂ sö dĂŽng ÂźâĂźc trÂȘn nhiĂu hĂ ÂźiĂu h”nh, chĂłng ta cĂŁ thĂ viĂt
chĂłng trÂȘn Unix, Lunix v” cžc phiÂȘn b¶n cña Windows. V” cĂŁ thĂ Âźem
m· PHP n”y chÂčy trÂȘn cžc hĂ ÂźiĂu h”nh khžc m” kh«ng ph¶i söa ŸÊi lÂči
m·.
-PHP l” ng«n ng÷ m· nguÄn më.
II. BiĂn, h»ng sĂš v” kiĂu dĂ· liĂu trong PHP.
1. KiĂu dĂ· liÂȘu .
PHP cĂŁ ba kiĂu dĂ· liĂu cÂŹ b¶n : interger, double v” string. Ngo”i ra cĂn
cĂŁ cžc kiĂu dĂ· liĂu khžc (nhâng kh«ng ph¶i cžc kiĂu dĂ· liĂu cÂŹ b¶n) nhâ
arrays (cžc kiĂu dĂ· liĂu m¶ng), objects (cžc kiĂu dĂ· liĂu ŸÚi tâĂźng).
Interger l” kiĂu chiĂm 4 byte bĂ© nhĂ ,giž trĂ cña nĂŁ trong kho¶ng â2 tĂ»
tĂi + 2 tĂ». KiĂu Double l” kiĂu sĂš thĂčc ,phÂčm vi biĂu diĂn ± (10-308 Ă· 10308).
KiĂu string dĂŻng Ÿà chĂža cžc giž trĂ bao gĂ„m cžc kĂœ tĂč v” con sĂš .
VĂ dĂŽ : 2 // Ÿ©y l” kiĂu interger
1.0 // Ÿ©y l” kiĂu double
â2â // Ÿ©y l” kiĂu string
4
5. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
â2 hoursâ // Ÿ©y l” mĂ©t kiĂu string khžc
2. H»ng sÚ
H»ng sĂš l” nhĂ·ng giž trĂ kh«ng ŸÊi. ChĂłng ta thâĂȘng dĂŻng h»ng sĂš ÂźĂ
lâu cžc giž trĂ kh«ng ŸÊi trong suĂšt châÂŹng trĂnh nhâ : nhiĂt Ÿé (00C), cžc giž
trĂ thĂȘi gian chĂ sĂč chuyĂn giao giĂ·a sžng ,châa ,chiĂu ,tĂši ...
a. Khai bžo h»ng sÚ :
Ta dïng h”m define() Ÿà khai bžo h»ng sÚ :
define(âCOMPANYâ, âPhopâs Bicyclesâ);
define(âYELLOWâ, â#FFFF00â);
define(âVERSIONâ, 4);
define(âNLâ, â<BR>nâ);
Trong vĂ dĂŽ trÂȘn chĂłng ta Ÿ· dĂŻng h”m define() Ÿà khai bžo h»ng sĂš
NL. H»ng sĂš n”y l” mĂ©t thĂ ngŸt dĂng trong HTML.
ChĂłng ta sĂ sö dĂŽng cžc h»ng sĂš trong PHP nhâ sau :
echo (âEmployment at â. COMPANY. NL);
Cžch viĂt trÂȘn cĂČng giĂšng nhâ cžc viĂt sau:
echo (âEmployment at Phopâs Bicycles<BR>nâ);
ChĂł Ăœ : h»ng sĂš ph¶i Ă« ngo”i hai dĂu â v” â. TrĂȘng hĂźp sau l” kh«ng cĂŁ
hiĂu lĂčc : echo (âEmployment at COMPANY NLâ);. Khi thĂčc hiĂn nĂŁ sĂ cho
kĂt qu¶ l” : âEmployment at COMPANY NLâ.
H”m defined() : h”m n”y dĂŻng Ÿà kiĂm tra xem mĂ©t h»ng sĂš n”o Ÿã
Ÿ· ÂźâĂźc khai bžo châa.
VĂ dĂŽ : if ( defined (âYELLOWâ)) {
echo (â<BODY BGCOLOR=â. YELLOW. â>nâ);
}
5
6. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
b. Cžc h»ng sĂš Ÿ· ÂźâĂźc ÂźĂnh nghĂa trong PHP (Built-in Constants):
§à hç trĂź cho ngâĂȘi lĂp trĂnh, PHP cung cĂp sÂœn cžc h»ng sĂš nhâ : cžc
biĂn m«i trĂȘng, cžc biĂn cña Web server Apache ... NgĂȘi lĂp trĂnh cĂŁ thĂ sö
dÎng h”m phpinfo() Ÿà xem cžc giž trà n”y.
<HTML>
<!âphpinfo() -->
<BODY>
<?php phpinfo(); ?>
</BOCY>
</HTML>
+ H»ng sĂš nguyÂȘn : Ÿ©y l” nhĂ·ng giž trĂ cĂŁ kiĂu integer. VĂ dĂŽ : 10
+ H»ng sĂš thĂčc: Ÿ©y l” nhĂ·ng giž trĂ cĂŁ kiĂu double. VĂ dĂŽ : 10.00
+ HŸng kĂœ tĂč : Ÿ©y l” mĂ©t x©u kĂœ tĂč ÂźĂt trong dĂu ngoĂc Ÿn hoĂc
kĂp.
VĂ dĂŽ : âNg«n ngĂ· lĂp trĂnh PHPâ.
6
7. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
3. BiĂn v” giž trĂ logic.
+ CĂČng giĂšng vĂi C/C++, PHP kh«ng cĂŁ khži niĂm TRUE v” FALSE.
Cžc giž trĂ TRUE ÂźâĂźc hiĂu l” nhĂ·ng giž trĂ b»ng 1 v” giž trĂ FALSE l”
nhĂ·ng giž trĂ b»ng 0 hoĂc x©u rçng .
+ Khi sö dĂŽng biĂn chĂłng ta kh«ng cĂn khai bžo kiĂu .
VĂ dĂŽ : $a = 1; // $a l” mĂ©t biĂn kiĂu integer.
$a = 1.2; // b©y giĂȘ $a l” mĂ©t biĂn kiĂu double.
$a = âAâ ; // b©y giĂȘ $a lÂči l” mĂ©t biĂn kiĂu string.
+ NĂu nhâ thĂčc hiĂn phĂp tožn giĂ·a biĂn cĂŁ kiĂu sĂš v” kiĂu string,
PHP sĂ coi chuçi l” mĂ©t d·y sĂš nhâ sau :
$str = â222B Baker Streetâ;
Ta thĂy biĂn $str cĂŁ giž trĂ kiĂu string, v” nĂu cĂ©ng sĂš 3 vĂi giž trĂ n”y
thĂ :
$x = 3 + $str ; // $x = 225
khi Ÿã biĂn $x nhĂn ÂźâĂźc giž trĂ 255 vĂ PHP Ÿ· cĂ©ng 3 vĂi ba sĂš ÂźĂu.
Nhng nĂu ta in giž trĂ cña biĂn $str thĂ
echo ($str); // print : â222B Baker Streetâ
ChĂł Ăœ r»ng cžc phĂp tožn giĂ·a sĂš v” chuçi chà Ÿóng khi kĂœ tĂč ÂźĂu cña
chuçi l” sÚ .
+ Ta cĂČng cĂŁ thĂ l”m thay ŸÊi kiĂu giž trĂ cña mĂ©t biĂn b»ng cžch Ăp
kiĂu
$a = 11.2; // biĂn $a cĂŁ kiĂu double
$a = (int) $a; // b©y giĂȘ $a cĂŁ kiĂu integer ,giž trĂ l” 11
$a = (double) $a; // b©y giĂȘ $a lÂči cĂŁ kiĂu double, giž trĂ l” 11.0
$b = (string) $a ; // biĂn $b cĂŁ kiĂu string ,giž trĂ l” â11â
CĂČng ph¶i biĂt r»ng PHP tĂč Ÿéng chuyĂn ŸÊi kiĂu rĂt tĂšt. NĂu thĂt sĂč
cĂn thiĂt chĂłng ta mĂi ph¶i dĂŻng cžch trÂȘn.
7
8. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
+ Cžc h”m l”m viĂc vĂi biĂn
gettype() : h”m n”y tr¶ lÂči kiĂu cña mĂ©t biĂn n”o Ÿã. Giž trĂ tr¶ vĂ cĂŁ
thĂ l” : âintegerâ
âdoubleâ
âstringâ
âarrayâ
âobjectâ
âclassâ
âunknown typeâ
vĂ dĂŽ :
if (gettype($user_input) == âintegerâ)
{
$age = $user_input;
}
settype() : h”m n”y Ăp kiĂu cho mĂ©t biĂn n”o Ÿã. NĂu th”nh c«ng
h”m tr¶ vĂ giž trĂ 1 (true) ,ngâĂźc lÂči l” 0 (false).
vĂ du :
$a = 7.5;
settype($a, âintegerâ);
if (settype($a, âarrayâ)){
echo (âConversion succeeded. â);
}else{
echo (âConversion error. â);
}
isset() v” unset() : H”m isset() kiĂm tra mĂ©t biĂn Ÿ· ÂźâĂźc gžn giž trĂ
hay châa, h”m unset() sĂ gi¶i phĂŁng bĂ© nhĂ cho mĂ©t biĂn n”o Ÿã .
vĂ dĂŽ :
8
9. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
$id = â323bbâ;
if (isset($id)) {
echo (âDĂ· liĂu Ÿ· ÂźâĂźc gžnâ);
}else{
echo (âDĂ· liĂu châa ÂźâĂźc gžnâ);
}
unset($id);
if(!isset($id)) {
echo (âDĂ· liĂu Ÿ· ÂźâĂźc gi¶i phĂŁngâ);
}
empty() : CĂČng giĂšng h”m isset(), h”m empty() sĂ tr¶ vĂ giž trĂ 1
(true) nĂu mĂ©t biĂn l” rçng v” ngâĂźc lÂči 0 (false). §Úi vĂi biĂn cĂŁ kiĂu sĂš
giž trĂ b»ng 0 ÂźâĂźc coi l” rçng, biĂn kiĂu string ÂźâĂźc coi l” rçng nĂu x©u l”
x©u rçng.
vĂ dĂŽ:
echo empty($new) ; // true
$new = 1;
echo empty($new); // false
$new = ââ;
echo empty($new); // true
$new = 0;
echo empty($new); // true
$new = âSo 323â;
echo empty($new); // false
unset($new);
echo empty($new); // true
9
10. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
III. Cžc tožn tö
+ B¶ng cžc phĂp tožn sĂš hĂ€c
PhĂp tožn Ăœ nghĂa VĂ dĂŽ Gi¶i thĂch
+ PhĂp cĂ©ng 7+2 ThĂčc hiĂn phĂp cĂ©ng giĂ·a 7 v” 2 : 9
- PhĂp trĂ” 7â2 ThĂčc hiĂn phĂp trĂ” giĂ·a 7 v” 2 : 5
* PhĂp nh©n 7*2 ThĂčc hiĂn phĂp nh©n giĂ·a 7 v” 2 : 14
/ PhĂp chia 7/2 ThĂčc hiĂn phĂp chia giĂ·a 7 v” 2 : 3.5
% Chia d 7%2 ThĂčc hiĂn phĂp chia d giĂ·a 7 v” 2 : 1
Ta cĂŁ thĂ viĂt cžc phĂp tožn ngŸn gĂ€n nhâ b¶ng sau :
Khi viĂt TâÂŹng ÂźâÂŹng vĂi
$h += $i $h = $h + $i
$h -= $i $h = $h - $i
$h *= $i $h = $h * $i
$h /= $i $h = $h / $i
$h %= $i $h = $h % $i
+ PhĂp gžn :
vĂ dĂŽ :
$x = 1;
$y = $x + 1;
$length = $area / $width;
10
11. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
+ B¶ng cžc phĂp tožn quan hĂ
PhĂp Ăœ nghĂa VĂ dĂŽ Gi¶i thich
tožn
== So sžnh b»ng $h == KiĂm tra $h v” $i cĂŁ b»ng nhau
< So sžnh nhå hn $i kh«ng
> So sžnh lĂn hÂŹn $h < $i KiĂm tra $h cĂŁ nhĂĄ hÂŹn $i kh«ng
<= NhĂĄ hÂŹn hoĂc $h > $i KiĂm tra $h cĂŁ lĂn hÂŹn $i kh«ng
>= b»ng $h <= KiĂm tra $h cĂŁ nhĂ« hÂŹn hoĂc b»ng $i
LĂn hÂŹn hoĂc $i KiĂm tra $h cĂŁ lĂn hÂŹn hoĂc b»ng $i
!=
b»ng $h => KiĂm tra $h cĂŁ khžc $i kh«ng
<> $i
So sžnh khžc KiĂm tra $h cĂŁ khžc $i kh«ng
So sžnh khžc $h != $i
$h <>
$i
Cžc phĂp so sžnh thâĂȘng dĂŻng kiĂm tra ÂźiĂu kiĂn trong cžc c©u lĂnh
ÂźiĂu khiĂn m” ta sĂ hĂ€c Ă« b”i sau .
+ B¶ng cžc phĂp tožn logic
PhĂp tožn logic cĂŻng vĂi tožn hÂčng tÂčo th”nh biĂu thĂžc logic. BiĂu thĂžc
logic cĂŁ thĂ cĂŁ giž trĂ l” 1 (true) hoĂc 0 (false) .
Tožn hÂčng a Tožn hÂčng b a && b a || b !a !b
1 1 1 1 0 0
1 0 0 1 0 1
0 1 0 1 1 0
0 0 0 0 1 1
+ Cžc phĂp tožn vĂi biĂn kiĂu string .
11
12. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
Ta sö dĂŽng dĂu â. â Ÿà ghĂp hai biĂn kiĂu string vĂi nhau .
vĂ dĂŽ : $first = âPhineasâ;
$last = âPhopâ;
$full = $first. â â. $last; // $full = âPhineas Phopâ ;
echo ($full);
Ta cĂŁ thĂ ghĂp hai x©u nhâ sau:
echo ($last. ââs Bicyclesâ); //print : Phopâs Bicycles
§à cĂŁ thĂ chĂn mĂ©t biĂn v”o trong h”ng cĂŁ kiĂu string thĂ tÂȘn biĂn
ph¶i Ÿà trong dĂu Ÿãng mĂ« ngoĂc nhĂ€n.
echo (â${last}âs Bicyclesâ);
+ Cžc phĂp tožn thao tžc mĂžc bit.
Cžc phĂp tožn thao tžc mĂžc bit tžc Ÿéng lÂȘn tĂ”ng bit cña tožn hÂčng .
KĂœ hiĂu Ăœ nghĂa
& AND bit
| OR bit
^ XOR bit
B¶ng cžc phĂp tožn nhâ sau :
& KĂt qu¶ | KĂt qu¶ ^ KĂt qu¶
1&1 1 1|1 1 1^1 0
1&0 0 1|0 1 1^0 1
0&1 0 0|1 1 0^1 1
0&0 0 0|0 0 0^0 0
PHP cĂČng hç trĂź cžc phĂp dĂch ph¶i v” dĂch trži
>> : dĂch ph¶i
<< : dĂch trži
Gi¶ sö $a l” mĂ©t biĂn nguyÂȘn thĂ phĂp tožn : $a >> n l”m cho cžc bit
trong $a bĂ dĂch ph¶i Âźi n vĂ trĂ. TâÂŹng tĂč ta cĂŁ phĂp dĂch trži .
12
13. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
vĂ dĂŽ : 11 >> 2 = 2 ;
vĂ :
11 (1011)
>> 2
2 (0010)
+ Cžc phĂp tožn tšng gi¶m :
- PhĂp tšng : phĂp tšng (tožn tö tšng) tšng giž trĂ cña tožn hÂčng lÂȘn
mĂ©t Ÿn vĂ.
$a ++ : $a ÂźâĂźc sö dĂŽng rĂ„i mĂi tšng
++ $a : $a tšng rĂ„i mĂi ÂźâĂźc sö dĂŽng
- PhĂp gi¶m : tâÂŹng tĂč nhâ phĂp tšng, khžc l” giž trĂ bĂ gi¶m Âźi mĂ©t
Ÿn vĂ.
$a -- : $a ÂźâĂźc sö dĂŽng rĂ„i mĂi gi¶m
-- $a : $a gi¶m rĂ„i mĂi ÂźâĂźc sö dĂŽng
vĂ dĂŽ :
$a = 10; // $a b»ng 10
$b = $a++ ; // $a b»ng 11 nhâng $b b»ng 10
$a = 10; // $a b»ng 10
$b = -- $a ; // $a b»ng 9 v” $b b»ng 9
+ PhĂp tožn ÂźiĂu kiĂn. ? :
PhĂp tožn ÂźiĂu kiĂn cĂŻng vĂi tožn hÂčng tÂčo nÂȘn biĂu thĂžc ÂźiĂu kiĂn.
Ta kĂœ hiĂu e1 ,e2, e3 l” ba tožn hÂčng.
BiĂu thĂžc cĂŁ dÂčng : e1 ? e2 : e3
NĂu e1 != 0 thĂ giž trĂ cña biĂu thĂžc ÂźiĂu kiĂn l” e2
NĂu e1 == 0 thĂ giž trĂ cña biĂu thĂžc ÂźiĂu kiĂn l” e3
vĂ dĂŽ : tĂm max
max = $a>$b ? a : b ;
13
14. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
+ Tožn tö sizeof (ŸÚi tâĂźng) :
PhĂp tožn sizeof cho biĂt kĂch thâĂc (tĂnh b»ng byte ) « nhĂ m” ŸÚi
tâĂźng chiĂm trong bĂ© nhĂ. §Úi tâĂźng Ă« Ÿ©y cĂŁ kiĂu l” integer, double,
string.
vĂ dĂŽ : $a = 10;
echo sizeof($a); //sĂ in ra m”n hĂnh l” : 4
IV. Cžc c©u lĂnh ÂźiĂu khiĂn
1. LĂnh if_else : Ÿ©y l” lĂnh rĂ nhžnh cĂŁ ÂźiĂu kiĂn .
a. DÂčng 1 :
if ( biĂu thĂžc ) c©u lĂnh;
C©u lĂnh Ă« Ÿ©y tâÂŹng ÂźâÂŹng vĂi mĂ©t khĂši lĂnh. MĂ©t khĂši lĂnh ÂźâĂźc
ÂźĂt trong dĂu ngoĂc kĂp.
Ăœ nghĂa :
+ NĂu biĂu thĂžc khžc kh«ng ,thĂ c©u lĂnh ÂźâĂźc thĂčc hiĂn.
+ NĂu biĂu thĂžc b»ng kh«ng, thĂ c©u lĂnh kh«ng ÂźâĂźc thĂčc hiĂn
b. DÂčng 2 :
if ( biĂu thĂžc )
c©u lĂnh 1;
else
c©u lĂnh 2;
Ăœ nghĂa :
+ NĂu biĂu thĂžc khžc kh«ng ,thĂ c©u lĂnh 1 ÂźâĂźc thĂčc hiĂn.
+ NĂu biĂu thĂžc b»ng kh«ng, thĂ c©u lĂnh 2 ÂźâĂźc thĂčc hiĂn
ChĂł Ăœ :
* C©u lĂnh 1 Ă« dÂčng 2 l” lĂnh if_else
14
15. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
+ NĂu lâĂźng else b»ng lâĂźng If thĂ else thuĂ©c vĂ If gĂn nhĂt
theo tĂ”ng cĂp tĂ” trong ra ngo”i.
VĂ dĂŽ :
$a = 10; $b = 10;
$c = 3; $d = 3;
$e = 12; $f = 8;
if($a == $b)
if($c == $d)
if($e == $f)
$max = $e;
else
$max = $f;
else
$max = $d;
else
$max = $b
echo $max ; //printf max = 8
+ NĂu lâĂźng else Ăt hÂŹn lâĂźng If thĂ else thuĂ©c vĂ If ngĂn nhĂt
theo tĂ”ng cĂp tĂ” trong ra ngo”i.
VĂ dĂŽ :
<?php
if ($a == $b)
if ($c == $d)
$max = 0
else
$max = $d;
?>
TâÂŹng ÂźâÂŹng vĂi :
<?php
if ($a == $b)
{ if ( $c == $d)
$max = 0;
}
else
$max = $b;
?>
* C©u lĂnh 2 cña dÂčng 2 l” elseif :
15
16. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
BŸt nguĂ„n tĂ” : CĂŁ thĂ viĂt lÂči nhâ sau:
if ( biĂu_thĂžc1 ) if ( biĂu_thĂžc1 )
c©u_lĂnh 1; c©u_lĂnh 1;
else elseif (biĂu_thĂžc 2)
if ( biĂu_thĂžc 2 ) c©u_lĂnh 2;
c©u_lĂnh 2; elseif (biĂu_thĂžc 3)
else c©u_lĂnh 3;
if ( biĂu_thĂžc 3 ) ...
c©u_lĂnh 3; elseif (biĂu_thĂžc i)
... c©u_lĂnh i;
else ...
if ( biĂu_thĂžc i ) else
c©u_lĂnh i; c©u_lĂnh n;
...
else
c©u_lĂnh n;
C©u lĂnh elseif tÂčo ra lĂnh rĂ nhžnh cĂŁ ÂźiĂu kiĂn trong Ÿã thĂčc
hiĂn 1 trong n cžch khžc nhau.
- NĂu biĂu_thĂžc i khžc kh«ng (i = 1,..n-1) thĂ thĂčc hiĂn c©u
lĂnh i .
- NĂu biĂu_thĂžc i b»ng kh«ng (i = 1, ..n-1) thĂ c©u lĂnh thĂž
n ÂźâĂźc thĂčc hiĂn.
2. C©u lĂnh switch :
switch (biĂu_thĂžc n)
{
case n1:
c©u lĂnh 1;
break;
case n2:
c©u lĂnh 2;
break;
...
case nn:
c©u lĂnh nn;
[default: c©u lĂnh]
}
16
17. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
C©u lĂnh switch l” c©u lĂnh rĂ nhžnh cĂŁ ÂźiĂu kiĂn trong Ÿã thĂčc
hiĂn mĂ©t trong n cži rĂ nhžnh.
+NĂu biĂu_thĂžc n = ni (i = 1, .. n) thĂ c©u lĂnh sau case ni ÂźâĂźc
thĂčc hiĂn cho ÂźĂn khi gĂp lĂnh break hoĂc dĂu ngoĂc â}â
+NĂu biĂu_thĂžc n != mĂ€i ni (i = 1, .. n) m” cĂŁ nhžnh Default thĂ
cžc c©u lĂnh sau Default ÂźâĂźc thĂčc hiĂn.
VĂ dĂŽ :
<?php
$val = 6;
$a = 5;
$b = 6;
$d = 7;
switch ($val)
{
case $a :
echo (âfiveâ);
break;
case $b :
echo (âsixâ);
break;
case $c :
echo (âsevenâ);
break;
default :
echo ($val);
}
?>
3. C©u lĂnh FOR:
DÂčng lĂnh : for (biĂu_thĂžc 1; biĂu_thĂžc 2; biĂu_thĂžc 3)
c©u lĂnh ;
LĂnh for l” lĂnh tÂčo chu trĂnh cĂŁ ÂźiĂu kiĂn.
BâĂc 1 : tĂnh biĂu_thĂžc 1
BâĂc 2 : tĂnh biĂu_thĂžc 2 :
NĂu biĂu_thĂžc 2 khžc 0 thĂ thĂčc hiĂn c©u lĂnh v” sang bâĂc 3.
17
18. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
NĂu biĂu_thĂžc 2 b»ng 0 thĂ kĂt thĂłc vĂng for
BâĂc 3 : tĂnh biĂu_thĂžc 3 v” quay lÂči bâĂc 2.
+ biĂu_thĂžc 1, biĂu_thĂžc 2, biĂu_thĂžc 3 l” cžc th”nh phĂn. Mçi th”nh
phĂn cĂŁ thĂ gĂ„m nhiĂu biĂu thĂžc. Khi Ÿã mçi biĂu thĂžc ÂźâĂźc viĂt cžch nhau
mĂ©t dĂu phĂy (â,â).
+Cžc biĂu thĂžc ÂźâĂźc tĂnh lĂn lâĂźt tĂ” trži qua ph¶i
+BiĂu thĂžc trong biĂu_thĂžc 2 quyĂt ÂźĂnh thĂčc hiĂn th©n cña for.
VĂ dĂŽ :
<?php
for($i = 0; $j = 4,$i < $j; $i++,$j--)
{ echo (âi =â. $i. â ,j = â. $j. â<br>â);
}
?>
+CĂŁ thĂ vŸng mĂt bĂt kĂ th”nh phĂn n”o. NĂu vŸng mĂt biĂu_thĂžc 2
thĂ c©u lĂnh lu«n ÂźâĂźc thĂčc hiĂn. MĂc dĂŻ vŸng mĂt vĂn ph¶i cĂŁ dĂu chĂm
phĂy (â;â)
VĂ dĂŽ :
<?php
for ( ; ; ) {
if (my_function() == âstopâ) break;
}
?>
+NĂu vŸng biĂu_thĂžc 1 v” biĂu_thĂžc 3 thĂ :
for ( ; biĂu_thĂžc 2 ; ) cau_lenh ;
tâÂŹng ÂźâÂŹng vĂi :
while (biĂu_thĂžc 2) cau_lenh ;
4. C©u lĂnh WHILE
while (biĂu_thĂžc)
c©u lĂnh ;
18
19. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
LĂnh while l” mĂ©t lĂnh tÂčo chu trĂnh cĂŁ ÂźiĂu kiĂn. §iĂu kiĂn thĂčc hiĂn
ÂźâĂźc kiĂm tra Ă« ÂźĂu chu trĂnh.
BâĂc 1 : TĂnh biĂu thĂžc
NĂu biĂu thĂžc khžc kh«ng, sang bâĂc 2
NĂu biĂu thĂžc b»ng kh«ng, kĂt thĂłc vĂng while
BâĂc 2 : ThĂčc hiĂn c©u lĂnh.
Quay lÂči bâĂc 1.
ChĂł Ăœ :
+ BiĂu thĂžc cĂŁ thĂ bao gĂ„m nhiĂu biĂu thĂžc. Khi Ÿã cžc biĂu thĂžc ÂźâĂźc
viĂt cžch nhau mĂ©t dĂu phĂy ,v” ÂźâĂźc tĂnh lĂn lâĂźt tĂ” trži qua ph¶i. BiĂu
thĂžc cuĂši cĂŻng quyĂt ÂźĂnh thĂčc hiĂn c©u lĂnh.
+ Kh«ng ÂźâĂźc phĂp vŸng mĂt biĂu thĂžc
+ §à tÂčo chu trĂnh v« tĂn thĂ
while(1)
{ ...
if (biĂu_thĂžc) break;
...
}
VĂ dĂŽ :
$i = 11;
while (--$i)
{ if (my_function($i) == âerrorâ) {
break;
}
++ $number;
}
19
20. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
5. LĂnh DO ... WHILE
DÂčng lĂnh :
do {
c©u lĂnh;
}while (biĂu_thĂžc);
LĂnh do ... while l” lĂnh tÂčo chu trĂnh cĂŁ ÂźiĂu kiĂn, trong Ÿã ÂźiĂu kiĂn
thĂčc hiĂn chu trĂnh ÂźâĂźc kiĂm tra Ă« cuĂši chu trĂnh.
HoÂčt Ÿéng :
BâĂc 1 : ThĂčc hiĂn c©u lĂnh
BâĂc 2 : TĂnh biĂu thĂžc biĂu_thĂžc
+NĂu biĂu thĂžc biĂu_thĂžc khžc kh«ng thĂ quay lÂči bâĂc 1
+NĂu biĂu thĂžc biĂu_thĂžc b»ng kh«ng thĂ kĂt thĂłc do ... while.
VĂ dĂŽ :
<?php
echo (â<SELECT name=ânumâ>nâ);
$i = 0;
$total = 10;
do {
echo (ât <OPTION value=$i>$i</OPTION>nâ);
}while(++ $i < $total);
echo (â</SELECT>nâ);
?>
6. LĂnh break
L” lĂnh rĂ nhžnh kh«ng ÂźiĂu kiĂn v” thâĂȘng dĂŻng Ÿà ra khĂĄi th©n cña
switch, while, do ... while, for .
20
21. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
LĂnh break chĂ cho phĂp thožt khĂĄi th©n cžc lĂnh bÂȘn trong nhĂt chĂža
nĂŁ.
7. LĂnh continue
L” lĂnh rĂ nhžnh kh«ng ÂźiĂu kiĂn .LĂnh thâĂȘng dĂŻng Ÿà bŸt ÂźĂu lÂči
mĂ©t chu trĂnh mĂi trong cžc lĂnh for, while, do ... while m” kh«ng cĂn thĂčc
hiĂn hĂt to”n bĂ© th©n cña cña lĂnh tÂčo chu trĂnh.
8. Khai bžo tiĂn xö lĂœ include v” require .
§à sö dĂŽng cžc ÂźoÂčn m· Ă« bÂȘn ngo”i, chĂłng ta cĂŁ thĂ sö dĂŽng khai
bžo tiĂn xö lĂœ include v” require. Cho phĂp chĂłng ta x©y dĂčng cžc h”m cžc
h»ng sĂš, v” bĂt kĂș ÂźoÂčn m· n”o sau Ÿã cĂŁ thĂ chĂn v”o cžc ÂźoÂčn script.
Require khžc include l”, nĂŁ cĂŁ thĂ l”m thay ŸÊi nĂ©i dung cña trang hiĂn
tÂči khi biÂȘn dĂch, cžc trang n”y dĂŻng Ÿà khai bžo cžc biĂn, cžc h»ng sĂš
hay cžc ÂźoÂčn m· Ÿn gi¶n kh«ng cĂŁ vĂng lĂp. Khi Ÿã include cho phĂp
thĂčc hiĂn cžc c©u lĂnh phĂžc tÂčp â cĂŁ c©u lĂnh tÂčo chu trĂnh. NĂŁ chĂ sö
dĂŽng cžc h”m nhâ nhĂ·ng h”m ngo”i cña châÂŹng trĂnh.
V. H”m trong PHP
1. Quy tŸc x©y dĂčng h”m
function tÂȘn_h”m (danh sžch ŸÚi sĂš hĂnh thĂžc) {
Th©n h”m .
}
+ §Ănh nghĂa h”m kh«ng nhĂt thiĂt ph¶i n»m ngo”i th©n mĂ€i h”m,
trong h”m cĂŁ thĂ cĂŁ h”m khžc. Nhâng viĂc sö dĂŽng mĂ©t h”m kh«ng khžc
nhau giĂ·a x©y dĂčng h”m trong th©n mĂ©t h”m v” ngo”i mĂ€i h”m .
+ TÂȘn h”m tuĂș ÂźĂt v” khžc tÂȘn h”m chuĂn.
+ H”m cĂŁ thĂ cĂŁ giž trĂ tr¶ vĂ hoĂc kh«ng.
+ Cžc c©u lĂnh ÂźâĂźc quyĂn gĂ€i bĂt kĂș h”m n”o Ÿ· ÂźâĂźc khai bžo v” Ÿ·
ÂźâĂźc ÂźĂnh nghĂa.
21
22. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
+ Return : - Tr¶ mét giž trà và cho ni gÀi h”m
- L” nÂŹi bžo kĂt thĂłc h”m
2. GÀi h”m .
+ H”m ph¶i ÂźâĂźc x©y dĂčng (khai bžo) trâĂc khi gĂ€i .
+ Khi gĂ€i h”m, nĂu cĂŁ giž trĂ tr¶ vĂ thâĂȘng ÂźâĂźc ÂźĂt trong biĂu thĂžc .
3. BiĂn to”n cĂŽ v” biĂn cĂŽc bĂ©.
Th«ng thâĂȘng PHP coi cžc biĂn ÂźâĂźc sö dĂŽng trong th©n cña h”m l”
biĂn cĂŽc bĂ©. NghĂa l” biĂn trong th©n h”m kh«ng l”m thay ŸÊi giž trĂ cña
biĂn Ă« ngo”i h”m Ÿã. MuĂšn h”m l”m thay ŸÊi giž trĂ cña biĂn ngo”i ta cĂn
khai bžo global trâĂc biĂn Ÿã trong th©n h”m .
VĂ dĂŽ :
$position = âmâ;
function change_pos()
{
$position = âsâ;
}
change_pos();
echo (â$positionâ); //Prints âmâ
Ta thĂy biĂn $position giž trĂ kh«ng ŸÊi sau khi gĂ€i h”m change_pos().
$position = âmâ;
function change_pos()
{ global $position;
$position = âsâ;
}
change_pos();
echo (â$positionâ); //Prints âsâ
22
23. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
Ta cĂŁ thĂ viĂt nhâ trÂȘn hoĂc ta cĂŁ thĂ viĂt :
$position = âmâ;
function change_pos()
{ GOLOBALS[$position] = âsâ;
}
change_pos();
echo (â$positionâ); //Prints âsâ
VI. BiĂn m¶ng trong PHP
1. M¶ng mĂ©t chiĂu
M¶ng l” mĂ©t biĂn bao gĂ„m nhiĂu phĂn tö cĂŁ cĂŻng tÂȘn nhâng khžc
nhau vĂ chĂ sĂš (cžc chĂ sĂš n”y tšng dĂn tĂ” 0 ÂźĂn n). VĂi ng«n ngĂ· lĂp trĂnh
C, cžc phĂn tö cña m¶ng cĂŁ cĂŻng kiĂu dĂ· liĂu ,nhâng vĂi PHP thĂ mĂm dĂo
hÂŹn. Cžc phĂn tö cña m¶ng kh«ng nhĂt thiĂt ph¶i cĂŻng kiĂu.
a. Khai bžo m¶ng mĂ©t chiĂu.
Ta cĂŁ thĂ khai bžo m¶ng b»ng cžch gžn tÂȘn m¶ng vĂi dĂu Ÿãng mĂ«
ngoĂc vu«ng kh«ng cĂŁ chĂ sĂš. ChĂłng ta h·y xĂt vĂ dĂŽ sau :
$countries[] = âcrâ;
$countries[] = âdeâ;
$countries[] = âusâ;
VĂ dĂŽ trÂȘn tÂčo ra mĂ©t m¶ng gĂ„m ba phĂn tö cĂŁ chĂ sĂš l” 0, 1 v” 2.
ViĂc Ÿã cĂČng tâÂŹng tĂč nhâ ta gžn :
$countries[0] = âcrâ;
$countries[1] = âdeâ;
$countries[2] = âusâ;
Ngo”i ra cžc chĂ sĂš cña m¶ng kh«ng nhĂt thiĂt ph¶i tšng dĂn m” cĂŁ thĂ
ÂźâĂźc khai bžo nh sau :
$countries[50] = âcrâ;
23
24. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
$countries[20] = âdeâ;
$countries[10] = âusâ;
echo (â$countries[20]â); // prints de
Khi Ÿã Ÿà thÂȘm mĂ©t phĂn tö mĂi v”o m¶ng chĂłng ta cĂŁ thĂ viĂt
$countries[] = âukâ; // chĂ sĂš sĂ l” 51
MĂ©t phĂn tö mĂi ÂźâĂźc thÂȘm v”o vĂi chĂ sĂš l” chĂ sĂš lĂn nhĂt cña m¶ng
cĂ©ng thÂȘm mĂ©t. Ngo”i ra cĂČng cĂŁ thĂ khai bžo m¶ng mĂ©t chiĂu b»ng c©u
lĂnh array
$countries = array (âcrâ, âdeâ, âusâ) ;
echo (â$countries[2]â); //prints âusâ
§à chĂ sĂš kh«ng bŸt ÂźĂu tĂ” kh«ng ta cĂŁ thĂ khai bžo lÂči nhâ sau
$countries = array (1 => âcrâ, âdeâ, âusâ);
echo (â$countries[2]â); //prints âdeâ
Tožn tö => cĂŁ thĂ ÂźâĂźc sö dĂŽng trâĂc bĂt kĂș mĂ©t phĂn tö n”o trong
m¶ng
$countries = array (âcrâ, 7 => âdeâ, âusâ);
v” khi Ÿã phĂn tö cĂŁ giž trĂ âcrâ cĂŁ chĂ sĂš l” 0 cĂn phĂn tö cĂŁ giž trĂ
âdeâ, âusâ lĂn lâĂźt l” 7 v” 8. Khžc vĂi ng«n ngĂ· lĂp trĂnh C, chĂ sĂš cña m¶ng
mĂ©t chiĂu kh«ng chĂ l” cžc sĂš nguyÂȘn m” cĂn l” x©u kĂœ tĂč. Ta cĂŁ thĂ khai
bžo nhâ sau :
$countries[âcaâ] = âCanadaâ;
$countries[âcrâ] = âCosta Ricaâ;
$countries[âdeâ] = âGermanyâ;
$countries[âukâ] = âUnited Kingdomâ;
$countries[âusâ] = âUnited Statesâ;
echo (â$countries[âcaâ]); // print Canada
NĂu dĂŻng array thĂ sĂ l” :
$countries = (âcaâ => âCanadaâ,
24
25. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
âcrâ => âCosta Ricaâ,
âdeâ => âGermanyâ,
âukâ => âUnited Kingdomâ,
âusâ => âUnited Statesâ);
25
26. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
b. L”m viĂc vĂi cžc phĂn tö cña m¶ng
CĂŁ thĂ sö dĂŽng vĂng lĂp for xĂt tĂ”ng phĂn tö cña m¶ng.
$countries = array (âcrâ, âdeâ, âusâ);
$num_elements = count($countries);
for ($i = 0 ; $i < $num_elements ; $i ++) {
echo (â$countries[$i] <BR>nâ);
}
VĂ dĂŽ trÂȘn sà Ÿóng khi chĂ sĂš cña cžc phĂn tö tšng dĂn ÂźĂu. NĂu chĂ sĂš
cžc phĂn tö kh«ng theo mĂ©t thĂž tĂč n”o c¶ ta cĂŁ thĂ sö dĂŽng h”m list() v”
each().
reset ($countries);
while (list ($key, $value ) = each ($countries)) {
echo (âChĂ sĂš $key, giž trĂ $valueâ);
}
§à di chuyĂn con trĂĄ tĂi phĂn tö tiĂp theo hoĂc trâĂc Ÿã ta cĂČng cĂŁ thĂ
dĂŻng h”m next() - h”m next() tr¶ vĂ l” 1 (true) nĂu phĂn tö tiĂp theo
kh«ng ph¶i l” phĂn tö cuĂši cĂŻng, ngâĂźc lÂči l” 0 (false) v” prev() - h”m
prev() cho giž trĂ tr¶ vĂ l” 1 (true) nĂu phĂn tö tiĂp theo kh«ng ph¶i l”
phĂn tö ÂźĂu tiÂȘn, ngâĂźc lÂči l” 0 (false). H”m key () sĂ cho biĂt chĂ sĂš v”
h”m current() sĂ cho biĂt giž trĂ cña phĂn tö Ÿã .
$arr = array (3, 4, 5, 6, 7);
do {
$k = key ($arr);
$val = current ($arr);
echo (âPhĂn tö $k = $valâ);
}while
2. M¶ng hai chiĂu
ChĂłng ta cĂŁ thĂ khai bžo m¶ng hai chiĂu nhâ sau :
26
27. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
$countries = array (âEuropsâ => array (âdeâ, âukâ),
âNorth Americaâ => array (âcaâ, âcrâ, âusâ));
echo ($countries[âEuropsâ][1]); // print âukâ
echo ($countries[âNorth Americaâ][2]); // print âusâ
Ta cĂŁ cĂu trĂłc cña m¶ng trÂȘn nhâ sau :
$countries[âEuropsâ] $countries[âNorth Americaâ]
[0] [1] [0] [1] [2]
âdeâ âukâ âcaâ âcrâ âusâ
CĂČng giĂšng nhâ m¶ng mĂ©t chiĂu ta sĂ dĂŻng vĂng lĂp nhâ for, while, do
... while Ÿà duyĂt qua cžc phĂn tö cña m¶ng.
VĂ dĂŽ :
$countries = array (âEuropsâ => array (âdeâ, âukâ),
âNorth Americaâ => array (âcaâ, âcrâ, âusâ));
while (list ($key1) = each ($countries)) {
echo (â$key1 : <BR>nâ);
while (list ($key2, $val) = each($countries[â$key1â])) {
echo (â - $val <BR>nâ)
}
}
Khi chÂčy châÂŹng trĂnh sĂ in ra m”n hĂnh l” :
Europ :
- de
- uk
North America :
- ca
- cr
- us
27
28. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
3. Cžc h”m sŸp xĂp m¶ng .
PHP cung cĂp cho chĂłng ta cžc h”m Ÿà sŸp xĂp m¶ng. VĂi mçi loÂči
m¶ng sĂ cĂŁ mĂ©t h”m tâÂŹng Ăžng. VĂi m¶ng cĂŁ chĂ sĂš l” kiĂu nguyÂȘn chĂłng ta
cĂŁ h”m sort() Ÿà sŸp xĂp tšng dĂn cžc phĂn tö cña m¶ng, h”m rsort() sĂ sŸp
xĂp cžc phĂn tö cña m¶ng gi¶m dĂn .
$countries = array (âusâ, âukâ, âcaâ, âcrâ, âdeâ);
sort ($countries);
while (list ($key, $val) = each ($countries)) {
echo (âElement $key equals $val <BR>nâ);
}
Khi chÂčy châÂŹng trĂnh sĂ l” :
Element 0 equals ca
Element 1 equals cr
Element 2 equals de
Element 3 equals uk
Element 4 equals us
VĂi m¶ng chĂ sĂš cĂŁ kiĂu string thĂ dĂŻng h”m asort (), arsort () Ÿà sŸp
xĂp m¶ng theo chiĂu tšng dĂn v” gi¶m dĂn. NĂu bÂčn dĂŻng cžc h”m sort() v”
rsort() thĂ cžc chĂ sĂš cĂŁ kiĂu string sĂ chuyĂn th”nh cžc chĂ sĂš cĂŁ kiĂu
nguyÂȘn.
$countries = array(âusâ => âUnited Statesâ,
âukâ => âUnited Kingdomâ,
âcaâ => âCanadaâ,
âcrâ => âCosta Ricaâ,
âdeâ => âGermanyâ);
asort ($countries);
while (list($key, $val) = each($countries)) {
echo âChi so $key bang $val <BR>nâ;
28
29. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
}
KĂt qu¶ khi chÂčy châÂŹng trĂnh :
Chi so ca bang Canada
Chi so cr bang Costa Rica
Chi so de bang Germany
Chi so uk bang United Kingdom
Chi so us bang United States
Nhâng nĂu thay dĂng asort ($countries); b»ng sort ($countries); kĂt
qu¶ sà l”
Chi so 0 bang Canada
Chi so 1 bang Costa Rica
Chi so 2 bang Germany
Chi so 3 bang United Kingdom
Chi so 4 bang United States
§à sŸp xĂp m¶ng tšng dĂn hay gi¶m dĂn theo chĂ sĂš chĂłng ta cĂŁ h”m
ksort() â tšng dĂn v” krsort() â gi¶m dĂn .
$countries = array(âeâ => âUnited Statesâ,
âdâ => âUnited Kingdomâ,
âcâ => âCanadaâ,
âbâ => âCosta Ricaâ,
âaâ => âGermanyâ);
ksort ($countries);
while (list($key, $val) = each($countries)) {
echo âChi so $key bang $val <BR>nâ;
}
KĂt qu¶ :
Chi so a bang Germany
29
30. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
Chi so b bang Costa Rica
Chi so c bang Canada
Chi so d bang United Kingdom
Chi so e bang United States
VII. LĂp trĂnh hâĂng ŸÚi tâĂźng (OOP)
1. §Ănh nghĂa lĂp .
ChĂłng ta cĂŁ thĂ ÂźĂnh nghĂa lĂp b»ng tožn tö class, v” trong mçi mĂ©t
lĂp chĂłng ta sĂ x©y dĂŽng cžc phâÂŹng thĂžc v” thuĂ©c tĂnh cho lĂp Ÿã .
Gi¶ sö muĂšn ÂźĂnh nghĂa lĂp âSesssionâ chĂłng ta l”m nhâ sau :
<?php
class Session
{
// §Ănh nghĂa cžc thuĂ©c tĂnh v” phâÂŹng thĂžc
// X©y dĂčng cžc phâÂŹng thĂžc cho lĂp
} // KĂt thĂłc mĂ©t lĂp
?>
§à ŸĂnh nghĂa thuĂ©c tĂnh cho lĂp chĂłng ta ÂźĂt tĂ” khož var trâĂc thuĂ©c
tĂnh Ÿã.
<?
class Session
{
var $sqlhost = âlocalhostâ;
var $sqluser = ârootâ;
var $sqlpass = âpasswordâ;
var $sqldb = âsessionâ;
30
31. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
var $linkid;
var $seshid;
var $sessdata;
var $userid;
var $error_no;
var $err;
...
// §Ănh nghĂa cžc phâÂŹng thĂžc Ă« Ÿ©y
} //KĂt thĂłc ÂźĂnh nghĂa lĂp
?>
TiĂp theo chĂłng ta sĂ ÂźĂnh nghĂa cžc phâÂŹng thĂžc cho lĂp trÂȘn.
PhâÂŹng thĂžc cĂn x©y dĂčng ÂźĂu tiÂȘn l” Session() sau Ÿã ÂźĂn cžc phâÂŹng thĂžc
khžc.
<?
// §Ănh nghĂa lĂp Session
class Session
{
// §Ănh nghĂa cžc thuĂ©c tĂnh
.. .
// §Ănh nghĂa cžc phâÂŹng thĂžc
function Session($localSeshID, $localUserID=0)
{
$this->seshid = $localSeshID;
$this->userid = $localUserID;
// KĂt nĂši tĂi MySQL
$this->linkid=mysql_connect($this->sqlhost, $this->sqluser, $this-
>sqlpass);
31
32. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
if (!$this->linkid)
{
$this->err=mysql_error();
$this->error_no=102;
}
}
... // §Ănh nghĂa cžc phâÂŹng thĂžc khžc
}
?>
2. Sö dĂŽng lĂp Ÿ· ÂźâĂźc ÂźĂnh nghĂa.
§à khai bžo mĂ©t ŸÚi tâĂźng cĂŁ kiĂu thuĂ©c lĂp Ÿ· x©y dĂčng ta dĂŻng tožn
tö new nhâ sau :
<?php
require (âclasses/sessions.phpâ); //include class
$mysesh = new Session($seshid);
if ($mysesh->error_no)
{
//Th«ng bžo cã lçi
}
$user = $mysesh->sessdata[userid];
?>
<HTML>
<HEAD>
<TITLE>Welcome to my website, <? echo $user ?></TITLE>
</HEAD>
<BODY>
<a href=ânextpage.php?seshid=<? print $user ?>â>Next Page </a>
32
33. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
<FORM ACTION=ânextpage.phpâ METHOD=âPOSTâ>
<input type=âhiddenâ name=âseshidâ value=â<? print $seshid ?>â>
</FORM>
</BODY>
</HTML>
VIII. TĂm hiĂu thÂȘm vĂ HTML
PhĂn mĂ©t chĂłng ta Ÿ· tĂm hiĂu sÂŹ lâĂźc vĂ ng«n ngĂ· HTML. Trong
mĂŽc n”y chĂłng ta sĂ trĂnh b”y thÂȘm vĂ nĂŁ vĂi trĂ€ng t©m l” FORM cña
HTML. LĂœ do l” vĂ khi muĂšn giao tiĂp giĂ·a HTML v” PHP script thĂ kh«ng
thĂ kh«ng biĂt ÂźĂn FORM. FORM l” c«ng cĂŽ phĂŠ biĂn nhĂt Ÿà chuyĂn dĂ·
liĂu tĂ” HTML ÂźĂn PHP script (client lÂȘn server).
Th«ng thâĂȘng, khi viĂt mĂ©t script, ngâĂȘi ta thiĂt kĂ mĂ©t FORM sao cho nĂŁ
cung cĂp ÂźĂy Ÿñ nhĂ·ng th«ng tin m” script cĂn Ÿà xö lĂœ.
1. CĂu trĂłc cña mĂ©t FORM
MĂ©t FORM ÂźâĂźc mĂ« ÂźĂu b»ng thĂ <FORM ... > v” kĂt thĂłc b»ng thĂ
</FORM>.
Trong FORM cĂŁ :
- ThuĂ©c tĂnh : FORM thâĂȘng cĂŁ ba thuĂ©c tĂnh, ba thuĂ©c tĂnh n”y n»m
trong thĂ FORM mĂ« ÂźĂu cña mĂ©t FORM : action, method, enctype .
- Cžc thĂ ÂźâĂźc dĂŻng trong FORM : input, select, textarea, hn, p, hr,
dir, dl, menu, ol, ul, address, blockquote, [isindex]. pre .
- FORM cĂŁ ba th”nh phĂn chĂnh : textarea, select, input .
- FORM cĂŁ thĂ ÂźâĂźc dĂŻng trong cžc thĂ : blockquote,body,dd, li.
2. Cžc thuĂ©c tĂnh
Khi tÂčo mĂ©t FORM ,c«ng viĂc ÂźĂu tiÂȘn l” xžc ÂźĂnh thuĂ©c tĂnh cña nĂŁ.
- ThuĂ©c tĂnh action : Action=âURLâ chĂ ÂźĂn script m” FORM sö
dĂŽng. Ngo”i ra nĂŁ cĂČng cĂŁ thĂ l” mailto url, khi Ÿã nĂ©i dung cña FORM
ÂźâĂźc mail ÂźĂn ÂźĂa chĂ trong url .
33
34. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
- ThuĂ©c tĂnh method : Method cĂŁ thĂ ÂźâĂźc gžn b»ng âGETâ hoĂc
âPOSTâ ,nĂŁ chĂ ra phâÂŹng thĂžc Post hay Get sĂ ÂźâĂźc sö dĂŽng trong FORM,
giž trĂ ngĂm ÂźĂnh l” Get.
- ThuĂ©c tĂnh enctype : Enctype=âMime_typeâ :chĂ ra loÂči dĂ· liĂu sĂ
göi Âźi. Giž trĂ ngĂm ÂźĂnh l” application/x-www-form-urlencode.
Trong mĂ©t trang chĂłng ta cĂŁ thĂ sö dĂŽng nhiĂu FORM nhng kh«ng
ÂźâĂźc lĂ„ng chĂłng v”o nhau.
2. Cžc th”nh phĂn cÂŹ b¶n cña FORM.
MĂ©t FORM ,th«ng thâĂȘng cĂŁ ba th”nh phĂn chĂnh :
+Textarea
+Select
+Input
a - Textarea
§âĂźc bŸt ÂźĂu b»ng thĂ <Texterea> v” kĂt thĂłc b»ng thĂ </Texterea>.
BÂȘn trong chĂža cžc kĂœ tĂč, thĂ n”y ÂźâĂźc dĂŻng lĂ„ng v”o trong FORM.
Cžc thuĂ©c tĂnh cña Texterea .
- Name : §Ănh nghĂa tÂȘn cña th”nh phĂn, thuĂ©c tĂnh n”y lu«n lu«n ph¶i
cĂŁ.
- Rows : Cho biĂt sĂš h”ng cña hĂ©p všn b¶n.
- Cols : Cho biĂt sĂš cĂ©t cña všn b¶n.
Wrap : ChĂ ra cžch xö lĂœ word_wraping (cšn chiĂu d”i cña dĂng všn
b¶n theo kĂch thâĂc cña hĂ©p všn b¶n) trong hĂ©p thoÂči. NĂu wrap=âoffâ, chĂžc
nšng word_wraping bĂ cĂm. NĂu wrap=âvitualâ, chĂžc nšng n”y ÂźâĂźc bĂt lÂȘn,
khi gĂą všn b¶n v”o, ta thĂy con trĂĄ tĂč Ÿéng xuĂšng h”ng mçi khi nĂŁ chÂčy ÂźĂn
biÂȘn cña hĂ©p všn b¶n, kĂœ tĂč newline (OA hex) tĂč Ÿéng ÂźâĂźc thÂȘm v”o nhâng
kh«ng ÂźâĂźc göi Âźi cĂŻng FORM. NĂu wrap=âphysicalâ, chĂžc nšng n”y cĂČng
ÂźâĂźc bĂt v” hoÂčt Ÿéng nhâ trÂȘn nhâng kĂœ tĂč newline ÂźâĂźc göi Âźi cĂŻng vĂi
FORM.
34
35. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
Všn b¶n n»m giĂ·a hai thĂ <Texterea> v” </Texterea> sĂ ÂźâĂźc thĂ hiĂn
nhâ ÂźoÂčn všn b¶n ngĂm ÂźĂnh trong vĂŻng dĂ· liĂu.
VĂ dĂŽ:
<Texterea name=âvan_banâ rows=â4â cols=â40â>
.. .
</ Texterea >
b. Select
§âĂźc bŸt ÂźĂu b»ng thĂ <Select> v” kĂt thĂłc b»ng thĂ </ Select >, cĂp
thĂ n”y cĂŁ thĂ lĂ„ng trong FORM hay bĂt kĂș th”nh phĂn n”o cña FORM
ngoÂči trĂ” Texterea v” Select .
Select cĂŁ cžc thuĂ©c tĂnh sau :
- Name : TÂȘn cña th”nh phĂn.
- Size : Cho biĂt sĂš th”nh phĂn sĂ hiĂn thĂ, giž trĂ ngĂm ÂźĂnh l” 1, do
Ÿã danh sžch lĂča chĂ€n thâĂȘng ÂźâĂźc thĂ hiĂn dĂi dÂčng pop-up menu. ThuĂ©c
tĂnh n”y cĂŁ thĂ kh«ng cĂŁ.
- Multiple : NĂu thuĂ©c tĂnh n”y ÂźâĂźc thiĂt lĂp, nhiĂu lĂča chĂ€n sĂ ÂźâĂźc
chĂ€n cĂŻng mĂ©t lĂłc, ngâĂźc lÂči chĂ ÂźâĂźc chĂ€n mĂ©t item.
Khi sö dĂŽng Select, chĂłng ta cĂŁ thĂ dĂŻng thÂȘm Option
<Option>. .. .. .. </Option>
BÂȘn trong chĂža cžc kĂœ tĂč, cĂŁ thĂ ÂźâĂźc sö dĂŽng lĂ„ng v”o Select .
Cžc thuĂ©c tĂnh Option :
- Disable : §žnh mĂ©t lĂča chĂ€n bĂ cĂm. Khi hiĂn thĂ, chĂ€n lĂča n”y sĂ bĂ
che mĂȘ.
- Selected : §žnh dĂu chĂ€n lĂča n”y Ÿ· ÂźâĂźc chĂ€n, nĂu thuĂ©c tĂnh
Multiple ÂźâĂźc bĂt trong Select, bÂčn cĂŁ thà Ÿžnh dĂu Selected nhiĂu chĂ€n lĂča
cĂŻng lĂłc. NĂŁ dĂŻng Ÿà Ÿžnh dĂu cžc lĂča chĂ€n ngĂm ÂźĂnh.
- Value : ChĂ ra giž trĂ ÂźâĂźc gžn cho lĂča chĂ€n, nĂu kh«ng cĂŁ thĂ nĂ©i
dung cña thâ mĂŽc option sĂ ÂźâĂźc göi Âźi thay cho value.
c. Input
35
36. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
MĂ« ÂźĂu b»ng thĂ < Input >, thĂ n”y cĂŁ thĂ dĂŻng trong bĂt cĂž th”nh
phĂn n”o khžc cña FORM ngoÂči trĂ” Texterea v” Select.
Cžc thuĂ©c tĂnh :
- Align : CĂŁ thĂ l” mĂ©t trong ba giž trĂ top, middle, bottom dĂŻng ÂźĂ
cšn là ¶nh vĂi cžc všn b¶n xung quanh, thuĂ©c tĂnh n”y chĂ cĂŁ Ăœ nghĂa vĂi
Type=âimageâ .
- Name : gŸn tÂȘn biĂn cho dĂ· liĂu cña th”nh phĂn n”y. Giž trĂ cña
thuĂ©c tĂnh do user lĂča chĂ€n .
- Type : ÂźĂnh ra mĂ©t trong nhĂ·ng giž trĂ sau checkbox, hidden, image,
password, radio, reset, submit, text, file, bottom .
- Checked : chĂ ra mĂ©t nĂłt radio, hay mĂ©t checkbox cÂŹ ÂźâĂźc chĂ€n hay
kh«ng.
- Maxlength : chĂ ra chiĂu d”i tĂši Âźa m” hĂ©p thoÂči všn b¶n cĂŁ thĂ chĂža,
thuĂ©c tĂnh n”y chĂ cĂŁ Ăœ nghĂa vĂi input cĂŁ type=âtextâ hay type=âpasswordâ .
- Size : chĂ ra kĂch thâĂc thĂčc sĂč cña hĂ©p thoÂči všn b¶n.
IX. TĂŁm lâĂźc
Nhâ vĂy, chĂłng ta Ÿ· kh¶o sžt hĂu hĂt cžc chĂžc nšng cÂŹ b¶n cña PHP, tĂ”
cžc kiĂu dĂ· liĂu, khai bžo biĂn, h”ng, m¶ng cho tĂi cžch thĂčc hiĂn
châÂŹng trĂnh dÂčng Mžy khžch/Mžy chñ (Client/Server), v” nhĂłng cžc
ÂźoÂčn m· PHP v”o cžc trang HTML .v.v.
Nhâ trÂȘn chĂłng ta Ÿ· trĂnh b”y, cÂŹ sĂ« dĂ· liĂu cho trang Web l” th”nh
phĂn kh«ng thĂ thiĂu, nĂŁ Ÿãng vai trĂ quyĂt ÂźĂnh cho châÂŹng trĂnh. VĂ lĂœ do
Ÿã, phĂn tiĂp theo chĂłng ta sĂ kh¶o sžt ng«n ngĂ· SQL v” cžc h”m API cña
PHP Ÿà thĂčc hiĂn cžc lĂnh truy vĂn trÂȘn hĂ qu¶n trĂ cÂŹ sĂ« dĂ· liĂu MySQL.
X. Cžc h”m API trong PHP
1. GiĂi thiĂu vĂ MySQL .
PHP hç trĂź mĂ©t sĂš lâĂźng lĂn cžc h”m l”m viĂc vĂi cÂŹ sĂ« dĂ· liĂu nh
Oracle, Sybase, PostgreSQL, MySQL. .. Th«ng qua chuĂn ODBC (Open
Database Connectivity), b»ng cžch sö dÎng cžc h”m API (Application
36
37. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
Programming Interface) m” PHP cĂŁ thĂ l”m viĂc ÂźâĂźc vĂi nhiĂu hĂ qu¶n trĂ
cÂŹ sĂ« dĂ· liĂu nhâ vĂy. NĂu hĂ qu¶n trĂ cÂŹ sĂ« dĂ· liĂu kh«ng hç trĂź ODBC ,v”
hÂŹn nĂ·a ODBC cĂŁ ÂźĂc ÂźiĂm chĂ hç trĂź Ă« dÂčng chuĂn thĂ PHP cĂŁ thĂ l”m viĂc
vĂi ODBC Ă« tĂng trÂȘn. NĂu kh«ng muĂšn sö dĂŽng ODBC ta cĂŁ thĂ sö dĂŽng
cžc h”m API .
Trong phĂn n”y chĂłng ta chĂ sö dĂŽng cžc h”m API Ÿà l”m viĂc vĂi hĂ
qu¶n trĂ cÂŹ sĂ« dĂ· liĂu MySQL .
2. Cžc h”m cÂŹ b¶n l”m viĂc vĂi cÂŹ sĂ« dĂ· liĂu MySQL.
a) Cžc h”m kĂt nĂši ÂźĂn MySQL Server
PHP cung cĂp hai h”m Ÿà kĂt nĂši vĂi cÂŹ sĂ« dĂ· liĂu MySQL :
mysql_connect v” mysql_pconnect .
+ mysql_connect () : h”m n”y sĂ tÂčo ra mĂ©t liÂȘn kĂt tĂi mžy chñ
MySQL .
Có phžp :
int mysql_connect (string [hostname [:port] [:/path_to_socket]], string
[username], string [password]);
Trong Ÿã :
- hostname : TÂȘn mžy chñ cÂŹ sĂ« dĂ· liĂu, nÂŹi trang web sĂ chĂža cÂŹ sĂ«
dĂ· liĂu. Giž trĂ ngĂm ÂźĂnh l” âlocalhostââ
- :port : §Ăa chĂ cĂŠng, nÂŹi bĂ© mžy cÂŹ sĂ« dĂ· liĂu lŸng nghe yÂȘu cĂu. Giž trĂ
ngĂm ÂźĂnh l” â:3306â .
- :/path_to_socket : CĂČng giĂšng nhâ :port nhâng chĂ cho hĂ ÂźiĂu h”nh
UNIX. Giž trĂ ngĂm ÂźĂnh l” â:/tmp/mysql.sockâ .
- username : TÂȘn cña ngâĂȘi sö dĂŽng ÂźâĂźc phĂp kĂt nĂši v”o bĂ© mžy cÂŹ
sĂ« dĂ· liĂu.
- password : MĂt khĂu cña ngâĂȘi sö dĂŽng Ÿà kĂt nĂši v”o bĂ© mžy cÂŹ sĂ«
dĂ· liĂu.
H”m n”y tr¶ vĂ m· sĂš nhĂn dÂčng nĂu kĂt nĂši th”nh c«ng, giž trĂ 0
(false) nĂu viĂc kĂt nĂši cĂŁ lçi. M· sĂš nhĂn dÂčng n”y sĂ ÂźâĂźc sö dĂŽng cho tĂt
c¶ cžc yÂȘu cĂu tĂi bĂ© mžy cÂŹ sĂ« dĂ· liĂu sau n”y.
37
38. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
SĂč kĂt nĂši n”y sà Ÿãng lÂči khi gĂ€i h”m mysql_close() hoĂc kĂt thĂłc
ÂźoÂčn PHP script.
+ mysql_pconnect() : H”m n”y tÂčo ra mĂ©t liÂȘn kĂt bĂn vĂ·ng vĂi mžy
chñ MySQL.
Có phžp :
int mysql_pconnect (string [hostname [:port] [:/path_to_socket]], string
[username], string [password]);
Tham sĂš v” giž trĂ tr¶ vĂ cña h”m n”y cĂČng giĂšng h”m
mysql_connect(). SĂč khžc biĂt giĂ·a hai h”m n”y l” liÂȘn kĂt tĂi mžy chñ
MySQL kh«ng bà Ÿãng lÂči kĂ c¶ khi kĂt thĂłc kĂch b¶n (script) PHP hay gĂ€i
h”m mysql_close(). MĂŽc ÂźĂch cña h”m n”y l” lu«n lu«n duy trĂ liÂȘn kĂt tĂi
mžy chñ MySQL do lu«n cĂŁ sĂč yÂȘu cĂu tĂi mžy chñ, tržnh cho mžy chñ ph¶i
tĂm kiĂm m· sĂš nhĂn dÂčng mĂi tĂ” Ÿã gi¶m thĂȘi gian truy cĂp .
ChĂł Ăœ : h”m n”y chĂ thĂčc hiĂn ÂźâĂźc khi PHP ÂźâĂźc ÂźĂnh cĂu hĂnh nhâ
l” mét module cña Web server .
+ mysql_close() : H”m n”y huĂ» bĂĄ sĂč kĂt nĂši tĂi mžy chñ MySQL .
Có phžp :
int mysql_close(int [link_identifier]);
Tham sĂš link_identifier l” m· sĂš nhĂn dÂčng tÂčo ra bĂ«i h”m
mysql_connect(). H”m tr¶ vĂ l” True nĂu th”nh c«ng, ngâĂźc lÂči l” False .
b) Cžc h”m thao tžc trÂȘn CSDL
+ mysql_create_db() : H”m tÂčo cÂŹ sĂ« dĂ· liĂu
Có phžp :
int mysql_create_db(string name, int [link_identifier]) ;
Trong Ÿã :
- string name : TÂȘn cña cÂŹ sĂ« dĂ· liĂu cĂn tÂčo.
- int link_identifier : M· sĂš nhĂn dÂčng ÂźâĂźc cĂp bĂ«i h”m
mysql_connect() .
ChĂłng ta ho”n to”n cĂŁ thĂ göi c©u lĂnh SQL Ÿà tÂčo cÂŹ sĂ« dĂ· liĂu th«ng
qua h”m mysql_query() .
38
39. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
+ mysql_drop_db() : H”m xož cÂŹ sĂ« dĂ· liĂu
Có phžp :
int mysql_drop_db(string name, int [link_identifier]);
Trong Ÿã :
- string name : TÂȘn cña cÂŹ sĂ« dĂ· liĂu cĂn xož .
- int link_identifier : M· sĂš nhĂn dÂčng ÂźâĂźc cĂp bĂ«i h”m
mysql_connect() .
ChĂłng ta ho”n to”n cĂŁ thĂ göi c©u lĂnh SQL Ÿà xož cÂŹ sĂ« dĂ· liĂu th«ng
qua h”m mysql_query().
+ mysql_select_db() : H”m cho cÂŹ sĂ« dĂ· liĂu hoÂčt Ÿéng .
Có phžp :
int mysql_select_db(string database_name, int [link_identifier]);
Trong Ÿã:
- database_name : TÂȘn cña cÂŹ sĂ« dĂ· liĂu m” sau n”y cžc h”m API
khžc cña PHP sĂ thĂčc hiĂn trÂȘn Ÿã.
- int link_identifier : M· nhĂn dÂčng ÂźâĂźc cĂp bĂ«i h”m mysql_connect().
C©u lĂnh n”y sĂ gŸn tÂȘn cÂŹ sĂ« dĂ· liĂu vĂi m· nhĂn dÂčng, sau n”y khi
l”m viĂc vĂi link_identifier sĂ bao gĂ„m c¶ cÂŹ sĂ« dĂ· liĂu ÂźâĂźc chĂ€n .
c) Cžc h”m thao tžc trÂȘn dĂ· liĂu
+ mysql_query() : H”m göi c©u lĂnh SQL tĂi mžy chñ MySQL .
Có phžp :
int mysql_query(string query, [int link_identifier]) ;
Trong Ÿã :
- string query : C©u lĂnh SQL cĂn göi tĂi mžy chñ MySQL .
- int link_identifier : M· sĂš nhĂn dÂčng, nĂŁ ph¶i ÂźâĂźc thĂčc hiĂn trong
h”m mysql_select_db() trâĂc Ÿã .
+ mysql_db_query() : H”m göi c©u lĂnh SQL tĂi mžy chñ MySQL .
Có phžp :
39
40. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
int mysql_db_query(string database, string query, int
[link_identifier]);
Trong Ÿã :
- string database : TÂȘn cÂŹ sĂ« dĂ· liĂu c©u lĂnh SQL sĂ thĂčc hiĂn trÂȘn Ÿã.
- string query : C©u lĂnh SQL cĂn thĂčc hiĂn .
- link_identifier : M· sĂš nhĂn dÂčng ÂźâĂźc cĂp bĂ«i h”m mysql_connect()
H”m n”y chĂ rĂą c©u lĂnh ÂźâĂźc thĂčc hiĂn trÂȘn cÂŹ sĂ« dĂ· liĂu n”o nÂȘn
trâĂc Ÿã kh«ng cĂn thĂčc hiĂn h”m mysql_select_db();
+mysql_insert_id() :
H”m lĂy giž trĂ ÂźâĂźc sinh ra tĂ” c©u truy vĂn INSERT trĂc
Có phžp :
int mysql_insert_id([link_identifier]) ;
trong Ÿã:
int link_identifier : M· sĂš nhĂn dÂčng ÂźâĂźc cĂp bĂ«i h”m
mysql_connect() .
H”m n”y tr¶ vĂ giž trĂ id ÂźâĂźc sinh ra trong cĂ©t AUTO_INCREMENT
bĂ«i c©u truy vĂn trâĂc Ÿã. §iĂu n”y chĂ cĂŁ tžc dĂŽng trÂȘn link_identifier ÂźâĂźc
chĂ ra trong h”m, nĂu gĂ€i h”m trÂȘn m” kh«ng chĂ ÂźĂnh tham sĂš link_identifier
thĂ liÂȘn kĂt ÂźâĂźc mĂ« cuĂši cĂŻng sĂ ÂźâĂźc chĂ ÂźĂnh.
H”m mysql_insert_id() tr¶ vĂ giž trĂ 0 nĂu c©u truy vĂn trâĂc Ÿã kh«ng sinh
ra mĂ©t giž trĂ AUTO_INCREMENT. NĂu ta muĂšn giĂ· lÂči giž trĂ cho lĂn sau,
thĂ ph¶i gĂ€i h”m n”y ngay sau c©u truy vĂn sinh ra giž trĂ .
+ mysql_fetch_row() :
H”m tr¶ vĂ mĂ©t m¶ng l” giž trĂ cña mĂ©t b¶ng ghi hiĂn tÂči vĂi chĂ sĂš l”
sĂš thĂž tĂč cña cžc trâĂȘng (chĂ sĂš bŸt ÂźĂu tĂ” 0). Sau Ÿã h”m sĂ trĂĄ tĂi b¶ng ghi
tiĂp theo cho tĂi khi gĂp b¶ng ghi cuĂši cĂŻng h”m tr¶ vĂ giž trĂ false. §à truy
xuĂt tĂi cžc giž trĂ cña cĂ©t ta viĂt : tÂȘn_m¶ng[sĂš thĂž tĂč]
Có phžp :
array mysql_fetch_row( int result_identifier);
40
41. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
Trong Ÿã : result_identifier l” m· sÚ tr¶ và cña h”m mysql_query()
hoĂc mysql_db_query() .
VĂ dĂŽ :
<?php
$mysql = âselect id, name from ds_thanhvienâ; // cau lenh SQL
$link = mysql_connect($host, $user, $password); //lay ma
mysql_select_db($database_name, $link);
$result = mysql_query($mysql ,$link);
while ($row = mysql_fetch_row($result))
{
echo $row[0] ;
echo $row[1];
}
?>
+ mysql_fetch_array() :
H”m tr¶ vĂ mĂ©t m¶ng l” giž trĂ cña mĂ©t b¶ng ghi hiĂn tÂči, sau Ÿã h”m
sĂ trĂĄ tĂi b¶ng ghi tiĂp theo cho tĂi khi gĂp b¶ng ghi cuĂši cĂŻng h”m tr¶ vĂ
giž trà false.
Có phžp :
array mysql_fetch_array( int result_identifier [, int result_type] );
Trong Ÿã : result_identifier l” m· sÚ tr¶ và cña h”m mysql_query()
hoĂc mysql_db_query() .
§à truy xuĂt ÂźĂn cžc th”nh phĂn cña cĂ©t :
tÂȘn_biĂn_m¶ng[âtÂȘn_trĂȘngâ];
result_type l” mĂ©t h»ng sĂš cĂŁ thĂ nhĂn cžc giž trĂ sau:
-MYSQL_NUM : chĂ tr¶ lÂči mĂ©t m¶ng chĂža cžc chĂ sĂš l” sĂš (giĂšng
nhâ h”m mysql_fetch_row() )
-MYSQL_ASSOC: chĂ tr¶ lÂči mĂ©t m¶ng liÂȘn kĂt
41
42. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
-MYSQL_BOTH : tr¶ lÂči m¶ng chĂža ÂźĂčng cžc chĂ sĂš gĂ„m c¶ cžc con
sĂš v” chĂ sĂš liÂȘn kĂt .
H”m n”y l” sĂč mĂ« rĂ©ng cña h”m mysql_fetch_row(). NĂŁ cho phĂp truy
cĂp trâĂȘng dĂ· liĂu cña m¶ng kĂt qu¶ kh«ng chĂ th«ng qua cžc chĂ sĂš l” cžc sĂš
m” chĂłng cĂŁ thĂ l” tÂȘn cña cžc trâĂȘng dĂ· liĂu. §iĂu n”y l”m cho viĂc lĂp
trĂnh Ÿn gi¶n v” chĂnh xžc hÂŹn.
VĂ dĂŽ:
<?php
$mysql = âselect id, name from ds_thanhvienâ;
$link = mysql_connect($host, $user, $password);
$result = mysql_db_query(âphpâ, $mysql);
while ($row = mysql_fetch_array($result)) {
echo âuser_id: â. $row[âidâ] .â<BR>nâ;
echo âuser_id: â. $row[0] .â<BR>nâ;
echo âuser_name: â. $row[ânameâ] .â<BR>nâ;
echo âuser_name: â. $row[1] .â<BR>nâ;
}
mysql_free_result ($result);
?>
+ mysql_fetch_object() : H”m tr¶ vĂ mĂ©t ŸÚi tâĂźng l” giž trĂ cña mĂ©t b¶ng ghi
hiĂn thĂȘi. Sau Ÿã h”m sĂ trĂĄ tĂi b¶ng ghi tiĂp theo cho tĂi khi gĂp b¶ng ghi cuĂši
cĂŻng h”m tr¶ vĂ giž trĂ false. §à truy xuĂt tĂi cžc giž trĂ cña cĂ©t ta viĂt
tÂȘn_object->tÂȘn_cĂ©t .
Có phžp :
object mysql_fetch_object(int result_identifier);
Trong Ÿã : result_identifier l” m· sÚ tr¶ và cña h”m mysql_query()
hoĂc mysql_db_query() .
VĂ dĂŽ :
42
43. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
<?php
$mysql = âselect id, name from ds_thanhvienâ;
$link = mysql_connect($host, $user, $password);
$result = mysql_db_query(âphpâ, $mysql);
while ($row = mysql_fetch_object($result)) {
echo $row->id ;
echo $row->name;
}
?>
+mysql_fetch_assoc() :lĂy vĂ mĂ©t dĂng kĂt qu¶ nhâ l” mĂ©t m¶ng liÂȘn
kĂt .
có phžp: array mysql_fetch_assoc(int result_identifier)
Trong Ÿã : result_identifier l” m· sÚ tr¶ và cña h”m mysql_query()
hoĂc mysql_db_query() .
H”m tr¶ vĂ mĂ©t m¶ng tâÂŹng Ăžng vĂi mĂ©t b¶n ghi ÂźâĂźc lĂy vĂ v” tr¶ lÂči
FALSE nĂu kh«ng cĂŁ b¶n ghi n”o. H”m n”y tâÂŹng ÂźâÂŹng vĂi h”m
array mysql_fetch_array() vĂi tham sĂš result_type l” : MYSQL_ASSOC
vĂ dĂŽ :
<?php
$mysql = âselect id, name from ds_thanhvienâ;
$link = mysql_connect($host, $user, $password);
$result = mysql_db_query(âphpâ, $mysql);
while ($row = mysql_fetch_assoc($result)) {
echo $row[âidâ];
echo $row[ânameâ];
}
?>
43
44. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
+mysql_data_seek()
Di chuyĂn con trĂĄ bÂȘn trong âtĂp kĂt qu¶â (cĂŁ ÂźâĂźc sau khi c©u truy vĂn
SELECT ÂźâĂźc thĂčc hiĂn)
Có phžp: bool mysql_data_seek(int result_identifier, int row_number);
Trong Ÿã : result_identifier l” m· sÚ tr¶ và cña h”m mysql_query(),
mysql_db_query(), mysql_list_tables(), mysql_list_dbs() .
row_number l” chĂ sĂš cña b¶n ghi m” cĂn ÂźĂt con trĂĄ v”o .
H”m tr¶ vĂ true nĂu th”nh c«ng, false nĂu lçi .
H”m n”y sĂ di chuyĂn con trĂĄ bÂȘn trong âtĂp kĂt qu¶â (ÂźâĂźc chĂ rĂą bĂ«i
tham ŸÚi result_identifier) ÂźĂn dĂng cĂŁ m· b»ng tham ŸÚi row_number.
Cžc dĂng trong tĂp kĂt qu¶ ÂźâĂźc bŸt ÂźĂu tĂ” 0
VĂ dĂŽ:
<?php
$link = mysql_pconnect ($host, $user, $password)
or die ("Could not connect");
$query = "SELECT last_name, first_name FROM friends";
$result = mysql_db_query (âphpâ,$query)
or die ("Query failed");
# fetch rows in reverse order
for ($i = mysql_num_rows ($result) - 1; $i >=0; $i--) {
if (! Mysql_data_seek ($result, $i)) {
printf ("Cannot seek to row %dn", $i);
continue;
}
if(!($row = mysql_fetch_object ($result)))
continue;
printf ("%s %s<BR>n", $row->last_name, $row->first_name);
}
mysql_free_result ($result);
?>
44
45. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
+ mysql_num_rows() :tr¶ lÂči sĂš dĂng trong result_identifier (nÂŹi chĂža kĂt
qu¶ cña c©u lĂnh SQL Ÿ· ÂźâĂźc thĂčc hiĂn)
có phžp: mysql_num_rows(int result_identifier) ;
Trong Ÿã : result_identifier l” m· sÚ tr¶ và cña h”m mysql_query(),
mysql_db_query(), mysql_list_tables(), mysql_list_dbs() .
+mysql_affected_rows()
có phžp : int mysql_affected_rows(int [link_identifier]) ;
Trong Ÿã :int link_identifier l” m· sĂš nhĂn dÂčng, nĂŁ ph¶i ÂźâĂźc thĂčc hiĂn
trong h”m mysql_select_db() trâĂc Ÿã .
H”m tr¶ vĂ sĂš dĂng Ÿ· bĂ tžc Ÿéng bĂ«i mĂ©t c©u truy vĂn SQL :INSERT,
UPDATE, DELETE trâĂc Ÿã theo tham sĂš link_identifier. NĂu
link_identifier kh«ng ÂźâĂźc chĂ ÂźĂnh thĂ m· kĂt nĂši trâĂc Ÿã sĂ ÂźâĂźc chĂ ÂźĂnh.
ChĂł Ăœ :
- NĂu c©u lĂnh SQL trâĂc Ÿã l” DELETE m” kh«ng cĂŁ mĂnh Ÿà WHERE thĂ
to”n bĂ© cžc b¶n ghi trong b¶ng Ÿ· bĂ xož nhâng h”m mysql_affected_rows()
sà tr¶ và gižn trà 0.
-H”m n”y kh«ng cĂŁ tžc dĂŽng ŸÚi vĂi c©u lĂnh truy vĂn SELECT. §à lĂy ÂźâĂźc
sĂš dĂng tr¶ vĂ (sĂš dĂng Ÿ· bĂ tžc Ÿéng) bĂ«i c©u lĂnh SELECT ta dĂŻng
h”m mysql_num_rows().
+mysql_result() : lĂy dĂ· liĂu tĂ” result_identifier
có phžp : mixed mysql_result(int result_identifier, int row, mixed [field]);
Trong Ÿã : result_identifier l” m· sÚ tr¶ và cña h”m mysql_query(),
mysql_db_query(), mysql_list_tables(), mysql_list_dbs() .
row l” b¶n ghi m” ta sĂ lĂy dĂ· liĂu
field l” trâĂȘng trong dĂng row m” ta sĂ lĂy dĂ· liĂu .
Cžc tham sĂš result_identifier v” row ph¶i cĂŁ, cĂn tham field l” tĂŻy
chĂ€n. H”m sĂ tr¶ lÂči cžc nĂ©i dung cña dĂng row v” cĂ©t field tĂ” tĂp kĂt qu¶
ÂźâĂźc chĂ ÂźĂnh bĂ«i biĂn result_identifier. NĂu ŸÚi sĂš field kh«ng ÂźâĂźc chĂ
ÂźĂnh rĂą thĂ trâĂȘng tiĂp theo cña b¶n ghi sĂ ÂźâĂźc tr¶ vĂ .
45
46. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
VĂ dĂŽ:
<?php
$mysql = âselect id, name from ds_thanhvienâ;
$link = mysql_connect($host, $user, $password);
$result = mysql_db_query(âphpâ, $mysql);
echo â mysql_result($result, 0, âidâ) <BR>nâ;
echo â mysql_result($result, 0, ânameâ) <BR>nâ;
?>
+mysql_free_result() : H”m gi¶i phĂŁng vĂŻng bĂ© nhĂ ÂźâĂźc liÂȘn kĂt vĂi
result_identifier .
có phžp: mysql_free_result(int result_identifier) ;
Trong Ÿã : result_identifier l” m· sÚ tr¶ và cña h”m mysql_query(),
mysql_db_query(), mysql_list_tables(), mysql_list_dbs() .
H”m n”y chĂ ÂźâĂźc dĂŻng nĂu nhâ bÂčn Ÿžnh giž thĂy r»ng kĂch b¶n cña
bÂčn sö dĂŽng quž nhiĂu bĂ© nhĂ khi Âźang chÂčy. GĂ€i h”m n”y trÂȘn mĂ©t trĂnh xö
lĂœ kĂt qu¶ sĂ gi¶i phĂŁng to”n bĂ© dĂ· liĂu liÂȘn kĂt trong bĂ© nhĂ .
Ngo”i ra cĂn cžc h”m khžc:
string mysql_tablename (int result_identifier, int i)
H”m tr¶ lÂči tÂȘn cña b¶ng/csdl tÂči chĂ sĂš i trong result_identifier.
string mysql_field_name (int result_identifier, int field_index)
H”m tr¶ lÂči tÂȘn cña trâĂȘng tÂči vĂ trĂ field_index trong m· result_identifier
int mysql_list_dbs ([int link_identifier])
H”m tr¶ lÂči mĂ©t result_identifier l” danh sžch biĂn CSDL trÂȘn MySQL Server
nĂu th”nh c«ng, lçi tr¶ vĂ false .
int mysql_list_tables (string database [, int link_identifier])
H”m tr¶ vĂ danh sžch tĂt c¶ c©c b¶ng trong mĂ©t CSDL MySQL, th”nh c«ng
tr¶ vĂ mĂ©t result identifier, giž trĂ false nĂu cĂŁ lçi .
46
47. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
int mysql_list_fields (string database_name, string table_name [, int
link_identifier])
H”m tr¶ vĂ th«ng tin liÂȘn quan ÂźĂn mĂ©t b¶ng dĂ· liĂu.
int mysql_num_fields (int result_identifier)
Tr¶ vĂ sĂš trâĂȘng trong tĂp kĂt qu¶ .
int mysql_num_rows (int result_identifier)
Tr¶ vĂ sĂš b¶n ghi trong tĂp kĂt qu¶, h”m n”y chĂ cĂŁ giž ŸÚi vĂi cžc c©u lĂnh
SELECT ,Ÿà lĂy lÂči sĂš b¶n ghi ÂźâĂźc tr¶ lÂči tĂ” cžc lĂnh :INSERT, UPDATE
hoĂc DELETE, dĂŻng mysql_affected_rows().
string mysql_field_type (int result_identifier, int field_index)
H”m tr¶ vĂ kiĂu dĂ· liĂu cña trâĂȘng tÂči vĂ trĂ field_index trong m·
result_identifier .
int mysql_field_len (int result_identifier, int field_offset)
H”m tr¶ và Ÿé d”i cña trâĂȘng ÂźâĂźc chĂ ÂźĂnh th«ng qua tham sĂš field_offset .
array mysql_fetch_lengths (int result_identifier)
tr¶ vĂ mĂ©t m¶ng tâÂŹng Ăžng vĂi cžc Ÿé d”i cña mçi trâĂȘng trong b¶n ghi ÂźâĂźc
lĂy vĂ bĂ«i h”m mysql_fetch_row() hoĂc false nĂu cĂŁ lçi.
int mysql_errno ([int link_identifier])
H”m tr¶ vĂ m· lçi tĂ” h”m thao tžc CSDL MySQL trâĂc ,tr¶ vĂ giž trĂ 0 nĂu
kh«ng cã lçi .
string mysql_error ([int link_identifier])
H”m tr¶ vĂ x©u th«ng bžo lçi tĂ” h”m thao tžc CSDL MySQL trâĂc, tr¶ vĂ
x©u rçng nĂu kh«ng cĂŁ lçi .
object mysql_fetch_field (int result_identifier [, int field_offset])
LĂy th«ng tin vĂ trĂȘng tĂ” tĂp kĂt qu¶ rĂ„i tr¶ lÂči nh mĂ©t ŸÚi tâĂźng.
47
48. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
XI. Session v” Cookie
1. Session l” gà ?
HTTP l” giao thĂžc kh«ng ÂźâĂźc x©y dĂčng theo cžch Ÿà cĂŁ thĂ lu giĂ· ÂźâĂźc
trÂčng thži giĂ·a hai lĂn giao dĂch. Khi mĂ©t ngâĂȘi dĂŻng yÂȘu cĂu truy nhĂp mĂ©t
trang Web, rĂ„i sau Ÿã ngâĂȘi dĂŻng n”y lÂči tiĂp tĂŽc yÂȘu cĂu truy nhĂp ŸÚi vĂi
trang Web khžc thĂ HTTP kh«ng thĂ biĂt ÂźâĂźc r»ng Ÿã l” hai yÂȘu cĂu tĂ” cĂŻng
mĂ©t ngâĂȘi dĂŻng.
Ăœ tâĂ«ng cña viĂc ÂźiĂu khiĂn phiÂȘn l”m viĂc l” cĂŁ thĂ lâu vĂt cña mĂ©t ngâĂȘi
dĂŻng trong suĂšt mĂ©t phiÂȘn l”m viĂc.
NĂu chĂłng ta l”m ÂźâĂźc ÂźiĂu n”y thĂ sĂ dĂ d”ng cung cĂp mĂ©t truy nhĂp cho
ngâĂȘi dĂŻng, tĂ” Ÿã ta cĂŁ thĂ lâu vĂt trÂčng thži cña ngâĂȘi dĂŻng v” cĂŁ thĂ thĂčc
hiĂn viĂc mua bžn trÂȘn mÂčng.
Session trong PHP ÂźâĂźc ÂźiĂu khiĂn bĂ«i mĂ©t giž trĂ ID duy nhĂt gĂ€i l”
âsessionIDâ, giž trĂ n”y sĂ ÂźâĂźc tĂč Ÿéng sinh ra v” m· hĂŁa. SessionID ÂźâĂźc
sinh ra bĂ«i PHP v” ÂźâĂźc lâu trĂ· Ă« phĂa client trong suĂšt mĂ©t phiÂȘn giao dĂch.
NĂŁ cĂŁ thĂ ÂźâĂźc lâu trĂ· trÂȘn cžc Cookie Ă« mžy ngâĂȘi dĂŻng hay truyĂn lÂȘn cžc
URL.
SessionID cĂŁ tžc dĂŽng nhâ mĂ©t khož Ÿà bÂčn cĂŁ thà Ÿšng kĂœ nhĂ·ng biĂn ÂźĂc
biĂt gĂ€i l” biĂn session. NĂ©i dung cña nhĂ·ng biĂn n”y ÂźâĂźc chĂža trÂȘn Server.
SessionID l” nhĂ·ng th«ng tin chĂ thĂy ÂźâĂźc Ă« phĂa client. NĂu tÂči thĂȘi ÂźiĂm
n”o Ÿã cña mĂ©t kĂt nĂši ÂźĂn trang Web cña bÂčn, sessionID cĂŁ thĂ thĂy ÂźâĂźc
trÂȘn cookie hay URL, bÂčn cĂŁ thĂ truy nhĂp nhĂ·ng biĂn session chĂž trÂȘn
Server Ă« phiÂȘn l”m viĂc Ÿã.
2) Cookie l” gà ?
Cookie l” nhĂ·ng mĂu tin nhĂĄ m” trang script cĂŁ thĂ chĂža trÂȘn cžc mžy khžch
(client). BÂčn cĂŁ thĂ thiĂt lĂp mĂ©t cookie trÂȘn mĂ©t mžy ngâĂȘi dĂŻng b»ng cžch
göi mĂ©t âHTTP headerâ cĂŁ chĂža dĂ· liĂu theo dÂčng sau:
Set-Cookie:Name=VALUE;[expires=DATE;][path=PATH;]
[domain=DOMAIN_NAME;][secure]
c©u lĂnh n”y sĂ tÂčo ra mĂ©t cookie cĂŁ tÂȘn gĂ€i l” NAME vĂi giž trĂ l” VALUE.
TrâĂȘng expires sĂ thiĂt lĂp ng”y m” cookie sĂ hĂt hiĂu lĂčc, path v” domain
cĂŁ thĂ ÂźâĂźc sö dĂŽng Ÿà chĂ ÂźĂnh cžc URL (nÂŹi m” cookie sĂ ÂźâĂźc göi Âźi). TĂ”
48
49. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
khož secure cĂŁ nghĂa l” cookie sĂ kh«ng göi Âźi trÂȘn quž mĂ©t kĂt nĂši HTTP
chuĂn.
Khi mĂ©t browser kĂt nĂši tĂi mĂ©t URL, trĂc tiÂȘn nĂŁ kiĂm tra cžc cookie Ÿ·
ÂźâĂźc lâu trĂ· trÂȘn mžy. NĂu cĂŁ bĂt kĂ mĂ©t cookie n”o cĂŁ liÂȘn quan ÂźĂn ÂźĂa chĂ
URL vĂ”a ÂźâĂźc kĂt nĂši, chĂłng sĂ ÂźâĂźc truyĂn trĂ« lÂči cho server.
3) ThiĂt lĂp cžc cookie tĂ” PHP
Ta cĂŁ thĂ thiĂt lĂp cžc cookie trong PHP b»ng cžch sö dĂŽng h”m:
int setcookie (string name [,string value [,int expire [,string path [,string
domain [, int secure]]]]]);
NhĂ·ng tham ŸÚi cña h”m tâÂŹng Ăžng vĂi nhĂ·ng tham ŸÚi cña Set-Cookie
header Ă« trÂȘn.
NĂu ta thiĂt lĂp cookie nhâ sau:
setcookie ("TestCookie", "Test Value");
thĂ khi ngâĂȘi dĂŻng ÂźĂn thšm trang kĂ tiĂp trong site cña ta (hoĂc reload trang
hiĂn tÂči) ta sĂ ph¶i truy nhĂp v”o biĂn vĂi tÂȘn l” "TestCookie" cĂŁ chĂža giž trĂ
l” "Test Value", ta chĂ cĂŁ thĂ truy nhĂp tĂi nĂŁ th«ng qua biĂn m¶ng
$HTTP_COOKIE_VARS [] cña PHP .
Ta cĂŁ thĂ xož mĂ©t cookie b»ng cžch gĂ€i lÂči h”m setcookie() vĂi tham ŸÚi nhâ
sau:
tÂȘn cña cookie l” tÂȘn cña cookie cĂn xož v” kh«ng cĂŁ trâĂȘng giž trĂ.
4) Sö dĂŽng kĂt hĂźp cookie vĂi session
§Úi vĂi cookie cĂŁ mĂ©t sĂš vĂn Ÿà sau Ÿ©y:
MĂ©t v”i webrowser kh«ng thĂ truy cĂp ÂźâĂźc tĂi cžc cookie (kh«ng hç trĂź
cookie) v” mĂ©t sĂš ngâĂȘi dĂŻng kh«ng cĂŁ cžc cookie trÂȘn browser cña hĂ€. §©y
l” lĂœ do Ÿà PHP sö dĂŽng c¶ hai cžch thĂžc :cookie v” URL method.
Khi sö dĂŽng PHP session, ta sĂ kh«ng ph¶i thiĂt lĂp cžc cookie, nhĂ·ng h”m
session sĂ lâu giĂ· nhĂ·ng th«ng tin n”y cho chĂłng ta.
§à xem nĂ©i dung cña cžc cookie Ÿ· ÂźâĂźc thiĂt lĂp bĂ«i session ta sö dĂŽng
h”m:
session_get_cookie_params(). H”m n”y sĂ tr¶ vĂ mĂ©t m¶ng liÂȘn kĂt m” cžc
phĂn tö cña m¶ng chĂža cžc th«ng tin nhâ: lifetime, path, domain,.. .
49
50. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
§à thiĂt lĂp cžc tham sĂš cho session cookie ta dĂŻng h”m:
void session_set_cookie_params (int lifetime [, string path [, string
domain]])
5) Lâu giĂ· sessionID
PHP sĂ sö dĂŽng cžc cookie mĂc ÂźĂnh cĂŻng vĂi session. NĂu cĂŁ thĂ ÂźâĂźc, mĂ©t
cookie sĂ ÂźâĂźc thiĂt lĂp chĂža SessionID.
MĂ©t cžch Ÿà sö dĂŽng cžc SessionID trÂȘn URL Ÿã l” dĂch PHP cĂŻng vĂi lĂča
chĂ€n âenable-tran-sid.
Cžch nĂ·a l” ta cĂŁ thĂ Âźa sessionID v”o trong thĂ link. SessionID ÂźâĂźc chĂža
trong h»ng SID. §à l”m ÂźâĂźc ÂźiĂu n”y, ta thÂȘm v”o cuĂši thĂ link h»ng SID
Ÿà dĂŻng nĂŁ nhâ l” phâÂŹng thĂžc GET.
VĂ dĂŽ:
<A HREF = âlink.php?<?=SID?>â>
H»ng SID l”m viĂc ÂźâĂźc nhâ trÂȘn chĂ khi ta cĂu hĂnh PHP cĂŻng vĂi
--enable-track-vars.
6) ThĂčc thi nhĂ·ng phiÂȘn l”m viĂc Ÿn gi¶n.
NhĂ·ng bâĂc cÂŹ b¶n cña viĂc sö dĂŽng session:
+ BŸt ÂźĂu mĂ©t Session
+ §šng kĂœ nhĂ·ng biĂn Session
+ Sö dĂŽng biĂn Session
+ HuĂ» bĂĄ biĂn Session v” kĂt thĂłc Session
6.1 BŸt ÂźĂu mĂ©t Session
Cžch Ÿn gi¶n nhĂt Ÿà bŸt ÂźĂu mĂ©t Session l” dĂŻng h”m:
Bool Session_start();
H”m n”y sĂ kiĂm tra xem Ÿ· cĂŁ mĂ©t Session ID n”o Ÿ· ÂźâĂźc tÂčo ra hay châa.
NĂu châa thĂ nĂŁ sĂ tÂčo ra mĂ©t Session ID, cĂn nĂu Ÿ· tĂ„n tÂči mĂ©t Session ID
thĂ thĂčc chĂt nĂŁ chĂ lĂy ra nhĂ·ng biĂn Session Ÿà ta cĂŁ thĂ dĂŻng nĂŁ. H”m tr¶
vĂ giž trĂ TRUE nĂu th”nh c«ng ,ngâĂźc lÂči tr¶ vĂ giž trĂ FALSE.
50
51. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
ChĂłng ta cĂČng cĂŁ thĂ bŸt ÂźĂu mĂ©t Session b»ng cžch cĂu hĂnh PHP Ÿà nĂŁ tĂč
Ÿéng bŸt ÂźĂu khi cĂŁ ai Ÿã thšm trang Web cña ta. §iĂu n”y cĂŁ thĂ l”m ÂźâĂźc
nĂu ta chĂ€n session. auto_start trong file c:Windowsphp.ini
MĂ©t Session cĂČng sĂ ÂźâĂźc bŸt ÂźĂu khi ta Ÿšng kĂœ mĂ©t biĂn Session.
6.2 §šng kĂœ nhĂ·ng biĂn Session
§à cho mĂ©t biĂn cĂŁ thĂ lâu dĂu th«ng tin tĂ” mĂ©t trang script n”y sang trang
script khžc, ta cĂn ph¶i Ÿšng kĂœ nĂŁ b»ng cžch gĂ€i h”m:
bool session_register(mixed VarName [,mixed...]);
ViĂc Ÿšng kĂœ n”y sĂ lâu trĂ· tÂȘn biĂn v” ghi giž trĂ cña biĂn cho ÂźĂn khi phiÂȘn
giao dĂch kĂt thĂłc hoĂc khi ta huĂ» bĂĄ (deregister) viĂc Ÿšng kĂœ biĂn Ÿã.
VĂ dĂŽ:
§à Ÿšng kĂœ biĂn $Var_name ta viĂt nhâ sau:
$Var_name= 5;
session_register(âVar_nameâ);// kh«ng nÂȘn sö dĂŽng kĂœ tĂč $ trong Ÿšng kĂœ
mĂ©t biĂn
6.3 Sö dĂŽng biĂn Session
§à Ÿa mĂ©t biĂn Session v”o trong phÂčm vi m” nĂŁ cĂŁ thĂ ÂźâĂźc sö dĂŽng, ta cĂn
ph¶i khĂ«i tÂčo mĂ©t Session b»ng mĂ©t trong nhĂ·ng cžch Ÿ· nÂȘu trÂȘn.
Sau Ÿã, ta cĂŁ thĂ truy cĂp ÂźâĂźc nhĂ·ng biĂn n”y. NĂu Ÿ· Ÿšng kĂœ biĂn n”y l”
to”n cĂŽc b»ng cžch sö dĂŽng h”m register_global(), thĂ ta cĂŁ thĂ truy nhĂp
biĂn bĂnh thâĂȘng th«ng qua tÂȘn biĂn, vĂ dĂŽ : $Var_name ;
NĂu kh«ng khai bžo biĂn l” to”n cĂŽc thĂ ta ph¶i truy nhĂp nhĂ·ng biĂn Session
th«ng qua m¶ng liÂȘn kĂt $HTTP_SESSION_VARS(âVar_nameâ);
§à kiĂm tra xem mĂ©t biĂn Ÿ· ÂźâĂźc Ÿšng kĂœ l” biĂn Session hay châa ta dĂŻng
h”m: bool session_is_registered (string name);
H”m n”y tr¶ vĂ giž trĂ TRUE nĂu biĂn Ÿ· ÂźâĂźc Ÿšng kĂœ, ngâĂźc lÂči tr¶ vĂ
giž trà FALSE.
Ta cĂČng cĂŁ thĂ kiĂm tra mĂ©t biĂn cĂŁ l” biĂn Session b»ng cžch kiĂm tra
m¶ng liÂȘn kĂt $HTTP_SESSION_VARS() vĂ sĂč tĂ„n tÂči cña biĂn.
51
52. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
6.4 HuĂ» bĂĄ biĂn Session v” kĂt thĂłc Session
Khi muĂšn kĂt thĂłc mĂ©t biĂn Session, ta cĂŁ thĂ huĂ» bĂĄ Ÿšng kĂœ cña biĂn Ÿã
b»ng h”m : bool session_unregister (string name) ;
Trong Ÿã: name l” tÂȘn biĂn ta muĂšn huĂ» Ÿšng kĂœ (tÂȘn n”y kh«ng cĂn cĂŁ kĂœ
tĂč $)
H”m tr¶ vĂ giž trĂ TRUE nĂu th”nh c«ng ,ngâĂźc lÂči tr¶ vĂ giž trĂ FALSE.
H”m n”y chĂ cĂŁ thĂ huĂ» Ÿšng kĂœ cña mĂ©t biĂn Session tÂči mĂ©t thĂȘi ÂźiĂm.
§à huĂ» tĂt c¶ cžc biĂn Session hiĂn tÂči, ta dĂŻng h”m: void session _unset ( ) ;
§à kĂt thĂłc mĂ©t Session ta dĂŻng h”m:s
bool session_destroy () ;
H”m n”y sĂ xož Âźi SessionID v” hñy tĂt c¶ nhĂ·ng dĂ· liĂu liÂȘn quan ÂźĂn
Session n”y. H”m tr¶ vĂ giž trĂ TRUE nĂu th”nh c«ng, ngâĂźc lÂči tr¶ vĂ giž trĂ
FALSE.
Ta nÂȘn hñy tĂt c¶ cžc biĂn Session trâĂc khi kĂt thĂłc mĂ©t Session.
52
53. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
ChâÂŹng III : PhâÂŹng phžp Fast Template trong
PHP
I. Cžc kĂ thuĂt mĂu phĂŠ biĂn
Cžc mĂu cĂŁ thĂ ÂźâĂźc dĂŻng nĂu nhâ bÂčn Âźang thĂčc hiĂn mĂ©t site
thâĂȘng xuyÂȘn sö dĂŽng lÂči cžc th”nh phĂn .Trong phÂčm vi cña PHP ,cžc
mĂu Ă« Ÿ©y Ăœ nĂŁi ÂźĂn HTML. Kh«ng dĂŻng cžc mĂu ,mĂ©t web site phĂžc
tÂčp sĂ cĂŁ cĂu trĂłc rĂt nĂng.
§à gi¶i quyĂt vĂn Ÿà trÂȘn ,nhiĂu kĂ thuĂt mĂu Ÿ· tĂ„n tÂči, nhĂłng cĂŁ
thĂ hĂ·u Ăch trong mĂ©t sĂš trâĂȘng hĂźp. ChĂłng ta giĂi thiĂu qua mĂ©t sĂš kĂ
thuĂt ÂźâĂźc sö dĂŽng thâĂȘng xuyÂȘn .
HTML
Code/
structure Advantages
Name HTML Disadvantages Useful for
Defined
mixed
in PHP
Leadsto unreadable
Embedded Fastand scrips, noreuse of Quick and
Yes Yes
PHP easy existing code,hardto Smallscripts
maintain
Fast and
Separating easy, Leadsto unreadable Web sites
common Yes No scripts, often hard with LOC <
parts Reuseof to maintain 1000
certain pasts
Abstracts
HTML
completely Web sites
FastTemplate No No from Complex with LOC >
coding, easy 1000
to adapt to
new needs
53
54. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
ViĂc sö dĂŽng cžc mĂu trong cžc trĂnh Ăžng dĂŽng
1. Embedded PHP
ChĂłng ta cĂŁ thĂ nhĂłng cžc c©u lĂnh PHP v”o trong HTML. MĂ©t vĂ dĂŽ
ÂźiĂn hĂnh cña cžch thĂžc trÂȘn :
<HTML>
<HEAD>
<TITLE>powers</TITLE>
</HEAD>
<BODY BGCOLOR=âblackâ TEXT=âwhiteâ>
<H1>powers</H1>
<TABLE>
<TR>
<TH>i</TH>
<TH>i^i</TH>
</TR>
<?php
for ($i= 0 ; $i< 10 ; $i++) {
echo â<TR><TD>$i</TD><TD>â.pow($i,$i).â</TD></TR>nâ;
}
?>
</TABLE>
</BODY>
</ HTML >
PhâÂŹng phžp n”y ÂźâĂźc dĂŻng khž phĂŠ biĂn vĂi nhĂ·ng ngâĂȘi bŸt ÂźĂu
hĂ€c lĂp trĂnh PHP. TĂi mĂ©t lĂłc n”o Ÿã ,nhĂ·ng ngâĂȘi mĂi lĂp trĂnh b»ng
phâÂŹng phžp nhĂłng tiĂn tĂi sĂč th”nh thÂčo Ă« cžc mĂžc cao hÂŹn, nhâng thĂt
Ÿžng tiĂc, cžch lĂp trĂnh n”y lÂči ngšn c¶n ÂźiĂu Ÿã .
2. Separating common parts
54
55. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
MĂc dĂŻ kĂ thuĂt n”y cĂŁ sö dĂŽng lÂči cžc m· code/HTML v” viĂc thay ŸÊi
cĂČng dĂ d”ng hÂŹn ,nhâng nĂŁ vĂn thĂ”a hâĂ«ng hĂu hĂt cžc nhâĂźc ÂźiĂm cña
phâÂŹng phžp PHP nhĂłng .
Cžch l”m th«ng thâĂȘng l” bŸt ÂźĂu vĂi cžc HTML header v” footer, chĂłng
ÂźâĂźc viĂt th”nh cžc h”m. Cžc h”m n”y cĂŁ thĂ ÂźâĂźc gĂ€i khi cĂn ÂźĂn chĂłng
v” do Ÿã linh hoÂčt hÂŹn khi sö dĂŽng. SĂč thay ŸÊi cžc h”m sĂ ÂźâĂźc ph¶n
žnh trong tĂt c¶ cžc trâĂȘng hĂźp.
Ta tžch vĂ dĂŽ PHP nhĂłng Ă« trÂȘn ra hai file .
TĂp prepend.inc chĂža hai h”m :hiĂn thĂ mĂ©t HTML header v” mĂ©t HTML
footer .
<?php //prepend.inc
function CommonHeader($title) {
?>
<HTML>
<HEAD>
<TITLE><?php echo $title ?></TITLE>
</HEAD>
<BODY BGCOLOR=âblackâ TEXT=âwhiteâ>
<H1><?php echo $title ?></H1>
<?php
}
function CommonFooter() {
?>
</TABLE>
</BODY>
</HTML>
<?php
}
?>
TĂp main.php sö dĂŽng tĂp prepend.inc
55
56. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
<?php include âprepend.incâ; ?>
<?php CommonHeader( âpowerâ ); ?>
<TABLE>
<TR>
<TH>i</TH>
<TH>i^i</TH>
</TR>
<?php
for ($i= 0 ; $i< 10 ; $i++) {
echo â<TR><TD>$i</TD><TD>â.pow($i,$i).â </TD></TR>nâ;
}
?>
</TABLE>
<?php CommonFooter(); ?>
3. FastTemplate
Trong phĂn n”y chĂłng ta cĂŻng tĂm hiĂu vĂ phâÂŹng phžp thiĂt kĂ
Web trong PHP l” FastTemplate. §©y l” phâÂŹng phžp hay, nĂŁ ÂźâĂźc gŸn
kĂm vĂi cžc gĂŁi Ăžng dĂŽng cña PHP, nĂŁ ÂźâĂźc x©y dĂčng trong tĂp tin cĂŁ
tÂȘn class. FastTemplate.php .
MĂŽc ÂźĂch cña phâÂŹng phžp n”y l” giĂłp cho châÂŹng trĂnh viĂt b»ng PHP
cĂŁ nhiĂu giao diĂn khžc nhau trÂȘn cĂŻng mĂ©t cÂŹ sĂ« m·, v” l”m gi¶m khĂši
lâĂźng c«ng viĂc do châÂŹng trĂnh ÂźâĂźc tžch ra l”m hai phĂn : phĂn viĂt
cžc ÂźoÂčn m· (code) v” phĂn thiĂt kĂ giao diĂn cho châÂŹng trĂnh. PhĂn
viĂt cžc ÂźoÂčn m· sĂ tĂnh tožn dĂ· liĂu v” thĂ hiĂn trÂȘn cžc trang HTML
th«ng qua cžc biĂn FastTemplate. PhĂn giao diĂn sĂ thiĂt kĂ giao diĂn
cho châÂŹng trĂnh b»ng ng«n ngĂ· HTML. Trong phĂn n”y chĂłng ta cĂŁ thĂ
lĂ„ng v”o trang HTML cžc ng«n ngĂ· nhâ Java Applet, JavaScript, ... cho
trang web thÂȘm sinh Ÿéng. ViĂc thÂȘm v”o trang HTML nhĂ·ng ÂźoÂčn m·
n”y kh«ng l”m ¶nh hâĂ«ng tĂi phĂn ÂźoÂčn m· PHP. Khi Ÿã, Ă« vĂ trĂ n”o
trÂȘn trang web cĂn thĂ hiĂn cžc kĂt qu¶ tĂnh tožn tĂ” ÂźoÂčn m· thĂ sĂ sö
dĂŽng cžc biĂn FastTemplate Ÿà thĂ hiĂn.
56
57. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
II. PhâÂŹng phžp FastTemplate
1. BiĂn FastTemplate
BiĂn FastTemplate l” gĂ ?
Cžc biĂn FastTemplate cĂŁ cĂu trĂłc nhâ sau :
{TEN_BIEN_FASTTEMPLATE}
BiĂn ÂźâĂźc ÂźĂt trong dĂu Ÿãng mĂ« ngoĂc nhĂ€n, tÂȘn biĂn Ă« giĂ·a, tÂȘn cĂŁ thĂ
l” chĂ· hoa hoĂc chĂ· thâĂȘng. Tuy nhiÂȘn trong phĂn ÂźoÂčn m· PHP bÂčn
cĂČng ph¶i viĂt giĂšng nhâ vĂy.
2. VĂ trĂ ÂźĂt biĂn FastTemplate
Cžc biĂn FastTemplatse cĂŁ thĂ ÂźĂt bĂt kĂș Ÿ©u trong trang HTML. NĂŁ
cĂŁ thĂ l” biĂn thĂ hiĂn th«ng tin trÂȘn cžc trang HTML khi ÂźâĂźc browser hiĂn
thĂ hoĂc cžc biĂn sĂ thÂȘm v”o cžc ÂźoÂčn m· HTML .
VĂ dĂŽ : ta ÂźĂt tÂȘn tĂp l” : vidu_template.tpl
<HTML>
<HEAD>
<TITLE>{TITLE}</TITLE>
</HEAD>
<BODY>
{CONTENT}
</BODY>
</HTML>
Trong vĂ dĂŽ trÂȘn cĂŁ hai biĂn FastTemplate l” {TITLE} v”
{CONTENT}. BiĂn {CONTENT} sĂ thĂ hiĂn th«ng tin trÂȘn trang web khi
ÂźâĂźc hiĂn thĂ, biĂn {TITLE} ÂźâĂźc thÂȘm v”o nhâ mĂ©t th”nh phĂn cña m·
HTML .
3. Mét và dÎ minh hÀa
Theo vĂ dĂŽ trÂȘn chĂłng ta Ÿ· cĂŁ tĂp âvidu_template.tplâ, b©y giĂȘ chĂłng ta
Âźi x©y dĂčng ÂźoÂčn script sau :
57
58. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
<?php
include âclass.FastTemplate.phpâ;
# khai bžo mĂ©t ŸÚi tâĂźng thuĂ©c lĂp FastTemplate
$tpl = new FastTemplate(â.â);
# §Ănh nghĂa mĂ©t b¶n ŸÄ cžc tĂp FastTemplate
$tpl->set_filenames(array(âbodyâ => âvidu_template.tpl â));
# Gžn cžc giž trĂ cho biĂn FastTemplate
$tpl->assign_vars(array(
âTITLEâ => âVi duâ,
âCONTENTâ => âNĂ©i dung cña trang webâ ));
# Cho hiĂn trang web n”y
$tpl->pparse(âbodyâ);
?>
4. BĂšn bâĂc cho mĂ©t trang web .
Trong mĂ©t script cĂn thĂčc hiĂn bĂšn bĂc theo thĂž tĂč sau :
BâĂc 1 : Khai bžo mĂ©t ŸÚi tâĂźng thuĂ©c lĂp FastTemplate
BâĂc 2 : Gžn cžc tĂp chĂža m· HTML (tĂp n”y cĂŁ phĂn mĂ« rĂ©ng kh«ng
nhĂt thiĂt l” *.htm) cho cžc phĂn tö cña m¶ng ÂźâĂźc ÂźĂnh nghĂa bĂ«i phâÂŹng
thĂžc set_filenames() ( bâĂc n”y ÂźâĂźc gĂ€i l” âÂźĂnh nghĂa mĂ©t b¶n ŸÄ cžc tĂp
FastTemplateâ ) .
BâĂc 3 : Gžn giž trĂ cho cžc biĂn FastTemplate trong cžc tĂp .
BâĂc 4 : Cho hiĂn trang web b»ng phâÂŹng thĂžc
pparse(âtÂȘn_trang_webâ)
ChĂł Ăœ :
+ BâĂc 2: Trong âÂźĂnh nghĂa mĂ©t b¶n ŸÄ cžc tĂp FastTemplateâ cĂŁ thĂ
nhiĂu tĂp ÂźâĂźc gžn .
+ BâĂc 4: Mçi lĂn gĂ€i phâÂŹng thĂžc pparse(); chĂ ÂźâĂźc mĂ©t tĂp
FastTemplate.
58
59. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
+ Cžc bâĂc 1,2,3,4 cĂŁ thĂ lĂp lÂči nhiĂu lĂn .
+ ThĂž tĂč gĂ€i phâÂŹng thĂžc pparse(); l” rĂt quan trĂ€ng vĂ nĂŁ ¶nh hâĂ«ng
ÂźĂn cžch thĂ hiĂn cña trang web.
5. KhĂši FastTemplate
Th«ng tin trÂȘn trang web cĂŁ thĂ ÂźâĂźc thĂ hiĂn dâĂi dÂčng b¶ng, vĂi sĂš
h”ng kh«ng xžc ÂźĂnh do Ÿã FastTemplate cĂŁ hç trĂź âkhĂši FastTemplateâ.
KhĂši FastTemplate sĂ lĂp Âźi lĂp lÂči mĂ©t ÂźoÂčn HTML n”o Ÿã khi ÂźâĂźc Ÿžnh
dĂu khĂši. XĂt vĂ dĂŽ sau :
H·y thĂčc hiĂn phĂp tĂnh 2a vĂi a = 1, ..., n. KĂt qu¶ ÂźâĂźc thĂ hiĂn bĂ«i
mĂ©t b¶ng gĂ„m hai cĂ©t, cĂ©t giž trĂ cña a v” cĂ©t kĂt qu¶ cña phĂp tĂnh 2a.
ChĂłng ta tÂčo tĂp
âtinh_2_mu.htmâ
<html>
<head>
<title>Tinh 2 mu a</title>
</head>
<body>
<table border="1"
width="100%">
<tr>
<td width="50%">
<p align="center">Gia tri a</td>
<td width="50%">
<p align="center">Tinh 2ÂȘ</td>
</tr>
<!-- BEGIN block -->
<tr>
<td width="50%">
<p align="center">{block.GIATRI}</td>
<td width="50%">
<p align="center">{block.KETQUA}</td>
59
60. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
</tr>
<!-- END block -->
</table>
</body>
</html>
Ta thĂy tĂp n”y tÂčo mĂ©t b¶ng hai h”ng hai cĂ©t, h”ng trÂȘn l” tiÂȘu Ÿà cña
cžc cĂ©t, h”ng dâĂi cĂ©t thĂž nhĂt l” giž trĂ cña a v” cĂ©t thĂž hai l” kĂt qu¶ cña
phĂp tĂnh 2a. H”ng dâĂi ÂźâĂźc bŸt ÂźĂu bĂ«i khož <!-- BEGIN block --> v” kĂt
thĂłc bĂ«i khož <!-- END block-->. Hai khož n”y cho biĂt phĂn bÂȘn trong sĂ bĂ
lĂp (block Ă« Ÿ©y l” tÂȘn khož), cžc biĂn FastTemplate bÂȘn trong cĂŁ dÂčng
{tenkhoa.TEN_BEN}.
§oÂčn PHP Script sĂ nhâ sau :
<?php
include "class.FastTemplate.php";
$tpl = new FastTemplate(".");
$tpl->set_filenames(array(
'tinh_2_mu_a' => 'tinh_2_mu.htm'
));
$n = 10;
for ($i = 1 ; $i <= $n ; $i++)
$tpl->assign_block_vars("block",array(
'GIATRI' => $i,
'KETQUA' => pow(2, $i)
));
$tpl->pparse("tinh_2_mu_a");
?>
KĂt qu¶ khi chÂčy châÂŹng trĂnh nhâ hĂnh vĂ.
60
61. Ban chĂ ÂźÂčo cntt cña cÂŹ quan ٦ng PHP & MySQL
PhĂn II : HĂ C„ SĂ« DĂ· LIĂU MYSQL
ChâÂŹng I. GiĂi thiĂu Ng«n ngĂ· MySQL
I. GiĂi thiĂu chung
MySQL rĂt phĂžc tÂčp, nhâng giao diĂn SQL trĂčc gižc v” dĂ hĂ€c. Trong
châÂŹng n”y chĂłng ta m« t¶ khži qužt vĂ cžc lĂnh, cžc kiĂu dĂ· liĂu v” cžc
h”m m” chĂłng ta cĂn biĂn Ÿà sö dĂŽng Mysql mĂ©t cžch cĂŁ hiĂu qu¶ v” cĂŁ
hiĂu suĂt cao.
ChâÂŹng n”y cung cĂp tĂt c¶ cžc h”m tham kh¶o trong Mysql. §à sö dĂŽng
châÂŹng n”y cĂŁ hiĂu qu¶ bÂčn cĂŁ thĂ tĂm ÂźĂn h”ng loÂčt cžc b¶ng Ÿ· ÂźâĂźc liĂt
kÂȘ.
Cžc âu ÂźiĂm cña MySQL:
âą MySQL l” mĂ©t hĂ qu¶n trĂ nhĂĄ, b¶o mĂt, v” rĂt dĂ sö dĂŽng, thâĂȘng
ÂźâĂźc sö dĂŽng cho cžc Ăžng dĂŽng nhĂĄ v” trung bĂnh. NĂŁ ÂźâĂźc sö
dĂŽng cho cžc Ăžng dĂŽng client / server vĂi mžy chñ mÂčnh nhâ
UNIX, Windows NT v” Windows 95/98, v” ÂźĂc biĂt trÂȘn mžy chñ
UNIX .
âą MySQL hç trĂź cžc ÂźiĂm v”o l” ANSI SQL92 v” ODBC mĂžc 0-2
SQL chuĂn.
âą MySQL hç trĂź nhiĂu ng«n ngĂ· cho viĂc th«ng bžo lçi nhâ : Czec,
Dutc, English, Estonian, French, German, Hungarian, Italian,
Norwegian Nynorsk, Polish, Portuguese, Spanish and Swedish.
Ng«n ngĂ· ÂźâĂźc hç trĂź mĂc ÂźĂnh cho dĂ· liĂu l” ISO-8859-1
(Latin1), muÚn thay ŸÊi ph¶i söa trong m· nguÄn .
âą Ng«n ngĂ· lĂp trĂnh sö dĂŽng viĂt cžc h”m API Ÿà th©m nhĂp cÂŹ sĂ«
dĂ· liĂu MySQL cĂŁ thĂ l” C, Perl, PHP.. .
âą Cžc b¶ng (table) trong cÂŹ sĂ« dĂ· liĂu MySQL cĂŁ kĂch thâĂc rĂt lĂn
v” ÂźâĂźc lâu Ă« thâ mĂŽc Datas. KĂch thâĂc lĂn nhĂt cña mĂ©t b¶ng tĂši
thiĂu l” 4GB v” nĂŁ cĂn phĂŽ thuĂ©c v” kĂch thâĂc lĂn nhĂt cña mĂ©t
file do hĂ ÂźiĂu h”nh quy ÂźĂnh .
61