Ban chØ ®¹o c«ng nghÖ th«ng tin cña c¬ quanMySQLBan chØ ®¹o cntt cña c¬ quan ®¶ng             PHP &                       ...
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   c...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                PHP & MySQLcã sù t−¬ng t¸c víi c¬ së d÷ liÖu ®Ó t¹o ra nh...
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...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                PHP & MySQL              “2 hours” // ®©y lµ mét kiÓu str...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                              PHP & MySQL   b. C¸c h»ng sè ®· ®−îc ®Þnh nghÜa trong PHP (...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                    PHP & MySQL        3. BiÕn vµ gi¸ trÞ logic.      + C...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                PHP & MySQL      + C¸c hµm lµm viÖc víi biÕn       gettyp...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                 PHP & MySQL      $id = “323bb”;      if (isset($id)) {  ...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                     PHP & MySQLIII. C¸c to¸n tö         + B¶ng c¸c phÐp ...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                  PHP & MySQL       + B¶ng c¸c phÐp to¸n quan hÖPhÐp ý ng...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                    PHP & MySQL   Ta sö dông dÊu “. “ ®Ó ghÐp hai biÕn ki...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                       PHP & MySQL      vÝ dô : 11 >> 2 = 2 ;      v× :  ...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                    PHP & MySQL          + To¸n tö sizeof (®èi t−îng) :  ...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                              PHP & MySQL             + NÕu l−îng else b»ng l−îng If th× ...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                              PHP & MySQL     B¾t nguån tõ :                      Cã thÓ ...
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ã...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                        PHP & MySQL                NÕu biÓu_thøc 2 b»ng 0...
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ã ®...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                PHP & MySQL      5. LÖnh DO ... WHILE      D¹ng lÖnh :   ...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                               PHP & MySQL        LÖnh break chØ cho phÐp tho¸t khái th©n...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                               PHP & MySQL      + Return : - Tr¶ mét gi¸ trÞ vÒ cho n¬i g...
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...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                PHP & MySQL      $countries[20] = “de”;      $countries[1...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng             PHP & MySQL                  “cr” => “Costa Rica”,                  “de” => ...
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      ...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                   PHP & MySQL     $countries = array (“Europs” => array ...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                PHP & MySQL      3. C¸c hµm s¾p xÕp m¶ng .      PHP cung ...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                              PHP & MySQL      }      KÕt qu¶ khi ch¹y ch−¬ng tr×nh :    ...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                              PHP & MySQL      Chi so b bang Costa Rica      Chi so c ban...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                             PHP & MySQL                   var $linkid;                  ...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                      PHP & MySQL      if (!$this->linkid)            {  ...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                 PHP & MySQL      <FORM ACTION=”nextpage.php” METHOD=”POS...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                              PHP & MySQL        - Thuéc tÝnh method : Method cã thÓ ®−îc...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                  PHP & MySQL      V¨n b¶n n»m gi÷a hai thÎ <Texterea> vµ...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                 PHP & MySQL      Më ®Çu b»ng thÎ < Input >, thÎ nµy cã t...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                               PHP & MySQLProgramming Interface) mµ PHP cã thÓ lµm viÖc ®...
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 ...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                               PHP & MySQL      + mysql_drop_db() : Hµm xo¸ c¬ së d÷ liÖu...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                PHP & MySQL       int mysql_db_query(string database, str...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                 PHP & MySQL      Trong ®ã : result_identifier lµ m· sè t...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                PHP & MySQL       -MYSQL_BOTH : tr¶ l¹i m¶ng chøa ®ùng c¸...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                   PHP & MySQL          <?php           $mysql = “select ...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                              PHP & MySQL+mysql_data_seek()Di chuyÓn con trá bªn trong “t...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                PHP & MySQL+ mysql_num_rows() :tr¶ l¹i sè dßng trong resu...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                     PHP & MySQL      VÝ dô:      <?php        $mysql = “...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                  PHP & MySQLint mysql_list_fields (string database_name,...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                               PHP & MySQLXI. Session vµ Cookie1. Session lµ g× ?HTTP lµ ...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                   PHP & MySQLkho¸ secure cã nghÜa lµ cookie sÏ kh«ng göi...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                               PHP & MySQL§Ó thiÕt lËp c¸c tham sè cho session cookie ta ...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                PHP & MySQLChóng ta còng cã thÓ b¾t ®Çu mét Session b»ng ...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                PHP & MySQL6.4 Huû bá biÕn Session vµ kÕt thóc SessionKhi...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                 PHP & MySQL Ch−¬ng III : Ph−¬ng ph¸p Fast Template trong...
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 ...
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...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                           PHP & MySQL   <?php include “prepend.inc”; ?>   <?php CommonHe...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                              PHP & MySQLII. Ph−¬ng ph¸p FastTemplate1. BiÕn FastTemplate...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                                PHP & MySQL      <?php      include “class.FastTemplate.p...
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 ...
Ban chØ ®¹o cntt cña c¬ quan ®¶ng                               PHP & MySQL       </tr>       <!-- END block -->      </ta...
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Upcoming SlideShare
Loading in …5
×

Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com

419 views

Published on

Học lập trình PHP

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
419
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com

  1. 1. Ban chØ ®¹o c«ng nghÖ th«ng tin cña c¬ quanMySQLBan 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. 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é ®Æct¶ 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Ýchcña nhiÒu ng−êi. PHP ®· kh«ng cßn lµ mét dù ¸n c¸ nh©n cña RasmusLerdorf 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åith¸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Ýnhthø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). PHP4nhanh h¬n so víi PHP3 rÊt nhiÒu. PHP b©y giê ®−îc gäi lµ PHP HypertextPreProcesor. 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«nng÷ HTML (HyperText Markup Language). §©y chØ lµ nh÷ng trang webtÜnh, nghÜa lµ chóng chØ chøa ®ùng mét néi dung cô thÓ víi nh÷ng dßng v¨nb¶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Çntí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¹ych−¬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. 3. Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQLcã sù t−¬ng t¸c víi c¬ së d÷ liÖu ®Ó t¹o ra nh÷ng trang web vµ ®©y ®−îc gäilµ trang web ®éng. Chóng ta h·y xem xÐt c¸ch ho¹t ®éngcña trang web ®−îc viÕt b»ng ng«n ng÷ HTMLvµ 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 serverKhi cã yªu cÇu tíi mét trang web tõ + Gửi lại cả file.htm cho browserphÝ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, webserver 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. 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. 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Ï chokÕ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. 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¸cbiÕ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. 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µyth× : $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ñachuç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 ÐpkiÓ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. 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«nghµ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. 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. 10. Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQLIII. C¸c to¸n tö + B¶ng c¸c phÐp to¸n sè häcPhÐ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. 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 thichto¸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. 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Õnph¶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 bittrong $a bÞ dÞch ph¶i ®i n vÞ trÝ. T−¬ng tù ta cã phÐp dÞch tr¸i . 12
  13. 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ªnmé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. 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µ : 4IV. C¸c c©u lÖnh ®iÒu khiÓn1. 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. 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Êttheo 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Êttheo 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. 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. 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. 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µnhphÇn cã thÓ gåm nhiÒu biÓu thøc. Khi ®ã mçi biÓu thøc ®−îc viÕt c¸ch nhaumé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 2th× 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ÊmphÈ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. 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. 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Önthù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ñaswitch, while, do ... while, for . 20
  21. 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øanã. 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¹imét chu tr×nh míi trong c¸c lÖnh for, while, do ... while mµ kh«ng cÇn thùchiÖ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 khaib¸o tiÒn xö lý include vµ require. Cho phÐp chóng ta x©y dùng c¸c hµm c¸ch»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 PHP1. 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¸cnhau 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. 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µm2. 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ñabiÕn ë ngoµi hµm ®ã. Muèn hµm lµm thay ®æi gi¸ trÞ cña biÕn ngoµi ta cÇnkhai 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. 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¸cnhau 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×nhC, 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Îoh¬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. 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¶ngcéng thªm mét. Ngoµi ra còng cã thÓ khai b¸o m¶ng mét chiÒu b»ng c©ulÖ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¶ngmét chiÒu kh«ng chØ lµ c¸c sè nguyªn mµ cßn lµ x©u ký tù. Ta cã thÓ khaib¸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. 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. 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. 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. 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¹im¶ng sÏ cã mét hµm t−¬ng øng. Víi m¶ng cã chØ sè lµ kiÓu nguyªn chóng tacã 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¾pxÕ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¾pxÕ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Óunguyª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. 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Õtqu¶ 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µmksort() – 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. 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étlí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éctÝnh ®ã. <? class Session { var $sqlhost = “localhost”; var $sqluser = “root”; var $sqlpass = “password”; var $sqldb = “session”; 30
  31. 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øckh¸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. 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¸ntö 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. 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. Trongmôc nµy chóng ta sÏ tr×nh bµy thªm vÒ nã víi träng t©m lµ FORM cñaHTML. Lý do lµ v× khi muèn giao tiÕp gi÷a HTML vµ PHP script th× kh«ngthÓ 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»mtrong 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. 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¶icã. - 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¨nb¶n theo kÝch th−íc cña hép v¨n b¶n) trong hép tho¹i. NÕu wrap=”off”, chøcn¨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 ®Õnbiªn cña hép v¨n b¶n, ký tù newline (OA hex) tù ®éng ®−îc thªm vµo nh−ngkh«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íiFORM. 34
  35. 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Önnh− ®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ÆpthÎ nµy cã thÓ lång trong FORM hay bÊt kú thµnh phÇn nµo cña FORMngo¹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éctÝ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Ï ®−îcchä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ÝnhMultiple ®−îc bËt trong Select, b¹n cã thÓ ®¸nh dÊu Selected nhiÒu chän lùacï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éidung cña th− môc option sÏ ®−îc göi ®i thay cho value. c. Input 35
  36. 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µnhphÇ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íiType=“image” . - Name : g¾n tªn biÕn cho d÷ liÖu cña thµnh phÇn nµy. Gi¸ trÞ cñathué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 haykh«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µnhphÇ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ñaPHP ®Ó 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 nhOracle, Sybase, PostgreSQL, MySQL. .. Th«ng qua chuÈn ODBC (OpenDatabase Connectivity), b»ng c¸ch sö dông c¸c hµm API (Application 36
  37. 37. Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQLProgramming 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Öcvíi ODBC ë tÇng trªn. NÕu kh«ng muèn sö dông ODBC ta cã thÓ sö dôngc¸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µnhUNIX. 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Êtc¶ c¸c yªu cÇu tíi bé m¸y c¬ së d÷ liÖu sau nµy. 37
  38. 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¸ychñ 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µmmysql_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äihµm mysql_close(). Môc ®Ých cña hµm nµy lµ lu«n lu«n duy tr× liªn kÕt tíim¸y chñ MySQL do lu«n cã sù yªu cÇu tíi m¸y chñ, tr¸nh cho m¸y chñ ph¶it×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µmmysql_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µmmysql_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. 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µmmysql_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 APIkh¸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 tronghµ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. 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ªntr−í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µmmysql_connect() . Hµm nµy tr¶ vÒ gi¸ trÞ id ®−îc sinh ra trong cét AUTO_INCREMENTbëi c©u truy vÊn tr−íc ®ã. §iÒu nµy chØ cã t¸c dông trªn link_identifier ®−îcchØ ra trong hµm, nÕu gäi hµm trªn mµ kh«ng chØ ®Þnh tham sè link_identifierth× 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 sinhra 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 ghitiÕp theo cho tíi khi gÆp b¶ng ghi cuèi cïng hµm tr¶ vÒ gi¸ trÞ false. §Ó truyxuÊ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. 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µmsÏ 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èngnh− hµm mysql_fetch_row() ) -MYSQL_ASSOC: chØ tr¶ l¹i mét m¶ng liªn kÕt 41
  42. 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 consè 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 truycË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Ëptr×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 ghihiÖ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èicïng hµm tr¶ vÒ gi¸ trÞ false. §Ó truy xuÊt tíi c¸c gi¸ trÞ cña cét ta viÕttª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. 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ªnkÕ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¹iFALSE nÕu kh«ng cã b¶n ghi nµo. Hµm nµy t−¬ng ®−¬ng víi hµmarray mysql_fetch_array() víi tham sè result_type lµ : MYSQL_ASSOCvÝ 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. 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ÊnSELECT ®−î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ëitham ®è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. 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Õtqu¶ 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Öntrong 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Õulink_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 ®−îcsè dßng tr¶ vÒ (sè dßng ®· bÞ t¸c ®éng) bëi c©u lÖnh SELECT ta dïnghµm mysql_num_rows().+mysql_result() : lÊy d÷ liÖu tõ result_identifiercó 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ïychä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. 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íiresult_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ñab¹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_identifierint 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 ServernÕ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«ngtr¶ vÒ mét result identifier, gi¸ trÞ false nÕu cã lçi . 46
  47. 47. Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQLint mysql_list_fields (string database_name, string table_name [, intlink_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ÖnhSELECT ,®Ó lÊy l¹i sè b¶n ghi ®−îc tr¶ l¹i tõ c¸c lÖnh :INSERT, UPDATEhoÆ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 ®−îclÊ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Õukh«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. 48. Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQLXI. Session vµ Cookie1. Session lµ g× ?HTTP lµ giao thøc kh«ng ®−îc x©y dùng theo c¸ch ®Ó cã thÓ lu gi÷ ®−îctr¹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éttrang 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íitrang Web kh¸c th× HTTP kh«ng thÓ biÕt ®−îc r»ng ®ã lµ hai yªu cÇu tõ cïngmé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−êidï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 chong−ê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ùchiÖ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 ®−îcsinh 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¸cURL.SessionID cã t¸c dông nh− mét kho¸ ®Ó b¹n cã thÓ ®¨ng ký nh÷ng biÕn ®ÆcbiÖ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Ómnµo ®ã cña mét kÕt nèi ®Õn trang Web cña b¹n, sessionID cã thÓ thÊy ®−îctrªn cookie hay URL, b¹n cã thÓ truy nhËp nh÷ng biÕn session chø trªnServer ë 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¸chgö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µ domaincã thÓ ®−îc sö dông ®Ó chØ ®Þnh c¸c URL (n¬i mµ cookie sÏ ®−îc göi ®i). Tõ 48
  49. 49. Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQLkho¸ secure cã nghÜa lµ cookie sÏ kh«ng göi ®i trªn qu¸ mét kÕt nèi HTTPchuÈ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õ PHPTa 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 [,stringdomain [, int secure]]]]]);Nh÷ng tham ®èi cña hµm t−¬ng øng víi nh÷ng tham ®èi cña Set-Cookieheader ë 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 tranghiÖ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ä. §©ylµ 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µmsession 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ônghµm:session_get_cookie_params(). Hµm nµy sÏ tr¶ vÒ mét m¶ng liªn kÕt mµ c¸cphÇn tö cña m¶ng chøa c¸c th«ng tin nh−: lifetime, path, domain,.. . 49
  50. 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 [, stringdomain]])5) L−u gi÷ sessionIDPHP sÏ sö dông c¸c cookie mÆc ®Þnh cïng víi session. NÕu cã thÓ ®−îc, métcookie 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ùachän –enable-tran-sid.C¸ch n÷a lµ ta cã thÓ ®a sessionID vµo trong thÎ link. SessionID ®−îc chøatrong 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 SessionC¸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 IDth× 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. 51. Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQLChó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 ®−îcnÕu ta chän session. auto_start trong file c:Windowsphp.iniMé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 trangscript 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ªngiao 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Õn6.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Çnph¶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ËpbiÕ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 Sessionth«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ïnghµ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 tram¶ng liªn kÕt $HTTP_SESSION_VARS() vÒ sù tån t¹i cña biÕn. 51
  52. 52. Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQL6.4 Huû bá biÕn Session vµ kÕt thóc SessionKhi 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:sbool session_destroy () ;Hµm nµy sÏ xo¸ ®i SessionID vµ hñy tÊt c¶ nh÷ng d÷ liÖu liªn quan ®ÕnSession 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. 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 AdvantagesName HTML Disadvantages Useful for Defined mixed in PHP Leadsto unreadableEmbedded Fastand scrips, noreuse of Quick and Yes YesPHP easy existing code,hardto Smallscripts maintain Fast andSeparating easy, Leadsto unreadable Web sitescommon Yes No scripts, often hard with LOC <parts Reuseof to maintain 1000 certain pasts Abstracts HTML completely Web sitesFastTemplate No No from Complex with LOC > coding, easy 1000 to adapt to new needs 53
  54. 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. 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. 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. 57. Ban chØ ®¹o cntt cña c¬ quan ®¶ng PHP & MySQLII. Ph−¬ng ph¸p FastTemplate1. BiÕn FastTemplateBiÕ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ÓnthÞ 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. 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«ngnhÊt thiÕt lµ *.htm) cho c¸c phÇn tö cña m¶ng ®−îc ®Þnh nghÜa bëi ph−¬ngthøc set_filenames() ( b−íc nµy ®−îc gäi lµ “®Þnh nghÜa mét b¶n ®å c¸c tÖpFastTemplate” ) . 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øcpparse(“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ÖpFastTemplate. 58
  59. 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 ®¸nhdÊ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ëimé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. 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ñac¸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ñaphÐp tÝnh 2a. Hµng d−íi ®−îc b¾t ®Çu bëi kho¸ <!-- BEGIN block --> vµ kÕtthó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

×