ƯỜ

Ạ Ọ

TR

Ộ NG Đ I H C BÁCH KHOA HÀ N I

KHOA: KHOA H C MÁY TÍNH

L P TRÌNH WEB

GI NG VIÊN: ThS. TR N PHI H O

Ủ M C TIÊU C A H C PH N

Trình bày t ng quan v  Web Server và cách th c ho t  ạ

ứ ề

ổ ủ ộ đ ng c a nó. ấ ề ế ữ

ư ệ

Cung c p các ki n th c c  b n v  ngôn ng  PHP và  ứ ơ ả CSDL  MySQL  nh :  cách  cài  đ t,  câu  l nh,  cú  pháp,  các hàm thông d ng trong vi c l p trình Web đ ng

ụ ứ ậ ọ

V n d ng các ki n th c  đ ụ

ộ ệ c h c vào vi c thi ạ ộ ế ứ

ặ ệ ậ ế ế ượ t k   ự và  xây  d ng  các  ng  d ng  Web  ho t  đ ng  trên  mô  hình Client/ Server

Lập trình Web

28/04/16

2

TÀI LI U THAM KH O

 Giáo trình nh p môn PHP & MySQL xây d ng  ng

ễ ự ứ ấ ả ằ  – Nhà Xu t b n , Nguy n Thiên B ng

ộ ộ  S   d ng  PHP  &  MySQL  Thi t  k   Web  đ ng,

ố ế ế ấ ả  – Nhà xu t b n th ng kê

 Xây  d ng  ng  d ng  Web  b ng  PHP  &  MySQL,

ụ d ng Web ộ Lao đ ng xã h i  ử ụ ễ Nguy n Tr ự ườ ứ ằ

 Beginning  PHP  and  MySQL,  W.  Jason  Gilmore  –

ạ ng Sinh ụ ữ Ph m H u Khang

 Advanced  PHP  for  Web  Professionals,  Christopher

Third edition

Cosentino – Prentice Hall PTR (2002)

Lập trình Web

28/04/16

3

N I DUNG

Ớ Ớ

1. GI 2. GI

I THI U HTML FORM I  THI U  V   MÔ  HÌNH  CLIENT/

SERVER VÀ WEB SERVER

Ề Ề

3. T NG QUAN V  PHP 4. T NG QUAN V  MYSQL 5. S   D NG  PHP  &  MYSQL  Đ   XÂY  D NG

Ổ Ổ Ử Ụ Ứ

CÁC  NG D NG WEB

Lập trình Web

28/04/16

4

ƯƠ

CH

NG 1: GI

I THI U HTML FORM VÀ

Ớ WEB SERVER

Ầ Ử Ể

1.1. FORM VÀ CÁC THU C TÍNH 1.2. CÁC KI U PH N T  TRÊN FORM 1.3. MÔ HÌNH CLIENT/ SERVER VÀ WEB  SERVER

Lập trình Web

28/04/16

5

1.1. FORM VÀ CÁC THUỘC TÍNH

ơ ể ườ Form là n i đ  ng

 M i Form đ ỗ 

ượ

ạ ữ ệ ẽ ử

ỉ ế Action = “URL”: ch  đ n script x  lý form  Method = “GET” ho c “POST”: ng m đ nh là GET  ặ  ộ Name: thu c tính tên Enctype = “Mine_type”: lo i d  li u s  g i đi

ộ ậ i dùng nh p thông tin ẻ ở ặ c bao b i c p th  

   
ủ Các thu c tính c a form

Lập trình Web

28/04/16

6

1.2. CÁC KIỂU PHẦN TỬ TRÊN FORM

ầ ử ầ ử ầ ử ầ ử Ph n t Ph n t Ph n t Ph n t input  select  textarea  button

Lập trình Web

28/04/16

7

Ầ Ử

PH N T  INPUT

ườ ượ ấ ng  đ c  hoàn  t t

ầ ử ậ

 M t th  input và thu c tính c a nó s  quy t đ nh lo i

ẽ ạ ủ

nh p (input). ộ ượ ể ị ế ị ệ c hi n th  trên trình duy t

ệ ế ầ H u  h t  công  vi c  trên  forms  th ớ v i các ph n t ẻ ộ ầ ử  form nào đ ph n t Cú pháp:

ầ ử ộ ạ

ế

ả ể ế ị Ví  d :ụ  Xét  đo n  Script  sau  và  xem  k t  qu   hi n  th   trên

ọ t: name, value, …> ạ trình duy tệ

Lập trình Web

28/04/16

8

Ầ Ử

PH N T  INPUT

Form 1

Name:

Password:

Emai:

      ;       

Lập trình Web

28/04/16

9

Ầ Ử

PH N T  INPUT

ể ị Hi n th  trên Browser

Lập trình Web

28/04/16

10

Ầ Ử

PH N T  INPUT

 M t s  lo i (type) ph n t

ầ ử input:

ộ ố ạ Text  Password Hidden Submit Reset Checkbox Radio File  Image

Lập trình Web

28/04/16

11

Ầ Ử

PH N T  SELECT

ộ ệ

ộ ặ ể ạ ẻ t kê.  ớ ầ ử ượ ặ

ẻ ẽ ỉ

này, các th  

ể ọ ộ ộ ị ằ

ẻ ộ

ộ ố ứ ự ể ị ị hi n th > giá tr  

select dùng đ  t o m t danh sách li Ph n t Đ c đ t trong c p th   v i m t  thu c tính tên ầ ử Trong ph n t ị ị ị ọ ự tr  ch n l a. M i giá tr  có m t thu c tính giá tr ơ ề Ta có th  ch n nhi u h n m t giá tr  b ng cách thêm  vào th  

Lập trình Web

28/04/16

13

Ầ Ử

PH N T  SELECT

ể ị Hi n th  trên Browser

Lập trình Web

28/04/16

14

Ầ Ử

PH N T  TEXTAREA

ộ ạ ả

ả ầ ố

ế ậ ố ộ t l p s  c t  ả ạ

ả ầ ạ ậ

ậ ượ ử ụ Đ c s  d ng khi c n nh p vào m t đo n văn b n  ề ồ g m nhi u dòng (kh i văn b n) ượ ặ ẻ Đ c đ t trong c p th   ộ Các thu c tính cols và rows dùng đ  thi ể ể ố và s  dòng dùng đ  hi n thi đo n văn b n Cú pháp  Đo n văn b n c n nh p 

Lập trình Web

28/04/16

15

Ầ Ử

PH N T  TEXTAREA

ạ Ví d :ụ  Xét đo n Script sau:

Textarea Example

Enter your infomation here:

Lập trình Web

28/04/16

16

Ầ Ử

PH N T  SELECT

ể ị Hi n th  trên Browser

Lập trình Web

28/04/16

17

Ầ Ử

PH N T  BUTTON

ả ủ

ượ ặ ả ộ c đ t trên cùng m t nút

ặ ộ Button là m t phiên b n c a nút Submit, nó cho phép  ả ả c  văn b n và hình  nh đ ẻ ượ ặ Đ c đ t trong c p th  

Ví d :ụ

Lập trình Web

28/04/16

18

Ầ Ử

PH N T  BUTTON

ể ị Hi n th  trên Browser

Lập trình Web

28/04/16

19

Ầ Ử

1.2. CÁC KI U PH N T  TRÊN FORM

L u ý:ư  ạ ầ ử ặ trên form l ể i ta có th  dùng c p

ề ể ẻ ể ạ ầ ử ặ ẻ  ta dùng c p th

ể ử Bài  t p:  Tìm  hi u  m t  s   Website  trên  m ng  sau  đó  s   ế t trên form trong HTML đ  thi

Đ  nhóm các ph n t th  

  
Đ  t o tiêu đ  cho nhóm các ph n t   /legend> ộ ố ể ậ ầ ử ể ụ d ng các ki u ph n t ế ộ k  m t WebPage.

Lập trình Web

28/04/16

20

Ầ Ử

1.2. CÁC KI U PH N T  TRÊN FORM

Lập trình Web

28/04/16

21

1.3. MÔ HÌNH CLIENT/ SERVER VÀ  WEBSERVER 

ng,  ki n  trúc  căn  b n

ấ ể

ườ ạ ộ

ư

ử ụ

ế ượ ườ

c. i dùng s  d ng

ạ ộ

ơ ở ữ ệ

ẽ ư

ệ ủ ứ

Mô  hình  Client/  Server  là  môi  tr nh t đ  trang Dynamic Web ho t đ ng đ ể Clients có th  xem nh  là các máy do ng ể đ  truy c p vào Website. ử ữ ể ư ơ Server là n i dùng đ  l u tr  các Website và Database. X   ộ ệ lý vi c cùng m t lúc nhi u Clients truy c p vào cùng m t  Website. ế ầ H u h t các  ng d ng Web đ u ho t đ ng t p trung trên  Server. ữ ấ ả ộ t c   M t C  s  d  li u (CSDL) trên Server s  l u tr  t ữ nh ng thông tin đáp  ng yêu c u cho công vi c c a  ng  ụ d ng Web.

Lập trình Web

28/04/16

22

ộ ứ ể ả

ế

ề ậ ệ i các yêu c u đó. ư

ể ạ ự ư ữ ế

ữ ậ ả ộ

ộ ớ ầ ư ẳ ạ

ư

1.3. MÔ HÌNH CLIENT/ SERVER VÀ  WEBSERVER  Webserver là m t  ng d ng dùng đ  đ m trách vi c  ệ ụ ầ ừ ớ   giao  ti p  v i  các  trình  duy t.  Nh n  các  yêu  c u  t ả ờ ử phía Clients, x  lý và tr  l ạ Có  nhi u  lo i  Webserver  khác  nhau  nh ng  thông  ụ d ng  nh t  là:  Apache  và  IIS  (Internet  Information  Server). ữ Đ  t o s  liên k t gi a Webserver và CSDL l u tr   trên  Server  c n  ph i  có  m t  ngôn  ng   l p  trình.  ữ Ch ng h n nh : asp, php, jsp,… thu c l p ngôn ng   ậ l p trình MiddleWare ạ ộ Ta có mô hình ho t đ ng nh  sau:

Lập trình Web

28/04/16

23

1.3. MÔ HÌNH CLIENT/ SERVER VÀ  WEBSERVER

Lập trình Web

28/04/16

24

ƯƠ

CH

Ữ NG 2: T NG QUAN V  NGÔN NG

PHP

Ệ Ề Ớ I THI U V  PHP

Ữ Ệ

Ằ Ế

Ấ Ể Ề 2.1. GI 2.2. CÚ PHÁP Ể 2.3. CÁC KI U D  LI U 2.4. BI N VÀ H NG 2.5. PHÉP GÁN VÀ CÁC PHÉP TOÁN  Ế Ậ 2.6. TRUY C P Đ N FORM 2.7. CÁC C U TRÚC ĐI U KHI N

Lập trình Web

28/04/16

25

2.1. GI

I THI U V  PHP

ặ ị ể ử

ể ặ ụ ứ

ị Php là gì? Đ c đi m c a file php L ch s  phát tri n ấ Download, cài đ t và c u hình  ng d ng php Quá trình thông d ch trang php

Lập trình Web

28/04/16

26

Php là gì?

ượ ế ắ ủ t t c vi

ủ ữ ị t c a ch   ả ữ Personal Home Page   ạ

ư

ị ả ụ

ư ọ

ầ ở

ụ ể ễ ề ớ ợ

PHP đ Là ngôn ng  k ch b n trình ch  (Server Script) ch y  ố ủ trên phía máy ch  (Server side) gi ng nh  các server  script khác: asp, jsp, cold fusion, … ứ ự Là k ch b n cho phép chúng ta xây d ng  ng d ng  ươ ạ web  trên  m ng  internet  hay  intranet  t ng  tác  v i  ệ ữ ơ ở m i  c   s   d   li u  nh :  Informix,  MySQL,  PostgreSQL, Oracle, Sybase, SQL Server,… ổ Là  ph n  m m  m ,  dùng  cho  m c  đích  t ng  quát.  Thích  h p  v i  Web  và  có  th   d   dàng  nhúng  vào  trang HTML

Lập trình Web

28/04/16

27

Đ c đi m c a file php

ộ ả ệ ả ề ế

ể ả

ạ ả ị

ư ừ ằ

Các  file  PHP  tr   v   k t  qu   cho  trình  duy t  là  m t  ầ trang thu n HTML ẻ ứ Các  file  PHP  có  th   ch a  văn  b n  (Text),  các  th   HTML (HTML tags) và các đo n mã k ch b n (Script) ở ộ Các file PHP có ph n m  r ng là: .php, .php3, . Phpml ớ ỗ ợ ở ề ả  phiên b n 4.0 tr  v  sau m i h  tr   L u ý r ng, t session

Lập trình Web

28/04/16

28

L ch s  phát tri n

ầ ề ế ể ượ ả ở

ế ắ ừ

ơ ả

ư ờ

ế c công b  d

ứ ượ ố

ả c công b ượ ứ ả c chính th c công

ầ Năm  1995,  phiên  b n  đ u  tiên  ra  đ i  có  tên  là  t  b i  nhà  phát  tri n  ph n  m m  c  vi PHP/FI  đ Rasmus Lerdorf.   "Personal  Home  Page/Forms  t  t PHP/FI,  vi t  t ứ ộ ố ồ Interpreter", bao g m m t s  các ch c năng c  b n  ủ c a PHP ngày nay. ỉ ả Năm  1997,  phiên  b n  PHP/FI  2.0  ra  đ i  nh ng  ch   ượ ố ướ ạ i d ng các b n beta. Đ n tháng 11  đ ớ năm 1997 m i chính th c đ Năm 1998, phiên b n PHP 3.0 đ bố

Lập trình Web

28/04/16

29

L ch s  phát tri n

ấ ế ụ t

ằ ầ ả ế

ớ ổ ố

ượ ố c công b

ệ ủ ờ ợ

ỏ Andi Gutmans và Zeev Suraski ti p t c hoàn t ph n lõi nh m c i ti n PHP 3.0.  ạ ớ Tháng 05/2000, phiên b n PHP 4.0 v i hàng lo t các  ứ ượ c công b tính năng m i b  sung, đã chính th c đ ứ ả 29/06/2003, phiên b n PHP 5 Beta 1 đã chính th c  đ ả ắ ớ ự ấ Tháng 10/2003, phiên b n Beta 2 ra m t v i s  xu t  ấ ượ hi n c a hai tính năng r t đ c ch  đ i: Iterators,  ư ộ Reflection nh ng namespace m t tính năng gây tranh  ồ ị ạ cãi khác đã b  lo i kh i mã ngu n

Lập trình Web

28/04/16

30

L ch s  phát tri n

ả ượ c

ả ứ

ỗ ắ ể ả

ồ ử

ượ ớ ủ ồ

ớ ự

ố ặ ủ ả ủ ệ

ượ ể ượ ử ể c  c

ạ ị Ngày 21/12/2003: phiên b n PHP 5 Beta 3  đã  đ công b  ố ả Ngày  13/07/2004,  phiên  b n  PHP  5  b n  chính  th c  ộ đã  ra  m t  sau  m t  chu i  khá  dài  các  b n  ki m  tra  th  bao g m Beta 4, RC 1, RC2, RC3  ả c  Ngày  14/07/2005,  phiên  b n  PHP  5.1  Beta  3  đ ấ ự PHP Team công b  đánh d u s  chín mu i m i c a  PHP v i s  có m t c a PDO ế Hi n  nay,  phiên  b n  ti p  theo  c a  PHP  đang  đ ả ử ụ phát tri n, PHP 6 b n s  d ng th   đã có th  đ ỉ http://snaps.php.net download t i đ a ch

Lập trình Web

28/04/16

31

ấ Download, cài đ t và c u hình  ng d ng php

ầ ả ủ ư ượ ỗ ợ c h  tr  PHP thì c n ph i cài

ễ ạ i:

ậ ỗ ợ c  vào  Web  server  có  h   tr   PHP,

Cài đ t Apache ho c IIS trên máy ch , cài PHP, MySQL Ho c thuê m t Web hosting có h  tr  PHP và MySQL

ặ ộ ể ử ụ

ế N u máy ch  ch a đ ặ đ t nó. Download mi n phí t http://www.php.net/downloads.php ượ ể Đ   truy  c p  đ c n:ầ

ủ ỗ ợ ầ

ề ẵ

ợ ộ ố Có  th   s   d ng  m t  s   ph n  m m  tích  h p  s n  ư ẳ Apache, php, MySQL. Ch ng h n, nh  XAMPP i: ạ www.apachefriends.org  download t

Lập trình Web

28/04/16

32

Quá trình thông d ch trang php

ị ạ ề

ớ ứ ể ả

ệ ọ

ườ ử ụ ả ầ ộ

ư ủ ượ ả Php là k ch b n trình ch  đ c ch y trên n n php  ụ Engine, cùng v i  ng d ng Web Server đ  qu n lý  chúng. ượ ọ c g i, Web Server tri u g i php  Khi trang php đ ả ề ế ị ể Engine đ  thông d ch, d ch trang php và tr  v  k t  i s  d ng là m t trang thu n HTML qu  cho ng Ta có mô hình nh  sau:

Lập trình Web

28/04/16

33

Quá trình thông d ch trang php

Lập trình Web

28/04/16

34

2.2. CÚ PHÁP

ể ủ

ế c b t đ u và k t thúc b i c p

ạ ẻ ệ Ta có th  nhúng các l nh c a php vào trang HTML ở ặ ượ ắ ầ Đo n mã php luôn đ th  theo cú pháp:

ườ ộ ồ ng m t trang php bao g m các th  HTML

ẻ ạ

ể ặ ấ ỳ ạ Đo n mã php có th  đ t b t k  đâu trong tài li u Thông th ư ư ộ nh  m t trang HTML nh ng có thêm các đo n mã  php

Lập trình Web

28/04/16

35

2.2. CÚ PHÁP

ể ạ ị Ví dụ: Ta có đo n mã php hi n th  câu “Learning php

ư ệ programing” lên trình duy t nh  sau:

echo “Learning php programing";

?>

Lập trình Web

28/04/16

36

2.2. CÚ PHÁP

Lập trình Web

28/04/16

37

2.2. CÚ PHÁP

ộ ỗ ấ ằ c k t thúc b ng d u (;).  ệ ử ấ ượ ế ể  dùng đ  phân bi ấ t các c u

 M i câu l nh trong php đ ệ D u này là m t toán t ớ trúc v i nhau ệ Có hai câu l nh c  b n dùng đ  hi n th  các câu text  ra browser là : echo và print

ể ể ơ ả ị

Lập trình Web

28/04/16

38

2.2. CÚ PHÁP

L u ýư :   ả ở ộ

ở ộ ế ượ ẽ

ạ t các câu chú thích cho đo n mã php. Có hai

t là:

ể ặ ặ ầ ầ Các file php ph i có ph n m  r ng là .php. N u ph n  ự ạ m  r ng là .html thì đo n mã php s  không đ c th c  thi ể ế Có th  vi /* chú thích */ ho c ặ // chú thích ế cách vi ẻ ạ Đo n mã php cũng có th  đ t trong c p th :

Lập trình Web

28/04/16

39

2.2. CÚ PHÁP

Example

Welcome to!

echo "

Php programing

";?> Mysql database

"; ?>

And web server design

ư Ví dụ: Ta có trang vidu2.php nh  sau:

Lập trình Web

28/04/16

40

2.2. CÚ PHÁP

Lập trình Web

28/04/16

41

Ữ Ệ

Ể 2.3. CÁC KI U D  LI U

ỗ ợ

ể ữ ệ

Php h  tr  5 ki u d  li u nh  sau: ể

ư ị

 Integer: s  d ng cho giá tr  có ki u d  li u là s   ố

ữ ệ ử ụ

nguyên

 Double: s  d ng cho giá tr  có ki u d  li u là s   ố

ữ ệ ử ụ ể ị

th cự

 String: s  d ng cho các giá tr  có ki u d  li u là

ữ ệ ể ị

 Array:  s   d ng  cho  các  giá  tr   có  ki u  d   li u  là

ữ ệ ể ị ử ụ ự chu i và ký t ử ụ

m ngả

 Object: s  d ng cho các giá tr  có ki u d  li u là

ữ ệ ử ụ ể ị

ủ ớ ố ượ đ i t ng c a l p

Lập trình Web

28/04/16

42

Ằ 2.4. BI N VÀ H NG TRONG PHP

Bi n ế H ngằ

Lập trình Web

28/04/16

43

Bi nế

ệ ể ư ế ế ấ ả ố ắ ầ

ự ộ ế ượ ử ụ ị c khai báo t đ ng khi s  d ng (gán giá tr )

ữ ị

ế ể ẽ ể ủ ầ ế ể ế

ể ự ộ  đ ng tùy thu c vào giá tr  c a nó ắ ặ ị ủ ố ộ ư

ả ị ư , m ng,… Bi n dùng đ  l u giá tr  nh : xâu, s , ký t ằ ề T t c  các bi n trong php đ u b t đ u b ng ký hi u  $ Bi n đ ị cho nó theo cú pháp:  $Tên_bi n = Giá_tr ; Php là ngôn ng  không đ nh ki u, nghĩa là không c n  khai báo ki u cho bi n. Php s  chuy n ki u c a bi n  ộ m t cách t ư ế L u ý: Quy t c đ t tên bi n trong php gi ng nh   trong C, C++, …

Lập trình Web

28/04/16

44

Bi nế

Example 3


"; $a = 5; $b = 10; $c = $a*$b; echo "Tich a*b = $c";

?>

ư Ví dụ: Ta có trang vidu3.php nh  sau:

Lập trình Web

28/04/16

45

Bi nế

Lập trình Web

28/04/16

46

Bi nế

Ph m vi c a bi n:

ế ượ

c khai báo trong m t hàm nào đó thì ch  có tác

ế c khai báo trong Script thì có ph m vi trong

ế

ể ể isset(Tên_bi n)ế  đ  ki m tra bi n đó có t n

ề ể

ế

ể ạ ỏ ế

unset(Tên_bi n)ế  đ  lo i b  bi n đang t n

ế ồ ạ

ể ể

i và

empty(Tên_bi n)ế  đ  ki m tra bi n t n t

ạ ỏ ế Ki m tra/ lo i b  bi n:

ủ ạ ế ượ ế N u bi n đ toàn Script ế N u bi n đ ụ d ng trong hàm đó ể ử ụ S  d ng hàm  ả ạ t i hay không? K t qu  trae v  ki u boolean ử ụ S  d ng hàm  ỏ ạ ạ i ra kh i tr ng thái th c thi t ử ụ S  d ng hàm  không r ngỗ

Lập trình Web

28/04/16

47

Bi nế

ạ Ví dụ: Xét đo n mã sau đây:

$a = 10; echo empty($a)."
"; echo isset($a)."
"; unset($a); echo isset($a)."
";

?>

Lập trình Web

28/04/16

48

Bi nế

ể ữ ệ ủ

ế

 Ngoài ra, đ  ki m tra ki u d  li u c a bi n ta

ể ử ụ

ể ể có th  s  d ng các hàm sau:

 is_array()  is_double()  is_float()  is_long()  is_int()  is_string()  is_object()

Lập trình Web

28/04/16

49

H ngằ

ư ố ượ c khai báo gi ng nh  các ngôn

ằ ữ

ườ ữ c vi t b ng ch  hoa

H ng trong php đ ng  C, C++ ế ằ ượ ằ Tên h ng th ng đ ư ằ Cú pháp khai báo h ng nh  sau:

ằ define (“Tên_h ng”, giá_tr ); ằ ị

ư ho c   ặ define (Tên_h ng, giá tr ); ằ Ví dụ: Ta có khái báo h ng MAX = 100 nh  sau:

define (“MAX”, 100); define (MAX, 100);

Lập trình Web

28/04/16

50

2.5 CÁC PHÉP TOÁN

 Phép gán  Các phép toán s  h c ố ọ  Các phép toán quan hệ  Các phép toán logic  Phép toán trên chu iỗ  Các phép toán t  tăng gi m  Bi u th c đi u ki n ệ ề ứ

Lập trình Web

28/04/16

51

Phép gán

ọ ơ ả ủ ữ ậ

ế = Giá_tr ;ị

ơ ở ộ ế pt= Giá_tr ;ị

ể Phép gán là phép toán c  b n c a m i ngôn ng  l p  trình. Phép gán đ n: cú pháp: $Tên_bi n  Phép gán m  r ng: $Tên_bi n  Trong đó: pt có th  là: +, ­, *, /, %

Lập trình Web

28/04/16

52

ố ọ Các phép toán s  h c

ả ấ

ộ ố ọ Phép toán s  h c m t ngôi: ­ (đ o d u) ố ọ Phép toán s  h c hai ngôi:

Toán tử Tên Ví dụ

+ $a + $b

­ $a ­ $b

* C ng ộ Tr  ừ Nhân $a * $b

/ $a / $b

% Chia nguyên Chia l y dấ ư $a % $b

Lập trình Web

28/04/16

53

Các phép toán quan hệ

ệ ả ề ế ặ

Bé thua

ặ ằ

<=

Bé thua ho c b ng

A <= b

ơ

>

L n h n

$a > $b

ơ

ặ ằ

>=

$a>= $b

==

123 = “123”

ể ữ ệ

===

ớ L n h n ho c b ng B ngằ ằ B ng và cùng ki u d  li u

123 = “123”

!=

Khác

123 != “123”

!==

ể ữ ệ Khác ki u d  li u

123!==“123”

<>

Khác

123<> “123”

Các phép toán quan h  tr  v  k t qu  là true ho c  falseToán tử Tên  < ả Ví dụ 3 < 5

Lập trình Web

28/04/16

54

Các phép toán logic

ư

ố ả ề ế ặ ả ệ Gi ng nh  các phép toán quan h  các phép toán logic  tr  v  k t qu  là true ho c false

Toán tử Tên Ví dụ

&& And (và) $a && $b

|| Or (ho c)ặ $a or $b

ủ ị ! Not (ph  đ nh) !$b

Lập trình Web

28/04/16

55

Các phép toán t

tăng gi m

ộ ả ể ế

ị ố ặ ộ ơ ị ủ ể ử ụ ự

ự ả  gi m – ế ự ả t phép toán t

ế

ế

ặ ặ ệ

Đ  tăng (ho c gi m) giá tr  c a m t bi n lên  (xu ng) m t đ n v  có th  s  d ng phép toán t tăng ++ và t Có hai cách vi ế tăng gi m: ế

++&Tên_bi n (ho c ­­$Tên_bi n) &Tên_bi n++ (ho c $Tên_bi n­­) ư t hai cách vi

ế ầ L u ý: c n phân bi t trên.

Lập trình Web

28/04/16

56

ỗ Phép toán v  chu i

ể ộ

ỗ ạ ớ

i v i nhau ta

Phép c ng chu i: ấ ử ụ s  d ng d u ch m (.)

ỗ  Đ  c ng (ghép) hai chu i l ấ ạ Ví dụ: xét đo n mã sau: Example 4

Let's see how two strings are concatenated

echo $st1.$st2; ?>

Lập trình Web

28/04/16

57

ỗ Phép toán v  chu i

Lập trình Web

28/04/16

58

Bi u th c đi u ki n

Cú pháp:

ế ị ị ị ị Bi n = Giá tr  1> Giá tr  2? Giá tr  1: Giá tr  2;

Ví d :ụ

$a = ‘a’; $b = ‘b’; echo $a > $b? $a: $b;

?>

Lập trình Web

28/04/16

59

Ậ 2.6. TRUY C P Đ N FORM

ộ ủ ườ ơ ể i

ữ ệ ậ ữ ệ ớ ệ ả ế ố ỏ

ầ ử

ẽ ự ộ ệ ớ  đ ng tr  thành bi n trong đo n mã php

ị ừ form trên trang  ế ạ ử ụ ầ ử  form ta s  d ng các hàm các ph n t

ớ Form cùng v i các thu c tính c a nó là n i đ  ng ử ụ s  d ng nh p d  li u vào ể Đ  làm vi c v i các d  li u đó đòi h i ph i k t n i  ế đ n form Khi làm vi c v i form thì các ph n t ở html s  t ể ấ Đ  l y giá tr  t ặ $_GET ho c $_POST

Lập trình Web

28/04/16

60

Hàm $_GET

ẵ ể ấ ị ừ form

ử ụ

ươ ề ớ ứ ẽ ng  th c  GET  s

ị c hi n th  trên Browser’s address bar

ể ườ ể ấ ố ự Là hàm xây d ng s n dùng đ  l y các giá tr  t có s  d ng method = GET Thông  tin  khi  truy n  đi  v i  ph ượ đ  M i ng ọ i có th  nhìn th y thông tin và s  ký t ự ố  t i

ị ừ ầ ử đa là 100 ấ Cú pháp l y giá tr  t form

các ph n t ầ ử $_GET[“Tên ph n t form”]

Lập trình Web

28/04/16

61

Hàm $_GET

Login user:

name="username" size="35" maxlength="30" value="">

Password:

name="password" size="35" value="">

value="Ok" style="width: 50; height: 25">

value="Cancel" style="width:50; height:25">

ư Ví d :ụ  Ta có trang login.html nh  sau:

Lập trình Web

28/04/16

62

Hàm $_GET

ư

Trang display.php nh  sau:

Data on form will be display on browser

through php

echo "User name: ". $_GET["username"]."
"; echo "Password: ".$_GET["password"]; ?>

Lập trình Web

28/04/16

63

Hàm $_GET

Lập trình Web

28/04/16

64

Hàm $_GET

Lập trình Web

28/04/16

65

Hàm $_POST

ẵ ị ừ ể ấ form

ử ụ

ươ ứ ẽ ng  th c  POST  s

c hi n th  trên Browser’s address bar

ượ ể ề ị ấ ế ị

ầ ử ị ừ ự Là hàm xây d ng s n dùng đ  l y các giá tr  t có s  d ng method = POST ớ Thông  tin  khi  truy n  đi  v i  ph ể không đ Không  th   nhìn  th y  các  thông  tin  (bi n  và  giá  tr )  đang truy n.ề ấ Cú pháp l y giá tr  t form

các ph n t ầ ử

ế Ví d :ụ  Thi

$_POST[“Tên ph n t t k  form và trang php đ  gi ươ ủ ậ form”] ể ả i quy t bài toán  ấ ậ ng trình b c nh t, b c hai ế ế ệ tìm nghi m c a ph

Lập trình Web

28/04/16

66

2.7 CÁC C U TRÚC ĐI U KHI N

ấ ấ

 C u trúc r  nhánh ẽ  C u trúc l p ặ

Lập trình Web

28/04/16

67

C u trúc r  nhánh

ấ C u trúc if

ệ ề

:  ệ Cú pháp: if (đi u ki n)   câu l nh php; Ví d :ụ

$a = 7; $b = 3; if ($a>$b) echo "Gia trị lớn nhất là: ".$a;

?>

Lập trình Web

28/04/16

68

C u trúc r  nhánh

ệ ề :  ệ C u trúc if … else Cú pháp: if (đi u ki n)   công vi c 1;

Else   công vi c 2;ệ

Ví d : ụ

$a = 7; $b = 3; if ($a>$b)

echo "Gia trị lớn nhất là: ".$a;

else

echo "Gia trị lớn nhất là: ".

$b;?>

Lập trình Web

28/04/16

69

C u trúc r  nhánh

ư

L u ý:   ấ ề ồ

ệ ề ặ ầ

ặ ể ử ụ Ta có th  s  d ng c u trúc if l ng nhau khi có nhi u  ự ự ơ ọ h n 2 s  l a ch n ự ế ầ N u c n th c thi nhi u câu l nh thì c n đ t nó  ấ ặ trong c p d u ngo c móc { }

Lập trình Web

28/04/16

70

C u trúc r  nhánh

ề ự ự ử ụ ọ : s  d ng khi có nhi u s  l a ch n C u trúc switch

ấ Cú pháp:

switch (n) {case label 1: code to be executed if n=label 1; break;   case label 2: code to be executed if n=label 2; break;   …   case label n:  code to be executed if n=label n; break; default: code to be executed if n is different from label 1  to label n; }

Lập trình Web

28/04/16

71

C u trúc r  nhánh

Ví d :ụ

case "edit":echo"sửa dữ liệu
"; break; case "insert":echo"chèn dữ liệu
"; break; case "delete":echo"xoa dữ liệu
"; break; case "save":echo"xóa dữ liệu
"; break;

} ?>

Lập trình Web

28/04/16

72

C u trúc r  nhánh

Ví d :ụ

case "edit":echo"sửa dữ liệu
"; break; case "insert":echo"chèn dữ liệu
"; break; case "delete":echo"xoa dữ liệu
"; break; case "save":echo"xóa dữ liệu
"; break;

} ?>

Lập trình Web

28/04/16

73

C u trúc r  nhánh

Ví d :ụ

case $a%2==0: echo $a." là số chẵn"; break; case $a%2!=0: echo $a." là số lẻ"; break;

} ?>

Lập trình Web

28/04/16

74

C u trúc l p

:

 C u trúc While Cú pháp:  while (condition)

{

code to be executed;

}

:

code to be executed;

 C u trúc do … while ấ Cú pháp:   do {

} while (condition);

Lập trình Web

28/04/16

75

C u trúc r  nhánh

Ví d :ụ

{echo $a; $a++; }

do while($a<5); echo"
"; $a++;

} ?>

Lập trình Web

28/04/16

76

C u trúc l p

:

for (init; condition; increment) {

 C u trúc for Cú pháp:

code to be executed;

ử ụ

: s  d ng khi l p trên m ng

}   C u trúc foreach Cú pháp:   foreach ($array as $value)

{

code to be executed;

}

Lập trình Web

28/04/16

77

C u trúc r  nhánh

Ví d :ụ

"DaNang");

$tpho2 = array("HCM" => "HoChiMinh", "HN" => "HaNoi", "HP" => "HaiPhong", "DN" => "DaNang");

foreach($tpho1 as $tp) {

echo $tp."
";

} foreach($tpho2 as $chiso=>$giatri) echo $chiso.":".$giatri."
"; ?>

Lập trình Web

28/04/16

78

ƯƠ

CH

NG 3: M NG VÀ CHU I KÝ T

I THI U V  M NG

Ệ Ộ Ề Ả Ề

Ớ Ả Ả Ề

3.1 GI 3.2 M NG M T CHI U 3.3 M NG HAI CHI U Ử 3.4 CÁC HÀM X  LÝ TRÊN M NG Ự Ỗ 3.5 CHU I KÝ T Ỗ Ử 3.6 CÁC HÀM X  LÝ TRÊN CHU I

Lập trình Web

28/04/16

79

Ề Ả

3.1. GI

I THI U V  M NG

ệ Khái ni m m ng ạ Phân lo i m ng

Lập trình Web

28/04/16

80

ạ Phân lo i m ng

ỉ ố ể M ng có ch  s  ki u number ỉ ố ể M ng có ch  s  ki u associative

ả ả Ví dụ: Ta có các m ngả $tpho = array(“HoChiMinh”, “HaNoi”, “HaiPhong”, “DaNang”); $tpho  =  array(“HCM”  =>  “HoChiMinh”,  “HN”  =>  “HaNoi”,  “HP”

ỉ ố ả ứ Căn c  vào ch  s  m ng:

=> “HaiPhong”, “DN” => “DaNang”); Căn c  vào s  chi u c a m ng ề ộ M ng m t chi u ề M ng hai chi u (nhi u chi u)

ả ả Ví dụ: Ta có các m ngả $lop= array(array(“LT01A”, 34), array(“LT01B”, 35));

ố ứ ề ủ ả

Lập trình Web

28/04/16

81

3.2 M NG M T CHI U

ầ ử ả

m ng

ắ ế

Khai báo m ngả ệ ớ Làm vi c v i ph n t ả S p x p m ng

Lập trình Web

28/04/16

82

Khai báo m ngả

Cú pháp:

ị ầ ả ả

ả ế ả ế ặ ế ế ả ị ế

ỉ ố ể Khai báo m ng có ch  s  ki u number $bi n_m ng=array(danh sách các giá tr  c n gán); ị Ho c:$bi n_m ng[0]=giá tr ;// $bi n_m ng[]=giá tr ; ị ị $bi n_m ng[1]=giá tr ;//$bi n_m ng[]=giá tr ….

ặ Ví dụ: Ta có các khai báo     $color=array(“gray”, “green”, “red”, “blue”, “yellow”);     $color[0]=“gray”; $color[1]=“green”; … Ho c $color[]=“gray”; $color[]=“green”; …

Lập trình Web

28/04/16

83

Khai báo m ngả

ả ỉ ố ể associative

ế ỉ ố ỉ ố ị

Khai báo m ng có ch  s  ki u  ả $bi n_m ng=array(“ch  s  1”=>“giá tr  1”, “ch  s  2”  ị => “giá tr  2”, …); ả ả ỉ ố ỉ ố ế ế ị ị

Ho c:$bi n_m ng[“ch  s  1”]=giá tr  1; $bi n_m ng[“ch  s  2”]=giá tr  2;  ….

=> “HaiPhong”, “DN” => “DaNang”);

$tpho[“HCM”]=“HoChiMinh”; $tpho[“HN”]=“HaNoi”; …

Ví dụ: Ta có các khai báo     $tpho = array(“HCM” => “HoChiMinh”, “HN” => “HaNoi”, “HP”

Lập trình Web

28/04/16

84

Khai báo m ngả

ặ ả

ự ử ụ ị ặ ả

ả Khi  các  giá  tr   gán  cho  m ng  là  các  giá  tr   nguyên  ế ấ ắ   có  tính  ch t  s p x p  (tăng ho c  gi m)  ho c  ký  t ể ầ d n. Ta s  d ng hàm range() đ  khai báo m ng Cú pháp:

ị ố ị ầ ả $bi n_m ng=range(giá tr  đ u, giá tr  cu i);

ế Ví dụ: Ta có m ng:ả

$number = range(0, 20);  $charac = range(“A”, “Z”);

Lập trình Web

28/04/16

85

ệ ớ ả

Làm vi c v i m ng

ể ầ ử ả ị ủ ớ m ng

ớ Có  th   thao  tác  v i  giá  tr   c a  các  ph n  t ỉ ố ủ ả thông qua tên bi n_m ng kèm v i ch  s  c a nó

ế ả ỉ ố $bi n_m ng[“ch  s ”]

ế ạ

Cú pháp: Ví dụ: Ta có đo n code sau: “Ho Chi Minh”, “HN”=>“Ha Noi”,

“HP”=>“Hai Phong”, “DN”=>“Da Nang”);

echo $color[1]. “ ”. $color[2]. “
”; Echo $tpho[“HCM”]. “ ”. $tpho[“HP”]; ?>

Lập trình Web

28/04/16

86

ệ ớ ả

Làm vi c v i m ng

Lập trình Web

28/04/16

87

ệ ớ ả

Làm vi c v i m ng

ử ụ ầ ử ả ệ ể ặ S  d ng vòng l p đ  duy t các ph n t m ng

Ví dụ: Xét đo n code sau

?>

Lập trình Web

28/04/16

88

ệ ớ ả

Làm vi c v i m ng

Lập trình Web

28/04/16

89

ệ ớ ả

Làm vi c v i m ng

ử ụ ể ả ề ố ả c a m ng

ế

ầ ử ủ S  d ng hàm count() đ  tr  v  s  ph n t ả ế ả sizeof($bi n_m ng); Cú pháp: count($bi n_m ng),  ạ Ví dụ: Xét đo n code sau

“yellow”); for ($i= 0; $i

?>

Lập trình Web

28/04/16

90

ệ ớ ả

Làm vi c v i m ng

Lập trình Web

28/04/16

91

ệ ớ ả

Làm vi c v i m ng

ể ể ị ả ỉ ố ả

ử ụ ị ầ ử ả S  d ng hàm  tr  các ph n t

ế ả

list() đ  hi n th  c  ch  s  m ng và giá   m ng Cú pháp: list($key, $value)=each($bi n_m ng); Trong đó:

ặ ỉ ố ị ủ ẽ ấ

ầ ử ả

m ng ấ ị

ế ụ ượ ệ ế ả

ệ ạ ả ầ ế ậ ạ t  l p  l i  con

ế ỏ ả ế ả ­  Hàm each() s  l y c p ch  s  (khóa) và giá tr  c a  ph n t ­  Hàm list l y các giá tr  này gán cho $key và $value.  c duy t  Quá trình này ti p t c cho đ n khi m ng đ h tế ố i  m ng  c n  thi ­    N u  mu n  duy t  l ằ tr  m ng b ng hàm reset($bi n_m ng)

Lập trình Web

28/04/16

92

ệ ớ ả

Làm vi c v i m ng

Ví dụ: Xét đo n code sau “Ho  Chi  Minh”,  “HN”=>“Ha  Noi”, “HP”=>“Hai Phong”, “DN”=>“Da Nang”); while(list($key,$value)=each($tpho))

echo “$key la Thanh pho:

$value
”; reset($tpho); while($row=each($tpho)

echo  “”.$row[“$key”].“  la  thanh  pho

”.$row[“$value”].“
”;

?>

Lập trình Web

28/04/16

93

ệ ớ ả

Làm vi c v i m ng

Lập trình Web

28/04/16

94

ắ ế

S p x p m ng

ề ầ ử ả ể ắ ế ả

ộ Đ i v i m ng m t chi u, sau khi khai báo và gán giá    m ng,  đ   s p  x p  m ng  ta  có  tr   cho  các  ph n  t m t s  hàm sau:

ố ớ ị ộ ố Hàm sort() Hàm rsort() Hàm asort() Hàm arsort() Hàm ksort() Hàm krsort()

Lập trình Web

28/04/16

95

Hàm sort()

ầ ề ỉ ố ươ ứ ế ắ S p  x p  m ng  theo  chi u  tăng  d n  c a  giá  tr   các  ầ ử ả ph n t ị ủ ổ ị ng  ng b  thay đ i

ế

ử ụ ư  m ng nh ng ch  s  t ả Cú pháp:  sort($bi n_m ng) Ví dụ: s  d ng hàm sort()

"Ho chi minh", "HN"=>"Ha  noi", "DN"=>"Da nang", "HP"=>"Hai phong");

sort($tp); while ($row=each($tp)) {

echo $row["key"]."\t"; echo $row["value"]."
"; ?> }

Lập trình Web

28/04/16

96

Hàm sort()

Lập trình Web

28/04/16

97

Hàm rsort()

ầ ả ề ỉ ố ươ ứ ế ắ S p  x p  m ng  theo  chi u  gi m  d n  c a  giá  tr   các  ầ ử ả ph n t ị ủ ổ ị ng  ng b  thay đ i

ế

ử ụ ư  m ng nh ng ch  s  t ả Cú pháp:  rsort($bi n_m ng) Ví dụ: s  d ng hàm rsort

"Ho chi minh", "HN"=>"Ha  noi", "DN"=>"Da nang", "HP"=>"Hai phong");

rsort($tp); while ($row=each($tp)) {

echo $row["key"]."\t"; echo $row["value"]."
"; ?> }

Lập trình Web

28/04/16

98

Hàm rsort()

Lập trình Web

28/04/16

99

Hàm asort()

ủ ả ị

ầ ữ ư ề ế ắ S p  x p  m ng  theo  chi u  tăng  d n  c a  giá  tr   các  ỉ ố ẫ ầ ử ả  m ng nh ng ch  s  v n gi a nguyên ph n t

ế

ử ụ ả Cú pháp:  asort($bi n_m ng) Ví dụ: s  d ng hàm asort

"Ho chi minh", "HN"=>"Ha  noi", "DN"=>"Da nang", "HP"=>"Hai phong");

asort($tp); while ($row=each($tp)) {

echo $row["key"]."\t"; echo $row["value"]."
"; ?> }

Lập trình Web

28/04/16

100

Hàm asort()

Lập trình Web

28/04/16

101

Hàm arsort()

ủ ả ị

ầ ữ ư ả ề ế ắ S p  x p  m ng  theo  chi u  gi m  d n  c a  giá  tr   các  ỉ ố ẫ ầ ử ả  m ng nh ng ch  s  v n gi a nguyên ph n t

ế

ử ụ ả Cú pháp:  arsort($bi n_m ng) Ví dụ: s  d ng hàm arsort

"Ho chi minh", "HN"=>"Ha  noi", "DN"=>"Da nang", "HP"=>"Hai phong");

arsort($tp); while ($row=each($tp)) {

echo $row["key"]."\t"; echo $row["value"]."
"; ?> }

Lập trình Web

28/04/16

102

Hàm arsort()

Lập trình Web

28/04/16

103

Hàm ksort()

ỉ ố ả ầ ủ ế ắ ả S p x p m ng theo chi u tăng d n c a ch  s  m ng

ế

ử ụ ề ả Cú pháp:  ksort($bi n_m ng) Ví dụ: s  d ng hàm ksort

"Ho chi minh", "HN"=>"Ha  noi", "DN"=>"Da nang", "HP"=>"Hai phong");

ksort($tp); while ($row=each($tp)) {

echo $row["key"]."\t"; echo $row["value"]."
"; ?> }

Lập trình Web

28/04/16

104

Hàm ksort()

Lập trình Web

28/04/16

105

Hàm krsort()

ỉ ố ả ầ ủ ả ả ắ ế S p x p m ng theo chi u gi m d n c a ch  s  m ng

ế

ử ụ ề ả Cú pháp:  krsort($bi n_m ng) Ví dụ: s  d ng hàm krsort

"Ho chi minh", "HN"=>"Ha  noi", "DN"=>"Da nang", "HP"=>"Hai phong");

krsort($tp); while ($row=each($tp)) {

echo $row["key"]."\t"; echo $row["value"]."
"; ?> }

Lập trình Web

28/04/16

106

Hàm krsort()

Lập trình Web

28/04/16

107

3.3 M NG HAI CHI U

ầ ử ả

m ng

ắ ế

Khai báo m ngả ệ ớ Làm vi c v i ph n t ả S p x p m ng

Lập trình Web

28/04/16

108

Khai báo m ngả

Cú pháp:

ả ỉ ố ể

ả ế ị ả tr   m ng  1),

ế ả ặ ế ị Khai báo m ng có ch  s  ki u number $bi n_m ng=array(array(các  giá  ị ả array(các giá tr  m ng 2), ….); ị ả Ho c:$bi n_m ng[0][0]=giá tr ; $bi n_m ng[0][1]=giá tr ; ….

Ví dụ: Ta có các khai báo

$Lop=array(array(“LT01A”,  “LT01B”,  “MM01”,  “DL01”),  array(“LT02A”,  “LT02B”,  “MM02A”,  “MM02B”, “HT02”));

$Lop[0][0]=“LT01A”; $Lop[0][1]=“LT01B”; …

Lập trình Web

28/04/16

109

Khai báo m ngả

Cú pháp:

ỉ ố ể ỉ ố

ỉ ố

ế ỉ ố

ỉ ố ỉ ố ỉ ố

ả ả

ế ế

ị ị

Khai báo m ng có ch  s  ki u associative ị $bi n_m ng=array(“ch   s   h1”=>array(“ch   s   c1”=>giá  tr ,  ỉ ố ỉ ố ị “ch   s   c2”=>giá  tr   2,  …),  “ch   s   h2”=>array(“ch   s   ị c1”=>giá tr , “ch  s  c2”=>giá tr , …), …); ỉ ố Ho c:$bi n_m ng[“ch  s  h1”][“ch  s  c1”]=giá tr  1; ỉ ố $bi n_m ng[“ch  s  h1”][“ch  s  c2”]=giá tr  2;  ….

Ví dụ: Ta có các khai báo $tpho=array(“HCM”=>array(“Ten”=>“HoChiMinh”,“dan so”=>10000000),

“HN”=>array(“Ten”=>“HaNoi”,“dan so”=>6000000),  “HP”=>array(“Ten”=>“Hai Phong”),“DN”=>array(“Ten”=>“Da Nang”));

$tpho[“HCM”][“Ten”]=“HoChiMinh”; $tpho[“HN”][“dan so”]=6000000; …

Lập trình Web

28/04/16

110

ệ ớ ả

Làm vi c v i m ng

ề   m ng  hai  chi u  thông  qua

ể ế

ầ ử ả ớ Có  th   thao  tác  v i  các  ph n  t ộ tên bi n_m ng và hai ch  s  hàng, c t

ả ế

ỉ ố ỉ ố

ỉ ố ộ

$bi n_m ng[“ch  s  hàng”][“ch  s  c t”]; ạ

Cú pháp: Ví dụ: Ta có đo n code sau: array("Ten"=>"Ho

chi  minh",

"HN"=>array("Ten"=>"Ha  "DN"=>array("Ten"=>"Da

"dan  noi","dan  nang"),

so"=>10000000),  so"=>6000000),  "HP"=>array("Ten"=>"Hai phong")); echo  “”.$tpho[“HCM”][“Ten”].“  co

so  dan:  ”.

$tpho[“HCM”][“dan so”].“ nguoi 
”;

?>

Lập trình Web

28/04/16

111

ệ ớ ả

Làm vi c v i m ng

Lập trình Web

28/04/16

112

ệ ớ ả

Làm vi c v i m ng

ể ệ ấ ả ầ ử ủ t c  các ph n t c a

ử ụ S  d ng hàm list() đ  duy t t m ngả

ụ ử ụ

Ví dụ: s  d ng list() cho ví d  trên  $hang: ”; { while (list($cot, $value)=each($tpho1)

echo “$cot: $value ”;

echo “

} ?>

Lập trình Web

28/04/16

113

ệ ớ ả

Làm vi c v i m ng

Lập trình Web

28/04/16

114

ắ ế

S p x p m ng

ể ắ ể ử ụ ế ả

Hàm usort() Hàm uasort() Hàm uksort()

ề Đ  s p x p m ng hai chi u, có th  s  d ng các hàm  nh :ư

ầ ể ế ợ

ớ Tuy  nhiên,  đ   k t  h p  v i  hàm  trên  ta  c n  khai  báo  ầ ử ư  nh  sau: hàm so sánh ph n t function  my_sort($a, $b) {if ($a == $b) return 0;  return ($a > $b)? ­1: 1; }

Lập trình Web

28/04/16

115

Hàm usort()

ắ ứ ự ầ ủ

ế ư ộ ộ  tăng d n c a m t c t nào  ổ ầ ử ả  m ng thay đ i

ả S p x p m ng theo th  t ỉ ố ủ đó nh ng ch  s  c a các ph n t ả ế Cú pháp: usort($bi n_m ng, my_sort)

Lập trình Web

28/04/16

116

Hàm usort()

else if ($a[1]>$b[1]) return 1;    else return ­1;}

$st=array(array("Vietnam", "Hanoi", 100),array("France", "Paris",

3000), array("Spain", "Madrid", 2000));

usort($st, SX); for($i=0; $i<3; $i++) {for($j=0; $j<3; $j++)

echo "phan tu thu st[".$i."][".$j."]= ".$st[$i][$j]."|  "; echo "
";

?>

}

ạ Ví dụ: xét đo n code sau 

Lập trình Web

28/04/16

117

Hàm usort()

Lập trình Web

28/04/16

118

Hàm uasort()

ắ ứ ự ầ ủ ộ ộ

ế ư ỉ ố ủ ầ ử ả ổ tăng d n c a m t c t nào    m ng  không  thay  đ i

ả S p x p m ng theo th  t đó  nh ng  ch   s   c a  ph n  t theo

ả ế Cú pháp: uasort($bi n_m ng, my_sort)

Lập trình Web

28/04/16

119

Hàm uksort()

ử ỉ ố ủ  m ng theo ch  s  c a chúng. S

ỉ ố ể ế ắ S p x p các ph n t ố ớ ụ d ng đ i v i các m ng có ch  s  ki u associative

ầ ử ả ả ả

ể ế ổ

ả ủ ế Cú pháp: uksort($bi n_m ng, my_sort) ể ắ ộ ộ ­ Đ  s p x p m ng theo m t c t nào đó ta có th  thay đ i  ộ n i dung c a hàm my_sort()

Lập trình Web

28/04/16

120

Ử 3.4 CÁC HÀM X  LÝ TRÊN M NG

ể ự ồ ạ ủ

ầ ử ả ả Hàm ki m tra s  t n t i c a m ng ầ ử Hàm di chuy n trên các ph n t ả ướ ả ề Hàm tr  v  kích th c m ng ả ế Hàm tìm ki m trên m ng ặ Hàm thêm ho c xóa ph n t m ng

Lập trình Web

28/04/16

121

ự ồ ạ ủ

Hàm ki m tra s  t n t

i c a m ng

ể ể ế ả ộ

ồ ạ Dùng hàm is_array() đ  ki m tra m t bi n m ng nào  đó có t n t

i hay không. ả ế

Cú pháp: is_array($bi n_m ng); Ví d :ụ

Lập trình Web

28/04/16

122

ầ ử

Hàm di chuy n trên các ph n t

ể ỏ

Các hàm th ph n t

ườ ể ng dùng đ  di chuy n con tr  trên các  ầ ử ả  m ng Hàm current() Hàm next() Hàm each() Hàm prev() Hàm reset() Hàm end()

Lập trình Web

28/04/16

123

Hàm current()

ụ ả ề ị ủ ầ ử ệ ạ ả hi n t i trong m ng.

Tác d ng: tr  v  giá tr  c a ph n t ế Cú pháp: current($bi n_m ng) ệ Ví dụ: xét câu l nh sau:

"; ?>

Lập trình Web

28/04/16

124

Hàm next()

ả ề k  ti p; tr  v  false

ả ề Tác d ng: tr  v  giá tr  c a ph n t ả ế ị ủ ặ ầ ử ỗ ầ ử ế ế  r ng

ụ ế n u h t m ng ho c ph n t ế ả

ệ Cú pháp: next($bi n_m ng) Ví dụ: xét câu l nh sau:

"; echo next($people); ?>

Lập trình Web

28/04/16

125

Hàm each()

ả ề ỉ ố ầ ử ệ ạ hi n t i và

ể ị ủ ầ ử ế Tác d ng: tr  v  ch  s  và giá tr  c a ph n t  ti p theo

ụ ỏ chuy n con tr  sang ph n t ế ả

ệ Cú pháp: each($bi n_m ng) Ví dụ: xét câu l nh sau:

$val" ; ?>

Lập trình Web

28/04/16

126

Hàm prev()

ị ủ ngay tr

ướ ặ ệ ạ ả ề ế ả ầ ử ả ề c ph n t Tác d ng: tr  v  giá tr  c a ph n t ầ i; tr  v  false n u đ u m ng ho c ph n t ầ ử   ầ ử

ụ hi n t r ngỗ

ế ả

ệ Cú pháp: prev($bi n_m ng) Ví dụ: xét câu l nh sau:

"; echo next($people).“
” ; echo prev($people);?>

Lập trình Web

28/04/16

127

Hàm reset()

ỏ ả ả ề ả

ủ ị ủ ề ầ Tác d ng: chuy n con tr  m ng v  đ u m ng và tr  v  giá  ả  đ u tiên c a m ng

ể ụ ầ ử ầ tr  c a ph n t ế ả

Cú pháp: reset($bi n_m ng) ệ Ví dụ: xét câu l nh sau:

"; echo next($people).“
” ; echo reset($people); ?>

Lập trình Web

28/04/16

128

Hàm end()

ể ả ề Tác d ng: chuy n con tr  m ng v  cu i m ng và tr  v

ị ủ ề ố ủ ả

ế

ệ ụ ả ỏ ả ầ ử ố giá tr  c a ph n t  cu i cùng c a m ng ả Cú pháp: end($bi n_m ng) Ví dụ: xét câu l nh sau:

"; echo next($people).“
” ; echo end($people); ?>

Lập trình Web

28/04/16

129

ướ

ả ề Hàm tr  v  kích th

ả c m ng

ả ể ể ử ụ Có th  s  d ng hàm count() ho c hàm sizeof() đ   ố ổ ế đ m t ng s  ph n t

ầ ử ả có trong m ng ặ ế ế ả

Cú pháp: count($bi n_m ng) ho c sizeof($bi n_m ng)

$people = array("Peter", "Joe", "Glenn", "Cleveland"); $result1 = count($people); $result2 = sizeof($people); echo $result1; echo $result2;

?>

Lập trình Web

28/04/16

130

ế Hàm tìm ki m trên m ng

Hàm in_array() Hàm array_key_exists() Hàm array_search()

Lập trình Web

28/04/16

131

Hàm in_array()

ị Tác d ng: Tìm xem m t giá tr  nào đó có trong m ng hay

ộ ả ề ế ụ không? N u có tr  v  true, ng c l

ố ả ượ ạ ả ề i tr  v  false ả ế ặ ị ị ầ Cú pháp: in_array(“giá tr  c n tìm”, $bi n_m ng, type) ậ Trong đó: type là tham s  nh n 2 giá tr  true ho c false.

ế ậ ế ệ t l p là true thì tìm ki m có phân bi t hoa,

ặ ị ố ế N u thi ườ th ng; xâu, s . Và m c đ nh là false

Lập trình Web

28/04/16

132

Hàm in_array()

Ví dụ: xét đo n mã:

Lập trình Web

28/04/16

133

Hàm array_key_exists()

ả ề ế ấ ả ộ Tác d ng: Ki m tra xem m t khóa nào đó có trong m ng  ượ ạ ả i tr c l

ụ hay không? Tr  v  true n u tìm th y, ng ề v  false

ế ả ị

Cú pháp: array_key_exists(“giá tr  khóa”, $bi n_m ng) Ví dụ: Xét đo n mã sau:

$a=array("a"=>"Dog","b"=>"Cat"); if (array_key_exists("a",$a)) echo "Key exists!"; else echo "Key does not exist!";

?>

Lập trình Web

28/04/16

134

Hàm array_search()

ể ộ Tác d ng: Ki m tra xem m t giá tr  nào đó có trong m ng

ả ề ấ ụ hay không? Tr  v  khóa t

ả ị ế ươ ứ ng  ng n u tìm th y ế ả

ị ầ Cú pháp: array_search(“giá tr  c n tìm”, $bi n_m ng, type) Ví dụ: xét đo n mã sau:

$a=array("a"=>"Dog","b"=>"Cat","c"=>" Horse"); echo array_search("Dog",$a); $b=array("a"=>"5","b"=>5,"c"=>“15"); echo array_search(5,$b,true);

?>

Lập trình Web

28/04/16

135

ầ ử ả

ặ Hàm thêm ho c xóa ph n t

m ng

Hàm array_unshift() Hàm array_push() Hàm array_shift() Hàm array_pop()

Lập trình Web

28/04/16

136

Hàm array_unshift()

ố ụ Tác d ng: thêm các ph n t ủ c a hàm là s  ph n t

ầ ả ả ị

ầ ử ị ả ề ả  vào đ u m ng. Giá tr  tr  v   ầ ử ủ  c a m ng sau khi thêm. ế Cú pháp: array_unshift($bi n_m ng, giá tr  1,  …) Ví dụ: xét đo n mã sau:

$a=array("a"=>"Cat","b"=>"Dog"); echo array_unshift($a,"Horse"); echo $a;

?>

Lập trình Web

28/04/16

137

Hàm array_push()

ư ạ ư ả Tác d ng: cũng gi ng nh  h m array_unshift() nh ng l i

ố ố ả

ụ thêm vào cu i m ng ế ả ị ị

Cú pháp: array_push($bi n_m ng, giá tr  1, giá tr  2, …) Ví dụ: xét đo n mã sau:

$a=array("a"=>"Cat","b"=>"Dog"); echo array_push($a,"Horse"); echo $a;

?>

Lập trình Web

28/04/16

138

Hàm array_shift()

ạ ỏ ủ Tác d ng: lo i b  ph n t

ả ả ế ả  đ u tiên c a m ng. K t qu  tr   ầ ử ừ ị ạ ỏ  v a b  lo i b .

ầ ử ầ ị ế

ụ ề ủ v  c a hàm là giá tr  ph n t ả Cú pháp: array_shift($bi n_m ng) Ví dụ: xét đo n mã sau:

$a=array("a"=>"Dog","b"=>"Cat","c"=>" Horse"); echo array_shift($a); echo $a;

?>

Lập trình Web

28/04/16

139

Hàm array_pop()

ạ ỏ ư ư ầ ố Tác d ng: cũng gi ng nh  array_shift nh ng lo i b  ph n

ụ ử ố t cu i cùng

ế ả

$a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse" ); echo array_pop($a); echo $a;

?>

Cú pháp: array_pop($bi n_m ng) Ví dụ: xét đo n mã sau:

Lập trình Web

28/04/16

140

3.5 CHU I KÝ T  (STRING)

ệ ỗ Khái ni m chu i ký t Khai báo chu iỗ ỗ ệ ớ Làm vi c v i chu i

Lập trình Web

28/04/16

141

Khái ni m chu i ký t

(string)

ộ ỗ ự

ỗ ợ ạ

ỗ ợ ấ ớ ự ủ ề

String trong PHP là m t chu i các ký t  1 byte. PHP  ệ ớ ể không h  tr  Unicode, đ  làm vi c v i Unicode b n  ả ử ụ ph i s  d ng UTF8 v i các hàm utf8_encode() –  utf8_decode() ỗ  Chu i ký t

c a PHP h  tr  chi u dài r t l n

Lập trình Web

28/04/16

142

Khai báo chu iỗ

c khai báo theo 3 cách ự ượ  đ Trong PHP, chu i ký t

ấ ấ

ỗ ơ  D u nháy đ n (single quote)  D u nháy kép (double quote)  Heredoc

Lập trình Web

28/04/16

143

Khai báo chu iỗ

ơ

Ki u d u nháy đ n

echo 'You can also have embedded newlines in

strings this way as it is okay to do'; echo 'Arnold once said: "I\'ll be back"'; echo 'You deleted C:\\*.*?'; echo 'You deleted C:\*.*?'; echo 'This will not expand: \n a newline‘; echo 'Variables do not $expand $either'; ?>

Lập trình Web

28/04/16

144

Khai báo chu iỗ

ấ ư ự

ế ữ ớ ư c escape (nh  \n, \t...) cùng v i các bi n (n u có)

ị ủ

ự ặ ế ẽ t c n escape s  không đ c in

ể ấ ể ớ ể Ki u d u nháy kép: ki u này gi ng v i ki u d u nháy  ệ ơ ự ặ ỗ ợ ơ đ n nh ng có nhi u h  tr  cho các ký t t h n  đ c bi ự ặ ẽ  đ c  Khi th c thi, PHP s  tìm và thay th  nh ng ký t ế ế ệ ượ t đ bi trong xâu ử ụ ơ ấ Khi s  d ng d u nháy đ n, giá tr  c a bi n trong xâu,  ượ ệ ầ ớ  đ c bi cùng v i các ký t ra.

Lập trình Web

28/04/16

145

Khai báo chu iỗ

$a = 1; echo 'Biến \$a có giá trị là $a'; echo "Biến \$a có giá trị là $a";

?>

Ví d : ụ

Lập trình Web

28/04/16

146

Khai báo chu iỗ

Ki u Heredoc

spanning multiple lines
using heredoc syntax.
EOA;echo($str); $name = "quang"; $d = date("d/m/y"); $str = << Ngay $d
EOQ;echo($str); ?>

Lập trình Web

28/04/16

147

ỗ ệ ớ Làm vi c v i chu i

ề ể ỗ ế   Truy n bi n ki u chu i

Lập trình Web

28/04/16

148

ỗ ệ ớ Làm vi c v i chu i

ế ừ ậ ự ủ Truy c p đ n t ng ký t ỗ  c a chu i

echo "
$str";

$str{strlen($str)-1} = "s";

echo "
$str";

?>

Lập trình Web

28/04/16

149

ỗ ệ ớ Làm vi c v i chu i

ử ử ộ toán t ỗ  c ng chu i trên string:

Các toán t

$txt1="Hello World!"; $txt2="What a nice day!"; echo $txt1 . " " . $txt2;

?>

Lập trình Web

28/04/16

150

Ỗ 3.6 CÁC HÀM X  LÝ TRÊN CHU I

ế

ạ ị ỗ Hàm đ nh d ng chu i ỗ ế ợ Hàm k t h p hay tách chu i Hàm so sánh chu iỗ ế Hàm  tìm  ki m  và  thay  th   chu iỗ

Lập trình Web

28/04/16

151

ỗ Hàm đ nh d ng chu i

ế ể ấ ả ự ỗ : Chuy n t t c  các ký t trong

ữ ỗ strtoupper(bi n_chu i) chu i thành ch  hoa

ế ể ấ ả ự t c  các ký t trong

ữ ườ ỗ ỗ : Chuy n t strtolower(bi n_chu i) ng chu i thành ch  th

ể ự ầ ỗ : Chuy n ký t đ u tiên trong

ữ ỗ ế ucfirst(bi n_chu i) chu i thành ch  hoa

ự ầ ủ ỗ ể ỗ : Chuy n các ký t đ u c a m i

ữ ế ucwords(bi n_chu i) ỗ ừ t trong chu i thành ch  hoa

tr ng bên trái:

ỗ ,  ế ltrim(bi n_chu i) ỗ ế

ỗ  và trim(bi n_chu i),  ỗ ự ắ ắ Hàm c t ký t ế rtrim(bi n_chu i) ế chop(bi n_chu i)

Lập trình Web

28/04/16

152

ỗ Hàm đ nh d ng chu i

$str=“ Welcome to lap trinh web "; echo $str; echo "
"; echo strtoupper($str); echo "
"; echo strtolower($str); echo "
"; echo ucfirst($str); echo "
"; echo ucwords($str); echo "
";

?>

Lập trình Web

28/04/16

153

ỗ Hàm đ nh d ng chu i

Lập trình Web

28/04/16

154

ế ợ

ỗ Hàm tách hay k t h p chu i

ỗ ế ế ỗ

ử ụ ị

ế ả

ử ụ ỗ ị

: Tách bi n chu i thành các  strtok (bi n_chu i, str) ỗ ỗ ỗ chu i con, s  d ng chu i str làm chu i xác đ nh cách  tách ỗ ỗ : Tách chu i thành m ng  explode(str, bi n_chu i) ỗ các chu i con, s  d ng str làm chu i xác đ nh cách  tách

ỗ : Tr  v  chu i con t ừ

ế ỗ ế substr(bi n_chu i, k [, n]) ỗ ạ ị bi n chu i, t ấ i v  trí k, l y n ký t ả ề ự .

ả c a m ng

ế ợ ỗ ỗ ấ ầ ử ủ implode(str, $mang): K t h p các ph n t ế thành chu i, l y str làm chu i liên k t

Lập trình Web

28/04/16

155

ế ợ

ỗ Hàm tách hay k t h p chu i

Lập trình Web

28/04/16

156

ế ợ

ỗ Hàm tách hay k t h p chu i

Lập trình Web

28/04/16

157

Hàm so sánh chu iỗ

ế ế

ệ ữ

ẫ ườ ế ố

ế

ữ ườ ẫ ộ ị

ế

ữ ệ ế ữ t ch  hoa, ch

ế ố ườ ẫ (int) strcmp (str1, str2): 0 n u str1 == str2, n n u  ữ t ch  hoa, ch   str1>str2, ­n n u str1str2, ­n n u str1str2, ­n n u str1

Lập trình Web

28/04/16

158

ế ợ

ỗ Hàm tách hay k t h p chu i

Lập trình Web

28/04/16

159

ế

ế

ỗ Hàm tìm ki m và thay th  chu i

ỗ ấ ế ỗ

ấ ế ả ề ị ỗ

ế ả ề ấ

ế ỗ

ỗ ả ể i, tr  v  false. ỗ : thay chu i con str1

ầ ỗ : thay ph n chu i tính

ỗ : tr  v  v  trí chu i con str xu t  strpos(bi n_chu i,str) ả ế ầ ệ hi n đ u tiên trong bi n_chu i, n u không tìm th y tr   ề ỗ v  r ng. ỗ : tr  v  str1 n u tìm th y str1  ế strstr(str1, bi n_chu i) ượ ạ c l trong bi n_chu i. Ng ế str_replace(str1, str2, bi n_chu i) ỗ ế ằ b ng str2 trong bi n_chu i. ỗ ế substr_replace(bi n_chu i, str, n) ỗ ằ ế ừ ị t v  trí n trong bi n_chu i b ng chu i str.

Lập trình Web

28/04/16

160

ế

ế

ỗ Hàm tìm ki m và thay th  chu i

Lập trình Web

28/04/16

161

BÀI T P TH C HÀNH

ế

ả 1.  Ch y các ví d  trong slides đ  xem k t qu   ệ

hi n th  lên trình duy t. ậ

ươ

ệ 2.  Vi

ng trình nh p vào m t chu i ký t

ỗ ừ ở có trong chu i (các t cách nhau b i các

ế ườ xu t hi n trong chu i (trong  ng và

ữ ệ

ị ế t ch ấ ỳ b t k . Sau đó: ố ừ ế  Đ m s  t ắ ả kho ng tr ng) ố  Đ m s  các ký t ợ tr không phân bi

ự ấ ệ ng h p có phân bi t ch  hoa ch  th ệ ỗ ữ ườ ữ t ch  hoa ch  th ữ ườ ng)

Lập trình Web

28/04/16

162

BÀI T P TH C HÀNH

3.  Tách chu i nh p vào thành các ph n:

ỗ ị ỗ ố ỗ ọ ọ Chu i đ a ch  email thành username và domain Chu i s  ngày tháng thành ngày, tháng, năm. ầ ủ Chu i h  tên đ y đ  thành h  và tên

Lập trình Web

28/04/16

163

ƯƠ

CH

NG 4: HA M̀

̃ Ự

Ệ ̀ Ự ̣

Ớ ́ ̀ ́ ̀ ̣ I THI U V  HA M̀ 4.1 GI 4.2 CA C HA M XÂY D NG SĂ N 4.3 HA M T  TAO 4.4 CA CH GOI HA M

Lập trình Web

28/04/16

164

4.1. GI

I THI U V  HA M̀

Khái ni m ha m̀ ệ Phân lo i ha m̀ ạ

Lập trình Web

28/04/16

165

Khái ni m ha m̀ ệ

̀ ̀ ̀ ̣ ̣ ̣

̉ ự ́ ́ ́ ư ̉ ̣ ̉ ̣

̀ ́ ̃

́ ơ i CSDL, thông ba o lô i, … ̀ ́ ́ ̀ ơ ̉ ̣ ̉

̀

́

́

̀

́

́

̀ ́ Ha m  du ng  đê  th c  hiên  môt  công  viêc  na o  đo .  ́ Chăng han nh : lâ y nga y tha ng cua hê thô ng, kê t  ́ nô i t ́ Tâ t  ca  ca c  ha m  trong  php  đê u  co   dang  c   ban  sau: Tên_ha m( ́ ) ́ [Đô i sô ]

̀ ́

̀

́

́

̣ ̉

̀

̀

̣ ̣ ̣

́ c kê t qua tra vê  cua ha m

̉ ̉ ̉

̀ Đô i sô : Tu y thuôc va o ca c ha m kha c nhau ma  co  thê  ́ co  môt hoăc nhiê u đô i sô  hoăc không co  đô i sô . ́ ượ Câ n nă m đ ̀ ̉ ượ c th c thi khi co  l ́ ̀ ́

̣ ̀ ơ i goi ha m

́ ̀ ́ ự ở  bâ t k  đâu trong trang

ỳ ̉ ̣ Trong đo : ́ ́ ́ ̀ Ha m chi đ Co  thê goi ha m

Lập trình Web

28/04/16

166

Phân lo i ha m̀ ạ

̣

̀ c phân la m hai loai ́

̀ ̀ ̃ ̉

́ ̣ ̉

́ ự ́ ̃ ượ ̣ đinh nghi a: đ c

̀ ơ ̉ ự ́ ̀ ự

̀ ượ Ha m trong php đ ̀ ự Ca c ha m xây d ng să n: La  ca c ha m du ng đê  ́ ư th c hiên ca c ch c năng c  ban cua php ̀ ̀ ̀ ươ i du ng t Ca c ha m do ng ́ xây d ng trong qua  tri nh viê t code

Lập trình Web

28/04/16

167

̃

́

̀

Ự

4.2 CA C HA M XÂY D NG SĂ N

̀

́ơ ́ơ

i MySQL i file

̣

́

́ ́ ́ ́ ́ ́

̀ ̀ ̀ ̀ ̀ ̀

̣ ̣

Ca c ha m nga y gi ́ Ca c ha m thao ta c v ́ Ca c ha m thao ta c v Ca c ha m loc filter ̃ Ca c ha m thông ba o lô i ử Ca c ha m x  lý ngoai lê

Lập trình Web

28/04/16

168

̀

̀

́

̀ơ

Ca c ha m nga y gi

̀ ́ ̀ ̉ ̣ ̣

̀ ̀ ̀ ̀ ̀

̀ ̣ ́ ́ Du ng đê lâ y hoăc thiê t lâp nga y tha ng trên Server ̀ ờ ơ ̉ Môt sô  ha m nga y gi  c  ban:

́ Ha m date() Ha m time() Ha m getdate() Ha m checkdate() Ha m mktime()

Lập trình Web

28/04/16

169

Hàm date()

̀ ̀ ̀ ̉ ̉ ̀ ơ ự  d a trên nga y gi ̀ ơ  cua Server theo

̣ ̣ ̉ Tra vê  nga y, gi đinh dang chi ra.

Cú pháp: date(format, [timestamp]) Trong đo :́

̀ ̀ ự ờ ̣ ̣ ̉ đinh dang đâ u ra cua nga y, gi

̣ ́ ̀ Format: La  ky  t ̀ timestamp: Tu y chon

Lập trình Web

28/04/16

170

Hàm date()

̀ơ

́ ̣ ̣ ̣ ́ Môt sô  ky  t đinh dang:

̉

̀

́

̉

̉

ự a: am hoăc pṃ A: AM hoăc PṂ ̃  Internet B: mâ u gi ́ ̀ d: nga y cua tha ng (01 … 31) ̀ ̀ D: nga y cua tuâ n (Mon … Sun) ́ F: Tha ng co  tên đâ y đu (January … December) ̀ơ  (1 … 12) g: gi ̀ơ  (0 … 23) G: gi ̀ơ  (01 … 12) h: gi ̀ơ H: gi  (00 … 23) ́ i: phu t (00 … 59)

Lập trình Web

28/04/16

171

Hàm date()

́ ̀

̀ ̀

̉

́

ượ

̉

c lai)

́ ́

́

́

̉ ̣ ̣ ̣

cua tiê ng anh (st, nd, rd, th)

́

́

̣ ̉

̉

́ ̀

̣ ̉

́ ́

̀

̉ ̣

j: nga y cua tha ng (1 … 31) l: nga y cua tuâ n (Monday … Sunday) L: kiêm tra năm nhuân (1: nê u năm nhuân, 0: ng m: tha ng (01 … 12) M: tha ng (Jan … Dec) n: tha ng (1 … 12) s: giây (00 … 59) ́ ́ ư ự S: hâu tô  th  t ̀ t: sô  nga y cua tha ng (28 … 30) ́ T: thiê t lâp timezone cua ma y ́ ̀ w: nga y cua tuâ n dang sô  (0: Sunday, …, 6: Saturday) Y: năm 4 sô  (2009) y: năm 2 sô  (09) z: nga y cua năm (0 … 365)

̉

Lập trình Web

28/04/16

172

Hàm date()

́ ̣ Vi  du 1:

 VI DU VE HAM DATE() 

"); echo(date("l dS \of F Y h:i:s A") . ""); echo("Oct 3,1975 was on a ".date("l",

mktime(0,0,0,10,3,1975))."");

?> 

Lập trình Web

28/04/16

173

Hàm date()

́ ̣

$nextWeek = time() + (7 * 24 * 60 * 60); echo 'Now: '. date('Y-m-d') ."\n"; echo 'Next Week: '.date('Y-m-d',

$nextWeek)."\n"; // or using strtotime() echo 'Next Week: '.date('Y-m-

d',strtotime('+1 week'))."\n";

?>

Vi  du 2:

Lập trình Web

28/04/16

174

Hàm time()

̀ ̀ ́ ́ ̃ ̉ ̀ ư  00:00:00 GMT nga y

Tra vê  sô  giây đa  qua ti nh t 1/1/1970

̣

$t=time(); echo($t . "
"); echo(date("D F d Y",$t));

?>

Cú pháp: time() ́ Vi  du:

VI DU VE HAM TIME()

Lập trình Web

28/04/16

175

Hàm getdate()

̀

̀

́

ử ư

̉ ̣ ̉

nh  sau:

̀ Tra vê  môt mang gô m ca c phâ n t [seconds] – Giây [minutes] - phút [hours] - giờ [mday] – ngày của tháng [wday] – ngày của tuần [year] - năm [yday] – ngày của năm [weekday] – tên của thứ trong tuần [month] – tên của tháng

́ ́ Cu  pha p: getdate()

Lập trình Web

28/04/16

176

Hàm getdate()

̣

́ Vi  du:

VI DU HAM GETDATE()

$my_t=getdate(date("U")); print("$my_t[hours]: $my_t[minutes]:

$my_t[seconds]\t");

print("$my_t[weekday], $my_t[month]

$my_t[mday], $my_t[year]");

?>

Lập trình Web

28/04/16

177

Hàm checkdate()

̀ ́ ̀ ̀ ́ ̉ ̉

̀ ́ ̀ ́ ượ ̣ ̉ ̣ ̉ Du ng đê kiêm tra nga y, tha ng, năm na o đo  co  h p  lê không. Nê u co  tra vê  true, ng ́ ợ c lai tra vê  false

́ checkdate(month, day, year)

̣ ́ Cu  pha p:   ́ Vi  du:

echo (checkdate(12,31,2000)); echo (checkdate(2,29,2003)); echo (checkdate(2,29,2004));

Vi du ham checkdate()

?>

Lập trình Web

28/04/16

178

Hàm mktime()

́ ́ ̀ ̉ ̣ Du ng đê ti nh toa n nga y h p lê.

̀ ợ ́ mktime(hour, minute, second, month, day, year)

Vi du ham mktime()

"); echo(date("M-d-Y",mktime(0,0,0,14,1,2001))."
"); echo(date("M-d-Y",mktime(0,0,0,1,1,2001))."
"); echo(date("M-d-Y",mktime(0,0,0,1,1,99))."
"); ?>

̣ ́ Cu  pha p:   ́ Vi  du:

Lập trình Web

28/04/16

179

́

̀

́

́ơ

Ca c ha m thao ta c v

i MySQL

́ ́ ̀ ́ ́ ơ ̉ ̣ ̉

ơ ̉ ̣

ở Du ng  đê  m   hoăc  huy  kê t  nô i,  thao  ta c  v i  CSDL MySQL ̀ ́ Môt sô  ha m c  ban: ̀ mysql_connect() Ha m  ̀ mysql_close() Ha m  ̀ mysql_pconnect() Ha m  ̀ mysql_select_db() Ha m  ̀ mysql_querry() Ha m

Lập trình Web

28/04/16

180

̀

Ha m mysql_connect()

́ ́ ơ ̉ ̉ ở Du ng đê m  kê t nô i t i CSDL chu MySQL

́ ̀ ́ mysql_connect(server, user, pwd) ́ ̀ ̀ ́ ̣ ̣ ̣ ̉ ́ Cu  pha p:  ́ ự Vi  du: ́ ơ i ma y cuc bô bă ng ta i khoan

́ ̣  Th c hiên kê t nô i t ̀ mysql_user va  password la ̀ mysql_pwd

́ ̀ ̉ ̣ ̉ Co  thê du ng đia chi ip thay cho tên server:

Lập trình Web

28/04/16

181

̀

Ha m mysql_close()

́ ́ ̉ ́ Du ng đê đo ng kê t nô i t ́ ơ i CSDL MySQL

̀ ́ mysql_close(connection)

̣ ́ Cu  pha p:  ́ Vi  du:

Lập trình Web

28/04/16

182

̀

Ha m mysql_pconnect()

̀ ̃ ư ư

̀

ở

̉

́

̀

̀

́

̃

ượ ượ

c  m   trên  cu ng  host,  user,  pass.  ở c ti m thâ y thi  no  se  không m

́ ́

́

́

̃

́ ́ ́ ́ ơ

ự

́ ́ Cu ng  giô ng  nh   ha m  mysql_connect()  nh ng  co   điêm kha c.́ ̀ ́ ́ ̣

̃ Ti m  kê t  nô i  đa   đ ́ Nê u môt kê t nô i đ ́ơ thêm kê t nô i m i Liên kê t v i MySQL không đo ng khi ma  th c thi kê t  thu ć ́ mysql_pconnect(server, user, pwd)

́ Cu  pha p:

Lập trình Web

28/04/16

183

̀

Ha m mysql_select_db()

̀ ̉ ư ̉ Du ng đê chuyên t

́ ̀ ̀  CSDL na y qua CSDL kha c ́ mysql_select_db(database, [connection])

̣ ́ Cu  pha p:  ́ Vi  du:

Lập trình Web

28/04/16

184

̀

Ha m mysql_querry()

́ ́ ́ ơ G i ca c câu truy vâ n t i MySQL server

ử ́ mysql_querry(querry, [connection])

̣ ́ Cu  pha p:  ́ Vi  du:

Lập trình Web

28/04/16

185

́

́

̀

́ơ

Ca c ha m thao ta c v

i MySQL

̀

́ ̀ ́ ̉ ̣

̃

́

́

́

ư

ợ

ơ

̉ ̉

̀

́

̉ ̣ ̣ ̉

̀

́

̣ ́ ́ ̀ ơ Ngoa i  ra,  đê  thao  ta c  v i  CSDL  co n  co   môt  sô   ̀ ha m sau: ̀ mysql_fetch_array(data,  [array_type]):  tra  vê   ban  Ha m  ̀ ư ghi trong bang d  liêu nh  la  môt mang kê t h p v i ca c  ặ côt la  kho a ho c m ng numeric.

̀ mysql_affected_rows([connection]):  tra  vê   sô   ban  ở

ưở

̉ ̉

Ha m  ghi trong bang bi anh h

ng b i update, delete, insert

̀

́

̉ ̣ ̉

̀ mysql_errno([connection]): tra vê  sô  cua thông điêp

̉ ̉ ̣

Ha m  ̀ư ̃ lô i t

hoat đông cua MySQL.

̀

́

̣ ̣ ̉

̀ mysql_error([connection]):  tra  vê   chi  tiê t  thông

̉

Ha m  điêp bi lô i.̃

̣ ̣

Lập trình Web

28/04/16

186

́

́

̀

́ơ

Ca c ha m thao ta c v

i MySQL

ả ề ố ả

̀

̀ mysql_result(data  of  querry,[m,  n]):  tra  vê   giá  tr   ị

ươ ứ

̀

́

ườ

̉

ng

ng  ng v i hàng m và c t n. ̀ mysql_num_fields([connection]):  tra  vê   sô   tr

ế ố

ư

ế

̀ mysql_ping(): ki m tra k t n i server. N u ch a có

ế ợ

Hàm  mysql_num_rows(data):  tr   v   s   b n  ghi  trong  ả b ng khi select. Ha m  trong b ng t Ha m  ủ ả c a b ng. Ha m  ế ố k t n i thì reconnect.  ư Hàm  mysql_fetch_assoc(data):  Tr   các  b n  ghi  v   nh   ả m ng k t h p …

̉

Lập trình Web

28/04/16

187

́

̀

́

́ơ

Ca c ha m thao ta c v

i file

̀ ̃ ̀ ư ̣ ̣

́

̀

̉ ở

fopen(file_name, format): du ng đê m  file co  tên

ơ ̉ ̣ ̉ ở Du ng đê m , đoc, ghi, d  liêu va o file ̀ Môt sô  ha m c  ban:

́

̣ ̣

́ : du ng đê đo ng file đang m

́

̉

:  du ng  đê  kiêm  tra  xem  đa   kê t

fclose(biê n_file) ́ feof(biê n_file)

̀

̀

̉ ̉

̀

́

ư

̉ ̣

̀ ư : du ng đê đoc theo t ng do ng ự : đoc theo t ng ky  t

́ fgets(biê n_file) ́ fgetc(biê n_file)

̣

́ ̀ Ha m  file_name theo đinh dang format (r, r++, w, w++, a …) ̀ ̀ ở Ha m  ̃ ̀ ̀ Ha m  ́ ư thu c file hay ch a ̀ Ha m  ̀ Ha m  …

Lập trình Web

28/04/16

188

́

́

̀

́ơ

Ca c ha m thao ta c v

i file

̣ Vi  dú

Lập trình Web

28/04/16

189

́

̀

́

́ơ

Ca c ha m thao ta c v

i file

̣ Vi  dú

Lập trình Web

28/04/16

190

́

̀

̣

Ca c ha m loc

́ ̀ ̣ ̣ ̉ ̣

ư ́ ợ ̣ ̉ ̣ ̣

̀ ̣ ư ̀ ̃ ư ̉ ̉ ̣

́ ́ ̃ ư ̣ ̉ ̣ ̣ ̣

̀

̀ ̣

̀

́

́

ơ

̣ ̣

́

́

̣ ̣

́

̣ ̣ ̣ ̣

̀ ̀

̀

́

̀

̣ ̣ ̣

́ ̀ filter_input(): nhân va o môt biê n va  loc no filter_input_array(): nhân va o nhiê u biê n va  loc

̣ ̣

́ ̀ ư ng  dung  Môt  phâ n  kha   quan  trong  cua  bâ t  ky   ̃ ̀ ́ ̀ web  na o  la   viêc  kiêm  tra  ti nh  h p  lê  va   loc  d   ̀ ̀ liêu  t   nh ng  nguô n  va o  không  đam  bao  đô  tin  câỵ ́ ̀ ượ Ca c  ha m  loc  đ c  thiê t  kê   đê  loc  d   liêu  môt  ́ ́ ̀ ̃ ́ ca ch dê  da ng va  nhanh cho ng nhâ t ̀ ́ Ca c ha m loc trong php gô m ́ ̀ ơ filter_var(): loc môt biê n đ n Ha m  ̀ ̀ Ha m  filter_var_array():  loc  nhiê u  biê n  v i  cu ng  bô  loc hoăc ca c bô loc kha c nhau ̀ Ha m  ̀ Ha m  nó

Lập trình Web

28/04/16

191

́

̀

̣

Ca c ha m loc

́ ̣

Vi  du 1:

$int = 123; if(!filter_var($int, FILTER_VALIDATE_INT)) echo "Integer is not valid"; else echo "Integer is valid";

?>

Lập trình Web

28/04/16

192

̀

́

̣

Ca c ha m loc

̣

́ Vi  du 2:

array("options"=>array("min_range"=>0 ,"max_range"=>256));

if(!filter_var($var, FILTER_VALIDATE_INT, $int_options)) echo"Integer is not valid";

else echo"Integer is valid"; ?>

Lập trình Web

28/04/16

193

̀

́

̣

Ca c ha m loc

́ ̣

Vi  du 3:

FILTER_VALIDATE_EMAIL))

echo "E-Mail is not valid"; else echo "E-Mail is valid"; ?>

Lập trình Web

28/04/16

194

́

̀

́

̃ Ca c ha m thông ba o lô i

̀ ̀ ́ ử ̉

error_get_last() set_error_handler() restore_error_handler()

̣ ̃ ́ Du ng đê thông ba o va  x  ly  lô i ̀ ơ ̉ Môt sô  ha m c  ban:

́ ̀ Ha m  error_log() ̀ user_error() Ha m  ̀ Ha m  ̀ Ha m  ̀ Ha m  …

Lập trình Web

28/04/16

195

̀

Ha m error_log()

́ ̃ ̣ ̉ ̣ ̣ ̣

xa.

error_log(error,[type, destination, header])

̣

$test=2; if ($test>1) {error_log("A custom error has been triggered", 1,"someone@example.com","From: webmaster@example.com"); }

?>

̀ Truyê n môt lô i đê n error log chu, môt file hoăc môt  ́ ở đi ch  ́ ́ Cu  pha p:  ́ Vi  du:

Lập trình Web

28/04/16

196

̀

Ha m user_error()

̀ ́ ̃ ̀ ươ ̉ ̣ ̣ i  du ng  đinh

́ user_error(error_message)

̣

$test=2; if ($test>1) { user_error("A custom error has been triggered"); }

?>

̀ Du ng  đê  tao  thông  ba o  lô i  ng nghi ã ́ Cu  pha p:  ́ Vi  du:

Lập trình Web

28/04/16

197

̀

Ha m error_get_last()

́ ̀ ̃ ́ ́ ̣ ̉ ̉

́ ̀ ̀ ́ ̀ ̣ ̉ ̣

́ Thông  ba o  lô i  xuâ t  hiên  cuô i  cu ng. Kê t  qua  tra  ̀ vê  la  môt mang gô m 4 kho a va  gia  tri: [type] – loại lỗi [message] – thông điệp lỗi [file] – file có lỗi xuất hiện [line] – dòng có lỗi xuất hiện

́ ́ Cu  pha p: error_get_last()

Lập trình Web

28/04/16

198

̀

Ha m error_get_last()

̣ ́ Vi  du:

echo $test; $arr=error_get_last(); print("loi: $arr[type]
thong diep:

$arr[message]
tap tin: $arr[file]
dong: $arr[line]");

Vi du ham error_get_last()

?>

Lập trình Web

28/04/16

199

̀

Ha m set_error_handler()

̀ ̀ ́ ̉ ử Xây d ng ha m ng

́ ̃ ̀ ươ ự i du ng đê x  ly  lô i set_error_handler(error_function)

̣

triggered");

?>

́ Cu  pha p:  ́ Vi  du: Custom error: [$errno] $errstr
"; echo " Error on line $errline in $errfile
"; echo "Ending Script"; die();} set_error_handler("customError"); $test=2; if ($test>1)trigger_error("A custom error has been

Lập trình Web

28/04/16

200

̀

Ha m restore_error_handler()

̃

́

̀

̀

̃

ươ

́ c  đo   sau  khi  đa   du ng  ha m

́ ử Khôi  phuc  x   ly   lô i  tr set_error_handler()

́

restore_error_handler()

̣

́ Cu  pha p:  ́ Vi  du:

function customError($errno, $errstr, $errfile, $errline) { echo "Custom error: [$errno] $errstr
"; echo " Error on line $errline in $errfile
";} set_error_handler("customError"); $test=2; if ($test>1) { trigger_error("A custom error has been triggered");} restore_error_handler(); if ($test>1) { trigger_error("A custom error has been triggered");} ?>

̣

Lập trình Web

28/04/16

201

́

Ự

̣

̀ 4.3 CA C HA M T  TAO

́

̀

ự ́

́

ự

ư

̣

Ca ch xây d ng ha m trong php ̀ Môt sô  l u y  khi xây d ng ha m

Lập trình Web

28/04/16

202

Cách xây dựng hàm trong php

ố ế

Cú pháp: function   Ten_ham(ds tham s  n u có) {

thân hàm; [return giá tr ]ị

}

Lập trình Web

28/04/16

203

Truyền tham số

ỗ ợ ề ề

ố ớ ế ề ố ố PHP h  tr  truy n tham s  vào hàm, truy n tham s   i d ng tham chi u (reference), truy n tham s  v i giá

ướ ạ d ị ặ ị tr  m c đ nh

Lập trình Web

28/04/16

204

Truyền tham số (2)

function Loai_cafe ($type = "cappuccino")  {    return "Making a cup of $type.\n";} echo Loai_cafe (); echo Loai_cafe ("espresso"); function Loai_yogurt ($type = "acidophilus", $flavour) {    return  "Making a bowl of $type $flavour.\n";} ự // Không th c thi đúng echo Loai_yogurt ("raspberry"); function Loai_yogurt  ($flavour, $type = "acidophilus") {    return  "Making a bowl of $type $flavour.\n";} ự // Th c thi echo Loai_yogurt ("raspberry");

Lập trình Web

28/04/16

205

Truyền tham số (3)

ố ớ ố ượ

Ta có th  truy n tham s  v i s  l

ng không xác đ nh. Khi

ẽ ử ụ

ng tham s

đó s  s  d ng các hàm sau ố ượ func_num_args(): S  l func_get_args(): L y danh sách các tham s

Lập trình Web

28/04/16

206

Giá trị trả về

ị ủ ử ụ ể ả ề

ệ ị ả ề ủ

ấ ứ ể ố ượ ng)

ể Đ  tr  v  giá tr  c a hàm, s  d ng l nh return. Có th   ử ụ ể ả s  d ng b t c  ki u nào trong giá tr  tr  v  c a hàm (k  c   ả m ng và đ i t

Lập trình Web

28/04/16

207

Biến hàm

ể ử ụ ứ ạ ể ế B n có th  s  d ng các bi n hàm (t c là b n có th

ạ g i hàm d ế i d ng ten_bien() ). ượ ườ ử ụ ướ ạ Bi n  hàm  th ng  đ c  s   d ng  cho  các  hàm

callback \n";}   function bar($arg = '') {echo "In bar(); argument was '$arg'.
\n";}   // This is a wrapper function around echo   function echoit($string) {echo $string;}   $func = 'foo';   $func();        // This calls foo()   $func = 'bar';   $func('test');  // This calls bar()   $func = 'echoit';   $func('test');  // This calls echoit() ?>

Lập trình Web

28/04/16

208

Biến hàm (2)

$name(); // This calls the Bar() method   }   function Bar() {     echo "This is Bar";   } } $foo = new Foo(); $funcname = "Var"; $foo­>$funcname();  // This calls $foo­>Var() ?>

Lập trình Web

28/04/16

209

Ử Ụ

4.4 S  D NG L I MàPHP

ạ i mã php

ả ử ụ ạ ử ụ Vì sao ph i s  d ng l Cách s  d ng l i mã php

Lập trình Web

28/04/16

210

ử ụ

Vì sao s  d ng l

i mã php?

Chi phí ộ ậ Đ  tin c y ấ Tính nh t quán

Lập trình Web

28/04/16

211

ử ụ

Cách s  d ng l

i mã php

ạ ể i  mã  php  ta  có  th   dùng  các  khai  báo

Khai báo require() Khai báo include()

ể ử ụ Đ   s   d ng  l sau:

Lập trình Web

28/04/16

212

Khai báo require()

ộ ể ủ ộ

ầ ạ i mã. ế ạ t l

ụ Dùng  đ   nhúng  m t  trang  này  vào  đo n  mã  c a  m t  ả trang khác mà không c n ph i vi Ví d : Ta có trang Bienluan.php

Lập trình Web

28/04/16

213

Khai báo require()

ử ụ ự

ể Sau  đó  ta  xây  d ng  trang  PTBN.php  và  có  s   d ng  require() đ  nhúng trang Bienluan.php vào.

Lập trình Web

28/04/16

214

Khai báo require()

L u ý:ư  ầ ể ở ộ ấ ỳ ạ

ạ ở ộ

ặ ằ ầ ự c th c thi. ủ

ữ ẽ ượ ộ ầ

c g i.

ữ ặ ượ ẻ ặ ầ c  đ t  gi a  c p  th  

Có th  nhúng b t k  d ng file có ph n m  r ng nào  vào trang php. Tuy nhiên, ch  có nh ng trang có ph n  m  r ng .php ho c có đo n mã php s  đ Khi  nhúng  file  b ng  require()  thì  n i  dung  c a  file  ủ ộ ẽ trong khai báo require() s  là m t ph n c a trang php  ể ượ ệ ạ hi n t c th c thi khi trang php  i, và chúng có th  đ ượ ọ đ Khai  báo  require()  c n  đ và ?>

Lập trình Web

28/04/16

215

Khai báo include()

ả ụ

ể ả ị ầ ạ

ề ợ

ử ụ ề ệ

ề C  include và require đ u có tác d ng là nhúng file vào  ữ trang php. Tuy nhiên, gi a chúng có đi m khác là Khi  ỗ ằ ạ n p b ng require thì web server c n ph i d ch l i m i  ự khi th c thi. ườ ng  h p  nhúng  nhi u  file  vào  trang  php  mà  Trong  tr ộ ụ ph   thu c  vào  đi u  ki n  nào  đó  thì  ta  nên  s   d ng  include.

Lập trình Web

28/04/16

216

Khai báo include()

ụ ạ Ví d : Xét đo n mã

Lập trình Web

28/04/16

217

Th c hành

ạ ư

­

­

­

1. T o các file có tên nh  sau: ­

Top.php Left.php Right.php Bottom.html ử ụ ể ặ Sau  đó,  s   d ng  require  ho c  include  đ   chèn  vào  trang

ư index.php nh  sau:

Lập trình Web

28/04/16

218

Th c hành

Top.php

ầ ị ộ

ể Ph n hi n th  n i dung  chính Left.php right.php

Bottom.html

Lập trình Web

28/04/16

219

Th c hành

ạ ư

­

2. T o 2 file có tên nh  sau: ­

ể ặ Sau  đó,  s   d ng  require  ho c  include  đ   chèn  vào  trang

ợ ệ ư ậ ị

Giaiptbn.php Giaiptbh.php ử ụ giainghiem.php. ậ 3. Nh p vào xâu ngày tháng năm, sau đó tách xâu, ki m tra  và  thông  báo  chính  xác  ngày,  tháng,  năm  nh p  vào.  ế   thì  đ a  ra  thông  N u  giá  tr   nh p  vào  không  h p  l báo.

Lập trình Web

28/04/16

220

Th c hành

­

ạ ộ ớ ử ụ 4. T o m t file .txt sau đó s  d ng các hàm thao tác v i file

­

ọ ữ ệ ừ

ị  file và hi n th  ra màn hình ớ đ :ể ể Đ c d  li u t ộ Ghi n i dung m i vào file

Lập trình Web

28/04/16

221

̀

ƯƠ

CH

NG 5: SESSION VA  COOKIE

̀ Ớ Ơ ̣

́ Ơ ̣ Ề I THI U V  SESSION 5.1 GI ́ I THIÊU VÊ  COOKIE 5.2 GI Ử 5.3 S  DUNG SESSION V I COOKIE

Lập trình Web

28/04/16

222

5.1. GI

Ề I THI U V  SESSION

̉

̣ ơ

ệ Khái ni m session ́ư Ch ̀ La m viêc v

c năng cua session ́ i session

Lập trình Web

28/04/16

223

ệ Khái ni m session

́ ̀ ư ̉ ư ̣

c du ng đê l u tr ̀ ̣ ̉ ̣ ̉ ̣

̀ ́ ́ ̀

̣

́ ́ ̉

́ ̀ ́ ́ ́ ̣ ̉

̣

̃ ợ ̉ ́ c  hô   tr   trong  ca c  phiên  ban  php

́ ́ ̉ ̃ ̀ ượ  thông  Session la  môt biê n đ ̀ ự tin  hoăc  s   thay  đôi  vê   phiên  la m  viêc  cua  môt  ̀ ̀ ̀ ươ ư ng i  du ng  na o  đo   t   trang  na y  đê n  trang  ̀ ́ kha c trong cu ng môt Website. ̀ ̀ ươ ư Ca c biê n session ch a thông tin cua ng i du ng  ́ ́ ́ ơ va   co   ta c  dung  đô i  v i  tâ t  ca  ca c  trang  trong  ́ ̣ ư môt  ng dung. ́ ượ Ca c  sesion  đ ́ ̃ kha c nhau cu ng co  điêm kha c nhau.

Lập trình Web

28/04/16

224

́ư

̉

Ch

c năng cua session

́ ư ươ ̉ ̀ i ̃  thông tin cua ng

́ ̀ ư ̀ ̣

́ ̀ ơ ̉ ̣

́ ́ ̀ ̃ ̣ ̉

́ ̀ ́ ́ ́ ̃ ́ ̣

̣

́ ̀ ̀ ư ư ̀ ̃ ư  lâu da i thi  câ n l u no  trong

̀ ̀ ̣ ̣ ̣

́ ̀ ́ ́ ư ư

́ ư Sesion co  ch c năng l u tr ử du ng trên server cho lâ n s  dung tiê p theo. ́ Thông  tin  session  chi  mang  ti nh  châ t  tam  th i,  ̀ ̃ ươ nghi a  la   no   se   bi  mâ t  đi  khi  ng i  du ng  huy  ̀ ơ chu ng,  th i  gian  sô ng  đa   hê t  hoăc  kê t  thu c  ̀ tri nh duyêt. ́ ́ Nê u muô n l u tr CSDL. ́ Ca c sesion la m viêc bă ng ca ch tao ra môt unique  ̃ ̃   ca c  biê n  id  (UID)  cho  mô i  Browser  va   l u  tr d a trên UID na y.̀ ự

Lập trình Web

28/04/16

225

́ư

̉

Ch

c năng cua session

̀ ́ ở ́ ư ̉

̀ ́ ̃ ́ ̃ ̣ ̣

ư

ượ ư c l u tr ́ ́ ́ ̀ ̣

̣

́ ̀ ́ ơ ̉ ̣

́ ơ Khi Browser m  ra  ng v i trang Web bâ t ky  cua  ́ Website, session ID co  gia  tri la  môt da y sô  ngâ u  ́ ̃  trên phi a client. nhiên đ ́ Session  ID  co   chu  ky   sô ng  cho  đê n  khi  hê t  han  ử s  dung ́ Co  thê truyê n session ID v i URL hoăc ghi chu ng  ra Cookie

̀

́

̀

̀

ơ

ử

L u y :́ư

̣ ̣ ̉ ̉

́

́

ư

ượ ư

ư

̉ ̣

̃ ư  trên Client, ca c  ̃  trong môt tâp tin dang text trên

c l u tr

́ Th i han hê t s  dung cua session do câ u hi nh cua tri nh  chu Web server quy đinh. ̀ Session ID la  thông tin duy nhâ t l u tr ́ biê n session đ server

̣ ̣ ̣

Lập trình Web

28/04/16

226

̀

́

̣ ơ

La m viêc v

i session

ở

̣

́

̣

́

́

̣ ̉

̉ ̉

Kh i đông session ́ ̀ ́ Khai ba o va  ga n gia  tri  ́ cho biê n session ́ Lâ y  gia   tri  cua  biê n  session ́ Huy bo biê n session

Lập trình Web

28/04/16

227

ở

̣

Kh i đông session

̀ ươ ̣ ̣

́

́

̀ ́ ́ c tiên câ n kh i đông no . ở ̉ ̣

́ ́

ư

̣

̣

̀ ̀ ̀ ̣

̉ ử ở Đê s  dung session, tr ́ ́ Co  hai ca ch du ng đê kh i đông session: ̉ ử Co  thê s  dung cu  pha p: session_start(); ̀ Câ u hi nh lai trong trang php.ini nh  sau: session.auto_start = 0  ́ ̀ ̣ ươ ̉ ̉ ử Nê u  s   dung  ha m  session_start()  thi   ha m  na y  câ n phai đăt tr ̀ ́ c the 

Lập trình Web

28/04/16

228

́

́

́

̀

̣

́ Khai ba o va  ga n gia  tri cho biê n session

ư ở ̣ ̉

ư ́ ́ ử ̣ ̣ ̃ ̀   ta  s   dung  biê n ́ tri  cho  biê n  session

́ ̉ ̣

́ ́

́ ̣

Sau khi kh i đông session, đê khai ba o va  l u tr ́ gia   $_SESSION: ́ $_SESSION[‘chi sô ’] = gia  tri; ́ ́ ́ ở ươ ư  tr c L u y : tên biê n không co  dâ u $  Vi  dú ̣: ta co  đoan code trong  ư file1.php nh  sau:

Lập trình Web

28/04/16

229

́

́

́

̀

̣

́ Khai ba o va  ga n gia  tri cho biê n session

Khoi dong va dang ky session

3 session da duoc dang ky. next page

Lập trình Web

28/04/16

230

́

́

́

̣ ̉

Lâ y gia  tri cua biê n session

̀ ́ ở ư ư ̣

́ ̣

ượ ̀ ̀ ư ơ ̣ ̉ c kh i đông va  l u tr ̣ ự ̀ ươ i  du ng  truy  câp  cua  Website

̉ ̣ ̣ ̉ ̣

ượ ư ư ở ̃  thông tin, ca c  Sau khi đ ̀ session  na y  co   hiêu  l c  trên  moi  trang  php  ma   ́ ́ ng ng  v i  Browser đang m .ở Chăng  han,  đoan  ma   sau  du ng  đê  lâ y  nôi  dung  đ ̀ ̃ ́ ̃  trong ca c session ́  trang file1.php c l u tr

Lập trình Web

28/04/16

231

́

́

́

̣ ̉

Lâ y gia  tri cua biê n session

Lay gia tri bien session

Doc gia tri luu tru trong cac bien session o

file1.php

"; echo "Usename:". $_SESSION['user']."
"; echo "Email:". $_SESSION['email']."
"; echo "Name:". $_SESSION['name'].""; ?>

Lập trình Web

28/04/16

232

Session ID

ữ ấ ượ c

ử ụ  session ID.

ể ư ữ ể ư Php s  d ng cookie  đ  l u tr  thông tin l y  đ ừ t Ngoài ra, cũng có th  l u tr  session ID vào URL

Ví d : ụ

Lập trình Web

28/04/16

233

Session ID

Lập trình Web

28/04/16

234

̉ ̉

́ Huy bo biê n session

́ ́ ́ ợ ̣

́ ̀ ́ ử ́ ̉ ̉ ̉ ̣

̣

̀ ̀ ́ ́ ̉ ̉ ̉

́ ́ ́ ̉ ̉ ̉

̣ ự ̀ ̀ ̀ ̣

̉ ̉

̀ ́ ̀ ́ ̣ ư ̃ ư ư ̀ ươ ng  h p  không  muô n  s   dung  ca c  biê n  Tr session,  ta  co   thê  huy  bo  chu ng  bă ng  ca ch  goi  ha m session_unset() hoăc session_destroy(). ̀ Ha m  session_unset()  du ng  đê  huy  bo  ca c  biê n  session  đang  co   hiêu  l c.  Nê u  chi  muô n  huy  bo  ́ ́ ́ môt  biê n  session  na o  đo   ta  câ n  truyê n  tham  sô   cho ha m̀ ̀ Ha m  session_destroy()  du ng  đê  kê t  thu c  tâ t  ca  ca c biê n session va  d  liêu l u tr ́ ́ ́ ́ ̃  trong đo .

Lập trình Web

28/04/16

235

̉ ̉

́ Huy bo biê n session

".

$_SESSION['user']."
"; session_unset($_SESSION['user']); echo "Email:".

$_SESSION['email']."
";

echo "Name:". $_SESSION['name'].""; ?>

Lập trình Web

28/04/16

236

5.2. GI

Ề I THI U V  COOKIE

̀

̀ ̀ Cookie la  gi ? ́ ̣ ơ La m viêc v

i Cookie

Lập trình Web

28/04/16

237

̀

̀

Cookie la  gi ?

́ ̀ ượ ̉ ̣ ̀ ươ ng đ ̀ ử ươ i s c du ng đê xa c đinh ng

ư ư ư ư c xem nh  session nh ng l u tr ̃  thông tin

́

̀ ́ ́ ́ ̀ ượ ̀ ̀ ơ ̣ ̉ ̣ ̣

̀ ̀ ́ ơ ̣

̃ ử Cookie th dung̣ ́ No  đ trên tri nh kha ch (client) Tai th i điêm na o đo , môt ma y ti nh yêu câ u môt  ́ ̀ trang  web  cu ng  v i  tri nh  duyêt  browser  thi   no   cu ng g i Cookie đi kèm.

Lập trình Web

28/04/16

238

̀

́

̣ ơ

La m viêc v

i cookie

̣

́ ́

̣ ̉

́ ́ ́

Ga n gia  tri cho cookie Lâ y gia  tri cua cookie Xo a cookie

Lập trình Web

28/04/16

239

́

́

̣

Ga n gia  tri cho cookie

́ ̀ ử ̉ ̣ ̣

́ ́

̀ ̀ ̣ ươ ̉ Đê ga n gia  tri cho cookie ta s  dung ha m setcookie  ́ theo cu  pha p: setcookie(name, [value, expire, path, domain]); Ha m setcookie câ n đăt tr ́ c the 

̣ ́ Vi  du:

$expire);

?>

Lập trình Web

28/04/16

240

́

́

̣ ̉

Lâ y gia  tri cua cookie

́ ́ ́ ử ̉ ̣ ̉ ̣

́

́ ượ ư ̉ ̣ ̉ c l u trong cookie

trên ta viê t́

Đê  lâ y  gia   tri  cua  cookie  ta  s   dung  biê n  ́ $_COOKIE theo cu  pha p: $_COOKIE[‘tenbien’]; Chăng han, đê lâ y thông tin đ ở Vi du ve cookie

Lay gia tri cua cookie!

Lập trình Web

28/04/16

241

́

Xo a cookie

́ ́ ́ ̀ ơ ̉ ̉ ̣

́ ́ ̀ ́ ư

̣

?>

̀ Đê xo a cookie, câ n chă c chă n th i điêm co  hiêu  ự l c la  trong qua  kh ́ Vi  du:

Lập trình Web

28/04/16

242

̀

́

̣ ơ

La m viêc v

i cookie

ợ ợ

̀ ươ ̣ ̉ ̉

ư

ượ ử ̣ ̣ ̉ ̀ c  s   dung  la   chuyên  thông

̃ ̀ ươ Trong  tr ng  h p  Browser  không  hô   tr   cookie,  ́ ́ ư ̉ ử câ n  phai  s   dung  ph ng  th c  kha c  đê  chuyên  ̀ ́ ́ ̀ ư thông tin t ng   trang na y sang trang kha c trong  dung̣ ́ ư ươ ng  th c  đ Môt  ph tin thông qua form

Lập trình Web

28/04/16

243

̀

́

̣ ơ

La m viêc v

i cookie

́

́

ư

Vi  du: ta co  trang index.html nh  sau:

Xay dung form nhap thong tin!

Name:

Age:

̣

Lập trình Web

28/04/16

244

̀

́

̣ ơ

La m viêc v

i cookie

Welcome
You are years old.

́ ư ̣ Trang welcome.php co  nôi dung nh  sau:

Lập trình Web

28/04/16

245

̀

́

̣ ơ

La m viêc v

i cookie

Welcome
You are years old.

́ ư ̣ Trang welcome.php co  nôi dung nh  sau:

Lập trình Web

28/04/16

246

́

Ử

Ơ

̣

5.3. S  DUNG SESSION V I COOKIE

́

̀

̣

Ga n cookie bă ng session ̉ ư ử S   dung  cookie  đê  l u  ̃ư tr

session ID

Lập trình Web

28/04/16

247

́

̀

Ga n cookie bă ng session

ộ ố ấ Đ i v i cookie có m t s  v n đ  sau đây:

 M t vài webrowser không h  tr  cookie và m t s   ộ ố ủ i dùng không có các cookie trên browser c a

ề ỗ ợ

ứ ể ả

ử ụ ế ẽ ả t

ẽ ư ữ

ữ ố ớ ộ ườ ng 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 ữ ậ 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

Lập trình Web

28/04/16

248

́

̀

Ga n cookie bă ng session

ế ậ

ể Đ  thi t l p session cookie ta dùng hàm: void  session_set_cookie_params (int lifetime [, string path  [, string domain]])      ::Welcome to</p> <p>PHP

Lập trình Web

28/04/16

249

   

Session­Cookie

   

́

̀

Ga n cookie bă ng session

ộ ượ ế ậ c thi t l p

ủ ử ụ

ế ầ

ẽ ả ề ộ ứ ư

ể Đ  xem n i dung c a các cookie đã đ ở 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  ả ử ủ  c a m ng ch a các thông tin nh : lifetime, path,  t domain,.. .

Lập trình Web

28/04/16

250

̃

̉ ư

ử

ư

̣

S  dung cookie đê l u tr

session ID

ặ ị ộ c, m t cookie s  đ

 PHP s  s  d ng các cookie m c đ nh cùng v i  ớ ẽ ượ ể ượ c  t l p ch a SessionID.

 Cách khác: đ a sessionID vào trong th  link.  ứ

ế ậ ẽ ử ụ ế session. N u có th  đ thi

ằ SessionID đ

 Thêm vào cu i th  link h ng SID đ  dùng nó nh   ư

ể ẻ

ẻ c ch a trong h ng SID.  ằ ụ ươ ứ ư ượ ố ứ là ph ng th c GET. Ví d  sau:

Lập trình Web

28/04/16

251

̃

̉ ư

ử

ư

̣

S  dung cookie đê l u tr

session ID

Khoi dong va dang ky session

next

page

Lập trình Web

28/04/16

252

̃

̉ ư

ử

ư

̣

S  dung cookie đê l u tr

session ID

Lay gia tri bien</p> <p>session

Lập trình Web

28/04/16

253

$c_value) print "$c_name = $c_value
"; list($a,$b) = each($_GET); echo "SessionID:".$a; ?>

̀

ƯƠ

̉

CH

NG 6: TÔNG QUAN VÊ  MySQL

̀ ́ Ơ ̣

̃ ̀ ̀ Ơ Ở Ư ƯƠ ̣ ̣ I

̃ Ư ̉ ̣

̣

I THIÊU VÊ  MySQL 6.1 GI 6.2  TAO  C   S   D   LIÊU  VA   NG DU NG̀ ́ 6.3 CA C KIÊU D  LIÊU TRONG MySQL ́ 6.4 CA C CÂU LÊNH SQL ̀ ́ 6.5 CA C HA M TRONG MySQL

Lập trình Web

28/04/16

254

́

̀

Ơ

̣

6.1 GI

I THIÊU VÊ  MySQL

̀

̀

́

̣ ̉ ̉

̣ ̉

̀

́

̀

̣

MySQL la  gi ? Ca c đăc điêm cua MySQL ́ Lich s  pha t triên Download, ca i đăt và câ u hi nh

Lập trình Web

28/04/16

255

̀

̀

MySQL la  gi ?

ỗ ợ ở

ị ả M t h  qu n tr  CSDL ị ả M t h  qu n tr  CSDL quan h ể Đ c phát tri n, phân ph i và h  tr  b i MySQL AB.

MySQL là: ộ ệ ộ ệ ượ

̀ ́ ̀ ̉ ̣

̀ ́ ử ̣ ̉

ử ̉ ươ ữ ng Table cua CSDL và x  lý d

́ ̣ ơ Đê la m viêc v i MySQL câ n đăng ký kê t nô i, tao  ̀ ̀ CSDL, quan lý ng i du ng, phân quyê n s  dung,  ́ ượ ́ ́ thiê t kê  đô i t li u.ệ

́ ́ ́ ̉ ̉

̀ ̣ ̣ ̣ ̣ ̣ ̉ ử Đê quan ly  và thao ta c trên CSDL ta co  thê s   dung giao diên đô  hoa hoăc dang Command line.

Lập trình Web

28/04/16

256

̣ ̉ ̉

Đăc điêm cua MySQL

̃ ́ ́ ệ ̉ ̣

ư MySQL  cu ng  giô ng  nh   ca c  h   quan  tri  CSDL:  Access, SQL Server, PostgreSQL, Oracle, …

ở ể ả ễ i mi n phí

ồ Ph n m m mã ngu n m  do đó có th  t ừ t ề ầ ủ  trang ch .

ề ả

ệ ề ệ ề ả

Nó  có  nhi u  phiên  b n  cho  các  h   đi u  hành  khác  nhau: phiên b n Win32 cho các h  đi u hành dòng  Windows, Linux, Mac OS X, Unix, Solaris…

Lập trình Web

28/04/16

257

̣ ̉ ̉

Đăc điêm cua MySQL

ộ ị

ổ ạ ộ

ấ ớ

ạ ễ ơ ở ữ ệ ố MySQL là c  s  d  li u t c đ  cao,  n đ nh và d   ề ể ả ử ụ s  d ng, có tính kh  chuy n, ho t đ ng trên nhi u  ệ ề ộ ệ ố h   đi u  hành cung  c p m t h   th ng  l n  các hàm  ấ ệ ti n ích r t m nh.

ộ ậ ấ

ớ ố ợ ả ụ ứ ậ

V i  t c  đ   và  tính  b o  m t  cao,  MySQL  r t  thích  h p  cho  các  ng  d ng  có  truy  c p  CSDL  trên  internet.

ạ ộ ệ ố

ặ MySQL server ho t đ ng trong các h  th ng nhúng  ho c client/server.

Lập trình Web

28/04/16

258

̣ ̉ ̉

Đăc điêm cua MySQL

Lập trình Web

28/04/16

259

́

ử

̣ ̉

Lich s  pha t triên

Lập trình Web

28/04/16

260

́

ử

̣ ̉

Lich s  pha t triên

Lập trình Web

28/04/16

261

́

ử

̣ ̉

Lich s  pha t triên

Lập trình Web

28/04/16

262

́

̀

̀

̣

Download, ca i đăt và câ u hi nh

ạ ị

ỉ i đ a ch :

ướ

ế

ầ Có th  download mi n phí ph n m m MySQL t http://dev.mysql.com/downloads Sau đó ti n hành cài đ t theo các b

c:

ướ

B c 1: Nh n next

Lập trình Web

28/04/16

263

̀

́

̀

̣

Download, ca i đăt và câ u hi nh

ướ

B c 2: Nh n next

Lập trình Web

28/04/16

264

̀

́

̀

̣

Download, ca i đăt và câ u hi nh

ướ ấ B c 3: Nh n next

Lập trình Web

28/04/16

265

́

̀

̀

̣

Download, ca i đăt và câ u hi nh

ướ ấ B c 4: Nh n next

Lập trình Web

28/04/16

266

́

̀

̀

̣

Download, ca i đăt và câ u hi nh

ướ ấ ấ B c 5: Nh n install sau đó nh n next

Lập trình Web

28/04/16

267

̀

́

̀

̣

Download, ca i đăt và câ u hi nh

ướ B c 6: Finish

Lập trình Web

28/04/16

268

́

̀

̀

̣

Download, ca i đăt và câ u hi nh

ượ c tích

ể ử ụ Ngoài ra ta  có  th  s   d ng  phpmyadmin  đ ợ h p trong XAMMP

Lập trình Web

28/04/16

269

̀

̀

ƯƠ

̣

7.2 TAO CSDL VA  NG

̀ I DU NG

́

̣

̀

́ ́

̉

̀ươ

i

̀

ươ

̉

i

̀ Kê t nô i va  tao CSDL ̀ ươ i du ng Quan ly  ng ̀ ́ Câ p  quyê n  cho  ng du ng̀ ̀ ́ Xo a  quyê n  cua  ng du ng̀

Lập trình Web

28/04/16

270

́

́

̣

Kê t nô i và tao CSDL

́

ơ ở ữ

̉ ự

̉ ̣ ̣

́ ́

́ Đê kê t nô i c  s  d  liêu ta co  thê th c hiên  theo hai ca ch:

̣

́ ́ ́ ́ ̀ ̀ ̣ ̣ ̣

̀ Kê t nô i và tao CSDL bă ng Command line Kê t  nô i  và  tao  CSDL  bă ng  giao  diên  đô   hoa:  ặ MySQL Administrator ho c phpmyadmin

Lập trình Web

28/04/16

271

̀

ươ

̉

Quan lý ng

̀ i du ng

ậ ể ể ử ụ

ả ườ

Đ  đăng nh p vào MySQL ta có th  s  d ng user là  root và pass là r ng ỗ ể ạ Ngoài  tài  kho n  này  ta  có  th   t o  thêm  các  tài  ớ ả i  dùng  v i  các  users  và  pass  khác  kho n  cho  ng nhau.

Lập trình Web

28/04/16

272

́

̀

ươ

̀ Câ p quyê n cho ng

̀ i du ng

ớ ề ệ

ườ ể i dùng ta cũng có th

ạ ộ ố ế ớ ấ ị ề ọ ể ự V i quy n root ta có th  th c hi n m i thao tác trên  CSDL: select, update, insert, delete, … ề Tuy nhiên, khi t o quy n ng ạ h n ch  b t m t s  quy n nh t đ nh nào đó

Lập trình Web

28/04/16

273

́

̀

̀

ươ

ặ Xo a quyê n ho c tài kho n ng

̀ i du ng

ấ ườ ể i  dùng  ta  có  th   thêm

ặ ớ ể

ả ượ ạ ả ề Sau  khi  c p  quy n  cho  ng ề ạ ỏ ộ ố ho c lo i b  m t s  quy n nào đó. ậ ệ V i vi c truy c p vào tài kho n root ta có th  xóa  ườ các tài kho n ng i dùng đã đ c t o ra.

Lập trình Web

28/04/16

274

̃

́

Ư

̉ ̣

7.3 CA C KIÊU D  LIÊU TRONG MySQL

̉

̉

ữ ̣ ữ ̣ ữ ̣

̉

D  liêu kiêu numeric D  liêu kiêu date and time D  liêu kiêu string

Lập trình Web

28/04/16

275

ữ ̣

̉

D  liêu kiêu numeric

ư

ồ ể ể

ấ ừ ừ

ấ  ­128 ­> 127 ế  0 đ n 16.777.215 ho c

ặ ừ

ư

0  đ n  4.294.967.295  ho c  t

D  li u ki u numeric g m các ki u sau: ố

ữ ệ Tinnyint: L u các s  nguyên không d u (unsigned) t ố 255 ho c các s  nguyên có d u t ư Mediumint: L u các s  nguyên t ế ừ  ­8.388.608 đ n 8.388.607 t ế ừ ố Int:  L u  các  s   nguyên  t ế ­2.147.483.648 đ n 2.147.483.647 Bigint Float Doube Decimal/real

Lập trình Web

28/04/16

276

̃ư

̣ ̉

D  liêu kiêu date and time

ư

ị ừ

ư

ữ ạ

ờ ủ ộ ằ

ự ộ ộ

ộ ộ

ế

ấ  2 đ n 14 (yy đ n yyyy­mm­dd hh:mm:ss)

ữ ờ ị

ạ ắ ầ ừ

ồ ể ể D  li u ki u date and time g m các ki u sau:

đ nh d ng hh:mm:ss.  1970

ữ ệ ữ Date: L u tr  ngày d ng yyy­mm­dd. Cho phép giá tr  t ế 1000­01­01 đ n 9999­12­31 Datetime: L u tr  d ng yyyy­mm­dd hh:mm:ss Timestamp:  T   đ ng  ghi  nh n  th i  gian  thay  đ i  g n  nh t. Tùy thu c vào đ  r ng c a c t n m trong kho ng  ừ ế t ể ư Time: Dùng đ  l u tr  gi ể ư Year: Dùng đ  l u năm b t đ u t

Lập trình Web

28/04/16

277

̃ư

̣ ̉

D  liêu kiêu string

i đa 255 ký t

ự ể

ng t

ự ị ẽ

ố  ki u char có chi u dài t i đa 255  ổ ề , song có đi m khác là có chi u dài thay đ i, các giá  ự ắ  tr ng. ị ả

văn b n nh  phân. Có chi u dài t

i

ể ượ

ỉ ụ . Các ch  m c có th  đ

c

đ u c a c t text ề

D  li u ki u string g m các ki u sau: ố ể ề ể , đây là ki u có chi u dài

ữ ệ Char: Chi u dài t ố ị c  đ nh. ươ Varchar: Cũng t ể ký t ị ố tr  s  không b  n i thêm ký t ể Tinytext: là ki u ký t đa 255. Text: có chi u dài 65.535 ký t ự ầ ủ ộ ạ t o trên 255 ký t Mediumtext: có chi u dài 16.777.215 ề Longtext: có chi u dài >4 t  ký t Enum, Set, …

Lập trình Web

28/04/16

278

́

̣

6.4 CA C CÂU LÊNH SQL

̀

ơ ả

̀ ệ

SQL la  gi ? Các câu l nh SQL c  b n

Lập trình Web

28/04/16

279

́

̣

7.4 CA C CÂU LÊNH SQL

̀ ́ ̃ ư ̉

̀ ̣ ̀ SQL la  ngôn ng  du ng đê truy vâ n CSDL Đ c chia la m 4 loai:

̣ ̣ Ca c câu lênh SQL thông dung:

̣

̣

̣

̣

̣ ượ DDL (Data Definition Language) DML (Data Manipulationn Language) DCL (Data Control Language) TCL (Transaction Control Language) ́ Câu lênh Select Câu lênh Insert Câu lênh Update Câu lênh Delete Câu lênh Join

Lập trình Web

28/04/16

280

̣

Câu lênh SELECT

́ ̃ ̀ ̣ ư ̉ ̣ ̉

̀ ́ ư ̀ ̃ ̀ ̉ ̉ ̣ ̣

̀ ̉ ̣

́ ́ ̣ ̀  môt hay nhiê u bang  Du ng đê truy vâ n d  liêu t ́ ̀ kha c  nhau  va   tra  vê   kê t  qua  la   môt tâp  mâ u tin  ́ ̀ thoa ma n điê u kiên na o đo Cu  pha p:

́ ́ ̉

̀ ́ ̣ ̣ ̃ ́ SELECT  ́ [FROM ] ̀ [WHERE ]

́ ư ̣ ̉ th c trong

[GROUP  BY  ]

́ ̣ ̉ [HAVING  <đk  bă t  buôc  cua  GROUP

BY>]

́ ̣

[ORDER BY ] [LIMIT FromNumber | ToNumber]

Lập trình Web

28/04/16

281

̣

Câu lênh SELECT

́ ́ ̣ ̣ ̉

́ ư ̣ ̉ ̉ ́ ̃ a ca c côt cua bang

́ ́ ̉ ̣ ̉ ̉

́ ́ ́ ̀ ử ̣ ̉ ̉

́ ̀ ở ợ ̣ ̉

̀ ̉ ̉ ́   ca c  bang  ́ ươ c theo

́ ́

̉ ̣ ́ Trong  đo ,  danh  sa ch  ca c  côt:  Tên  ca c  côt,  biêu  ́ ́ ợ ư th c kê t h p gi ́ ̀ ử ợ ươ ng h p truy vâ n tâ t ca ca c côt cua bang ta s   Tr ́  * thay vi  chi ra danh sa ch tâ t ca ca c  dung toa n t côṭ ́ ̀ ươ ng  h p,  co   ca c  côt  cu ng  tên  Tr ̀ ́ kha c nhau thi  ta câ n chi ra tên bang đi tr cu  pha p: Tên_bang.Tên_côt

Lập trình Web

28/04/16

282

̣

Câu lênh SELECT

̀ ̣ ̣ ̉

̀ ́ ư ̣ ̣ ̉

̀ ́ ̣ ̉ ̉ ̣ ́ ơ Câu  lênh  SELECT  v i  mênh  đê   FROM:  du ng  đê  ̃ ́ ̀ ́ ư ̣ ư   ca c  côt  hoăc  biêu  th c  cho  truy  vâ n  d   liêu  t ̀ ượ ư  bang đ c chi ra sau mênh đê  FROM côt đo  t

̣ ́ Vi  du:

SELECT * FROM Sinhvien; SLECT Masv, HoTen FROM Sinhvien; SELECT * FROM Sinhvien LIMIT 0, 10;

Lập trình Web

28/04/16

283

̣

Câu lênh SELECT

̀ ̣ ̣ ̉

̀ ́ ̣ ̣ ̉

ư ̀ ̣ ̉ ̉ ̣

̀ ̀ ́ ̉ ̣ ̉

̣ ́ ơ Câu lênh SELECT v i mênh đê  WHERE: du ng đê  ̃ ́ ̀ ́ ̣ ư ư   ca c  côt  hoăc  biêu  th c  cho  truy  vâ n  d   liêu  t ̀ ́ ượ ư c  chi  ra  sau  mênh  đê   FROM    bang  đ côt  đo   t ̀ ̃ ượ c  chi  ra  sau  va   thoa  ma n  điê u  kiên  na o  đo   đ ̀ mênh đê  WHERE

̣ ́ Vi  du:

́ ́ ́ ́ ư ̣ ̉ ̣ L u  y : ca c  phe p  toa n  đ

́ ́ ́ ̣ ̣

̀ ̀ SELECT * FROM Sinhvien WHERE conditions; SLECT  Masv,  HoTen  FROM  Sinhvien  WHERE  conditions; ́ ́ ượ ử c  s   dung  đê  thiê t  lâp  ca c  ̀ điê u kiên sau WHERE la  ca c phe p toa n Quan hê  va  Logic

Lập trình Web

28/04/16

284

̣

Câu lênh SELECT

̣

́ ́ ́ ́

́ Ca c phe p toa n quan hê: >, >=, <, <=, =, !=, <> ́ Ca c phe p toa n Logic: and, or, not, not in, between,  like, not like, in

̣

́ Vi  du:  SELECT * FROM Sinhvien WHERE Tongdiem > 2.0 SELECT * FROM Sinhvien WHERE Hoten like ‘%Hoa’;

Lập trình Web

28/04/16

285

̣

Câu lênh SELECT

̀ ̣ ̣

̀ ́ ́ ̃ ̀ ượ ư ̉ ̣ ̉ ̉

̀ ́ ̀ ̣ ̉

̣ ̀ ́ ơ Câu lênh SELECT v i mênh đê  ORDER BY: du ng  ́ c să p  đê truy vâ n d  liêu va  kê t qua tra vê  đ xê p  tăng  dâ n  (ASC)  hoăc  giam  dâ n  (DESC)  trên  ́ ̀ côt na o đo .

̣ ́ Vi  du:

̀ ́ ̀ ́ ợ ̣ ̣

́ ở ̉ SELECT  *  FROM  Sinhvien  ORDER  BY  Tongdiem  DESC; SELECT  *  FROM  Sinhvien  ORDER  BY  Hoten  ASC; ́ ̀ ươ ng  h p  să p  xê p  theo  nhiê u  côt  thi   ca c  côt  Tr ́ ượ c phân ca ch nhau b i dâ u phây (,) đ

Lập trình Web

28/04/16

286

̣

Câu lênh SELECT

́ ̀ ̣ ̣

̀ ́ ượ ̃ ư ̉ ̣ ̉ ̉

̀ ̣ ̣ ̣ ̀ ơ Câu lênh SELECT v i mênh đê  GROUP BY: du ng  ́ ́ ̀ c nho m  đê truy vâ n d  liêu va  kê t qua tra vê  đ ́ lai theo môt côt na o đo .

̣ ́ Vi  du:

count(Tongdiem)  FROM  SELECT  Tongdiem,  Sinhvien  GROUP  BY  Tongdiem  ORDER  BY  Tongdiem;

Lập trình Web

28/04/16

287

̣

Câu lênh SELECT

̀ ử ́ ơ ̣ ̣ ̣

́ ̀ ̉ ̉ ̣

Câu  lênh  SELECT  v i  mênh  đê   AS:  s   dung  khi  ̀ câ n  phai  thay  đôi  tên  côt  na o  đo   trong  câu  truy  vâ n.́

̣ ́ Vi  du:

SELECT  Tongdiem,  count(Tongdiem)  AS  Sosv  FROM Sinhvien GROUP BY Tongdiem ORDER BY  Tongdiem;

Lập trình Web

28/04/16

288

̣

Câu lênh SELECT

̀ ̣ ̣

́ ơ ́ ́ ̀ ̀ ư ̣ ̣

́ ̉ ơ i han sô  mâ u tin câ n truy vâ n t ́ ̀ ́ ́ ́ ư ̣ Câu  lênh  SELECT  v i  mênh  đê   LIMIT  N,  M:  ̃  vi  du ng đê gi ́ ư tri  th  N đê n vi tri  th  M.

̣ ́ Vi  du:

SELECT * FROM Sinhvien LIMIT 0, 10; SELECT  *  FROM  Sinhvien  ORDER  BY  Tongdiem  DESC LIMIT 0, 10;

Lập trình Web

28/04/16

289

̣

Câu lênh SELECT

́ ̀ ̣ ̣

̀ ́ ượ ̃ ư ̉ ̣ ̉ ̉

̀ ̣ ̣ ̣ ̀ ơ Câu lênh SELECT v i mênh đê  DISTINCT: du ng  ́ ́ ̀ c nho m  đê truy vâ n d  liêu va  kê t qua tra vê  đ ́ lai theo môt côt na o đo .

̣ ́ Vi  du:

count(Tongdiem)  FROM  SELECT  Tongdiem,  Sinhvien  GROUP  BY  Tongdiem  ORDER  BY  Tongdiem;

Lập trình Web

28/04/16

290

̣

Câu lênh INSERT

̃ ̀ ̀ ử ượ ̣ ̉

̀ ́ ̃ ư ̃ ư ̣ ̉ ̣

́ ̀ ̀ ́ ̃ ư ̉ ̣ ̣

̉ ̣

́ ̀ ượ c phe p Insert hay không

́ ư ̣ ̉ Đ c  s   dung  khi  câ n  thêm  mâ u  tin  va o  bang  trong CSDL MySQL. ́ Khi  thêm  d   liêu,  câ n  chu   y   đê n  kiêu  d   liêu  cua ca c côt mi nh câ n thêm d  liêu. ́ ̀ ́ Câ n  quan  tâm  đê n  quyê n  cua  User  đăng  nhâp  co   đ Khi Insert d  liêu va o bang co  3 tr ̀ ợ ươ ng h p:

̣ ̣ ̉

ươ

̣ ̣ ̉ ̀ ̃ ́  gia  tri cu thê ́ ̀ ̀ ̣ ư  môt hoăc nhiê u bang kha c

̀ ư Insert t ́ ́ Lâ y gia  tri t ̀ Bao gô m ca hai tr

̀ ợ ng h p

̉

Lập trình Web

28/04/16

291

̣

Câu lênh INSERT

́ ̀ ́ ̣ ̉ ̣ ̣ ̉ Vi  du: Insert va o bang t ̀ ư  gia  tri cu thê.

̣

́ ư ̉ ̣ ̉ ̉

INSERT  INTO  Sinhvien  (Masv,  Hoten,  Tongdiem)  VALUES (‘0073’, ‘Lê Anh Ngoc’, 2.37); ́ ̀ ̀  gia  tri cua bang kha c Insert va o bang t INSERT  INTO  Sinhvien  (Masv,  Hoten,  Tongdiem)  SELECT Mahs, Hoten, Tongdiem FROM Hocsinh;

́ ư ̉ ̣ ̣ ̉ ̉ ̀ Insert va o bang t

́ ́ ́ ̉ ̣

́ ́ ̣ ̣

̉ ̀  gia  tri cu thê, bang kha c: INSERT  INTO    []  ́ ́ SELECT  [danh  sa ch  ca c  côt],  danh  sa ch  gia   tri  FROM  WHERE  …

Lập trình Web

28/04/16

292

̣

Câu lênh UPDATE

̃ ̃ ̀ ̣ ư ̉ ̣ ̣ ̣ ̣ ̉

̀ ́ ́ ̣ ̣ ̣ ̣ ̉ ̉

́ ́ ̣ ̣ ̣ ̣

́ ́ ̣ ư ̣ ̣ ̉

̉ ̣

̉

́ ưở ư ̉ ̉ ̉

̀ ng đê n nhiê u bang nh ng  ̣ ự ̣ ̣ ̣ ̉ ̉ Du ng đê câp nhât lai d  liêu đa  tô n tai trong bang. Nê u  câp  nhât  gia   tri  cu  thê:  UPDATE    SET    =  ,  [  =  ]  [WHERE ] ̀   bang  kha c:  UPDATE    SET  = … ́ UPDATE co  thê anh h ́ ́ ́ câp nhât gia  tri chi co  hiêu l c trên bang đo .

Lập trình Web

28/04/16

293

̣

Câu lênh UPDATE

̣

́ Vi  du:  

UPDATE Sinhvien SET Hoten=‘Le Thi B’ WHERE  Masv = ‘003’; UPDATE  Sinhvien  SET  Hoten=  (SELECT  Hoten  FROM Hocsinh WHERE Mahs = Sinhvien.Masv)

Lập trình Web

28/04/16

294

̣

Câu lênh DELETE

̀ ̉ ̉ ̉

̀ ́ ượ ́ ̉ ̣

̀ ̀ ́ ̀ ̃ ở ̀ ̀ ̣ ̣ ̣

̉

́ ́ ́ ̀ ̉ ̣

́ ́ ̀ ̣ ̣ ̣ ̉ ̉ ̉ ̣

̣

́ ́ ́ ư ̣ ̣ ̣

́ ̀ ́ ̀ ̃ ́ ́ ơ ̣ ̣ ̣ ̣ ̣

́ ́ ́ ̃ ̣ ̣ ̣ ̃ Du ng  đê  xo a  mâ u  tin  trong  bang  đ c  chi  ra  b i  tên  bang  va   mênh  đê   WHERE  (nê u  co )  nhă m  ́ ́ xa c đinh mâ u tin câ n xo a theo môt điê u kiên na o  đo .́ DELETE FROM  WHERE  ̃ ̀ ́ ư a ca c côt va   Conditions: co  thê la  phe p toa n gi ̀ ́ gia  tri hoăc gia  tri la  kê t qua tra vê  cua môt câu  lênh SELECT kha ć L u y : không co  kha i niêm xo a gia  tri trong môt  côt,  vi   xo a  gia   tri  môt  côt  đô ng  nghi a  v i  câp  ̀ nhât côt đo  bă ng gia  tri rô ng

Lập trình Web

28/04/16

295

̣

Câu lênh DELETE

̣

́ Vi  du:  

̀ ư ̣ ̣ ̉

́ ̀ ượ ự ̣ ̣ ̣ ̀ ng h p co  ra ng buôc vê  quan hê cua  ̀ c th c hiên

ươ ̉ ̉ DELETE FROM Sinhvien WHERE Masv = ‘001’; ́ ́ ợ ươ L u y : trong tr ̃ ̀ ư d  liêu, thi  viêc xo a mâ u tin câ n đ ở  bang con tr ̃ ́ c bang cha.

Lập trình Web

28/04/16

296

̣

Câu lênh JOIN

̃ ̀ ợ ư ̉ ̣ ̉

́ ̀ ̀ ́ ̣ ̣ ̉ ̣

̀ ̣ ̉

̣ ̉

̀ ́ Du ng đê kê t h p d  liêu trên hai hay nhiê u bang  ́ ̣ ơ lai v i nhau ̀ Câ n xa c đinh côt na o trong bang na y co  quan hê  ́ ơ v i côt na o trong bang kia ́ Ca c dang cua JOIN Inner Join Left Join Right Join

Lập trình Web

28/04/16

297

̣

Câu lênh JOIN

̀ ̃ ́ ư ̉ ̉ ̣

́ ́ ̣ ̉

́ ̀ ợ ̉ ̣

́ ợ Inner Join: Du ng đê kê t h p ca c bang d  liêu ́ Cu   pha p:  SELECT  [ca c  côt]  FROM    INNER  JOIN    ON  <điê u  kiên  kê t  h p>  WHERE …. ODER BY …

́ ̣

́ ̀ ̀ ́ ̀ ư ̉ ̉ ̉ ̣ ̉ ́ L u  y :  nê u  câ n  tra  vê   kê t  qua  la   tâ t  ca  ca c  côt  cua

́ ́ ́ ́ ́ ̉ ̣ Vi   du:  SELECT  Hoten,  Tongdiem  FROM  Sinhvien  INNER  JOIN  Hocsinh  ON  Sinhvien.Masv  =  Hocsinh.Masv WHERE Tongdiem >2.0 ORDER BY  Tongdiem ASC ́ ca c bang tham gia Inner Join ta a p dung cu  pha p:

Lập trình Web

28/04/16

298

̣

Câu lênh JOIN

́ ̀ ̀ ̀ ́ ư ̉ ̉ ̉ ̣ ̉ ́ L u  y :  nê u  câ n  tra  vê   kê t  qua  la   tâ t  ca  ca c  côt  cua

́ ́ ́ ́ ́ ̉ ̣ ́ ca c bang tham gia Inner Join ta a p dung cu  pha p:

̉ ̉ ̉ ̉ SELECT  bang  1.*,  bang  2.*  [,  bang  n.*]  FROM  bang  1

̀ ̉ ̣

̀ ́ ́ ́ ́ ́ ́ ̉ ̣

̀ ̀ ̣ ̣ ̉

̀ ́ ươ ợ ̣ ̣ ̉ ̉

̀ ̀ ́ ̀ ̃ ́ ̣ ̉ ̣ ̣

̣ INNER JOIN bang 2 ON <điê u kiên> … nê u trong ca c bang câ n kê t nô i co  tên côt giô ng  ̃ nhau  thi   câu  lênh  SQL  dang  SELECT  câ n  chi  ro   ̀ côt thuôc bang na o. Tr ng h p ca hai cu ng lâ y  ư d  liêu ra thi  câ n chuyên a nh xa tên kha c cho côt  thông qua mênh đê  AS̀

Lập trình Web

28/04/16

299

̣

Câu lênh JOIN

́ ́ ̃ ư ̉ ̉ ̣

́ ̀ ̀ ̃ ư ̉ ̉ ̉ ̉

̃ ở ̉

̉ ̣

́ ́ ́ ̣ ̉

́ ̀ ́ ợ ̉ ̉ ̣

ợ Left Join: Du ng  đê kê t h p ca c bang d  liêu khi  ̃ ̀ ́ muô n tra vê  kê t qua la  nh ng mâ u tin cua bang  ́ ̃ ́ ̀ ́ ̣ ư ư ơ bên  tra i  tô n  tai  ng  v i  nh ng  mâ u  tin    bang  ̀ bên phai không tô n tai. Cu   pha p:  SELECT  [ca c  côt]  FROM    LEFT JOIN  ON <điê u kiên kê t h p>  WHERE …. ODER BY …

Lập trình Web

28/04/16

300

̣

Câu lênh JOIN

̀ ́ ́ ̃ ư ợ ̉ ̉ ̣

̀ ́ ́ ̀ ̃ ̃ ư ̉ ̉ ̉ ̉

̀ ̀ ́ ̀ ̉ ̣ ̉ ̣

́ ́ ̣ ̉

́ ̀ ́ ợ ̉ ̉ ̣

Right Join: Du ng đê kê t h p ca c bang d  liêu khi  muô n tra vê  kê t qua la  nh ng mâ u tin cua bang  bên phai tô n tai du  bang bên tra i không tô n tai ́ Cu   pha p:  SELECT  [ca c  côt]  FROM    RIGHT JOIN  ON <điê u kiên kê t h p>  WHERE …. ODER BY …

Lập trình Web

28/04/16

301

́

̀

7.5 CA C HA M TRONG MySQL

́

́

̀

̉

̀

̀

́ ly

̀

́ ly

́

̀

̀

̣

Ca c  ha m  trong  pha t  biêu Group by ́ ử Ca c  ha m  vê   x   chuô ĩ ̀ ́ ử Ca c  ha m  vê   x   ̀ơ th i gian ́ Ca c ha m vê  sô  hoc

Lập trình Web

28/04/16

302

́

̀

́

̉

Ca c ha m trong pha t biêu Group by

̀ ́ ̀ ̉ ̣ ̉ ̣

̀ ́ ̉ ̣ ̉ ̉ ̣

́ ̀ ́ ̣ ơ ̉ ̉ ̣

́ ̀ ́ ̉ ̉ ̣ ̉ ̣

Ha m  AVG:  tra  vê   gia   tri  bi nh  quân  cua  côt  hay  tr Ha m  MIN:  tra  vê   gia   tri  nho  nhâ t  cua  côt  hay  tr Ha m  MAX:  tra  vê   gia   tri  l n  nhâ t  cua  côt  hay  tr Ha m  SUM:  tra  vê   tông  ca c  gia   tri  cua  côt  hay  tr ̀ ̀ ́ ươ ng trong câu truy vâ n ̀ ́ ́ ̀ ươ ng trong câu truy vâ n ̀ ́ ́ ̀ ươ ng trong câu truy vâ n ̀ ̀ ́ ươ ng trong câu truy vâ n

́ ̣

Vi   du:  SELECT  Masv,  Hoten,  Sum(Tongdiem),  Min(Tongdiem),  Max(Tongdiem),  Avg(Tongdiem)  FROM Sinhvien

Lập trình Web

28/04/16

303

́

̀

́

̃ ử Ca c ha m x  ly  chuô i

́

́

̃

ự

bên  tra i  cua

́

̉ ư

̉ ̉ ̉

̀   sô   nguyên  sang  dang

̉ ̣

̃ ̃

ươ

̉

̀ ng

̀

̀

̉

̉ ̉

́ ́

̣ ̉ ̉ ̉

̀

̃

́

̀

́

̣ ̉ ̉ ̉

̉

̀

̃

́

́

ư

̣

̀   cuô i

̉ ̉

̣ ̣

Lập trình Web

28/04/16

304

̀

́

̃

́

̀

̀ ̀ Ha m  ASCII:  tra  vê   ma   ASCII  cua  ky   t chuô ĩ ̀ Ha m  Char(number):  chuyên  đôi  t chuô ĩ ̀ ̃ ư Ha m Upper(string): chuyên chuô i sang ch  hoa ̀ ̃ ư Ha m Lower(string): chuyên chuô i sang ch  th ̃ ̀ ̀ Ha m Len(string): tra vê  chiê u da i cua chuô i ̀ ̃ ́ Ha m Ltrim(string): loai bo khoang tră ng bên tra i cua chuô i ̃ ̀ ́ Ha m Rtrim(string): loai bo khoang tră ng bên tra i cua chuô i ̀ ́ ̀ ư  đâ u đê n  Ha m left(string, n): tra vê  chuô i bên tra i ti nh t vi tri  ń ̀ Ha m  right(string,  n):  tra  vê   chuô i  bên  phai  ti nh  t ́ đê n vi tri n ̀ Ha m  instr(chuoi  1,  chuoi  2):  tra  vê   vi  tri   chuô i  bă t  đâ u

̃

̃

̉ ̣

cua chuô i 1 trong chuô i 2

̉

́

̀

́

̀

̀

ơ

ử Ca c ha m vê  x  ly  th i gian

̀ ́ ̉ ̣

́ ̉ ̣

̀ ́ ̀ ̀ ̀ ̀ ̉ ̣ ̀ ơ , phu t, giây hiên ha nh

̉ ̣

́ ̀ ̀ ̉

̀ ư ̉

́ ̀ ́ ư ̉

̀ Ha m  CurDate():  tra  vê   nga y,  tha ng,  năm  hiên  ha nh cua hê thô ng Ha m CurTime(): tra vê  gi cua hê thô nǵ ̀ ̀ ̀ Ha m  Period_Diff(nga y  đâ u,  nga y  cuô i):  tra  vê   ̀ ̀ ̃ ̀ ́ ơ a  nga y  đâ u  sô   nga y  trong  khoang  th i  gian  gi ́ ̀ ̀ va  nga y cuô i ̀ ̀ Ha m  dayofmonth:  tra  vê   nga y  th   mâ y  trong  tha nǵ …

Lập trình Web

28/04/16

305

́

́

̀

̀

̣

Ca c ha m vê  sô  hoc

̀ ̉ ̣

̀ ̀ ́ ̣ ̉

Ha m sqrt: tra vê  căn bâc hai ́ ̀ ̀ ư Ha m round: la m tro n gia  tri biêu th c …

Lập trình Web

28/04/16

306

́

́

̀

̀

̣

Ca c ha m vê  sô  hoc

Lập trình Web

28/04/16

307

́

́

̀

̀

̣

Ca c ha m vê  sô  hoc

Lập trình Web

28/04/16

308

ƯƠ

Ế Ố

CH

NG 7: K T N I CSDL MySQL TRONG

PHP

Ế Ậ Ế Ố

Ạ Ữ Ệ 7.1 THI T L P K T N I CSDL 7.2 THÊM THÔNG TIN VÀO CSDL 7.3 KÍCH HO T D  LI U

Lập trình Web

28/04/16

309

Ế Ố

7.1 THI T L P K T N I CSDL

ế ố ở M  và đóng k t n i ở M  csdl ọ Ch n csdl ấ Truy v n csdl ệ ớ Làm vi c v i các m u tin

Lập trình Web

28/04/16

310

ế ố M  và đóng k t n i

ở ế ố

Cú pháp: M  k t n i csdl

$bien_con=mysql_connect("servername",

"username", "password")

if (!$bien_con) {

echo "Kết nối không thành công"; exit;}

Ho cặ $bien_con=mysql_connect("servername",

"username", "password") or die("Kết nối không thành công");

Lập trình Web

28/04/16

311

ế ố M  và đóng k t n i

ế ố

Cú pháp: Đóng k t n i csdl Mysql_close($bien_con);

Lập trình Web

28/04/16

312

ở M  csdl

Cú pháp:

mysql_select_db("Database name") or die("Không mở được csdl"); Ho cặ mysql_select_db("Database name",

$bien_con)

or die("Không mở được csdl");

Lập trình Web

28/04/16

313

ở M  csdl

Ví d :ụ

Lập trình Web

28/04/16

314

Ch n csdl

Sau khi m  csdl, ta có th  thay đ i csdl theo  cú pháp:

use Database name;

Lập trình Web

28/04/16

315

ấ Truy v n csdl

ể ử ụ

ế

Đ  truy v n đ n csdl ta có th  s  d ng 1 trong  3 cú pháp sau:

$sql="câu lệnh sql"; 1. $kq=mysql_query($sql); 2. $kq=mysql_query($sql,[$bien_conn]); 3. $kq=mysql_query(database_select,

ả ả ề ế $sql, [$bien_conn]); K t qu  tr  v : là true ho c false t

ươ ứ ấ ấ ạ ặ ớ ặ ng  ng v i thành  công ho c th t b i. Cho phép truy v n csdl.

Lập trình Web

28/04/16

316

ấ Truy v n csdl

Ví d :ụ

Lập trình Web

28/04/16

317

ệ ớ

Làm vi c v i các m u tin

ữ ng b n ghi khi truy v n b ng d

ấ ố ượ ệ

L y s  l li u theo cú pháp sau:

$sl=mysql_num_rows($kq); if(!$sl) echo"không tìm thấy bản ghi

nào";

else echo"số bản ghi thỏa mãn đk".$sl;

Lập trình Web

28/04/16

318

ệ ớ

Làm vi c v i các m u tin

ừ ế

ả ề

k t qu  $kq tr  v  ta

ể ấ ừ Đ  l y t ng b n ghi t ử ụ s  d ng hàm mysql_fetch_array() ho c  mysql_fetch_assoc():

while($row=mysql_fetch_array($kq)) {

$gtri1=$row["cột 1"]; $gtri2=$row["cột 2"]; …

}

Lập trình Web

28/04/16

319

ệ ớ

Làm vi c v i các m u tin

ể ạ

Ngoài các hàm trên, ta có th  t o, xóa csdl   trang php thông qua các hàm ho c table t

mysql_creat_db(database name,

[$bien_con]);

mysql_drop_db(database name,

[$bien_con]);

drop table table name;

Lập trình Web

28/04/16

320

7.2 THÊM THÔNG TIN VÀO CSDL

ườ

i dùng

ư

Đăng ký ng Xác nh n thông tin L u thông tin

Lập trình Web

28/04/16

321

7.2 THÊM THÔNG TIN VÀO CSDL

ả ừ form

­

ướ ườ i dùng vào b ng users t ế c ti n hành qua các b

­

­

c: ậ i dùng nh p thông tin ậ ườ ậ ấ ườ i dùng nh p thông tin và ch p nh n đăng

ườ c a các tr

ợ ệ ủ ể ể ng  ồ

­

ồ ạ

­

ế ế

ề ề

i, yêu c u v  trang tr i, thì cho phép v  trang tr

ướ c ướ c hay qua

Ví dụ: Đăng ký ng ượ đăng ký đ Form đăng ký yêu c u ng Ng ký. ể H  th ng ki m tra tính h p l ế ố nh p vào. K t n i csdl đ  ki m tra email đã t n  ạ t

ệ ố ậ ư i hay ch a? N u email đã t n t ư ồ ạ N u ch a t n t ậ trang xác nh n thông tin.

Lập trình Web

28/04/16

322

7.2 THÊM THÔNG TIN VÀO CSDL

­

­

ườ

ướ ể ỉ ườ ử ọ ư

ậ ể ề  trang xác nh n thông tin, ng i dùng có th  v   ọ ư ặ c đ  ch nh s a ho c ch n l u thông tin. i dùng ch n l u thông tin thì thông tin  ẽ ượ ư c l u vào csdl và i dùng đã đăng ký s  đ

ở trang tr Khi ng ườ ng thông báo đăng ký thành công.

Lập trình Web

28/04/16

323

ườ

Đăng ký ng

i dùng

ườ

ườ

ầ ng c n

ồ i dùng g m các tr

ườ

ầ ử ươ ứ  t

ng. ợ ệ ủ ữ  c a d

ả ạ T o b ng ng tế thi ứ ạ T o trang đăng ký ch a form nh p thông tin  ớ ớ ng  ng v i các tr v i các ph n t ể ự Xây d ng các hàm ki m tra tính h p l ậ li u nh p vào.

Lập trình Web

28/04/16

324

Xác nh n thông tin

ồ ạ

ể ể

i hay

ườ

i

ỉ ng h p không ch nh s a gì thêm thì

ế ố K t n i csdl đ  ki m tra email đã t n t ch a?ư ư ị ế N u ch a thì hi n th  toàn b  thông tin ng ậ ừ dùng v a nh p đ  đăng ký. ườ Trong tr ọ ư ch n l u thông tin.

Lập trình Web

28/04/16

325

ư

L u thông tin vào csdl

form

ườ

ở ế ố M  k t n i csdl. ầ ử ấ ừ ư  các ph n t L u các thông tin l y t ườ ươ ứ ng trong csdl. ng  ng vào các tr t Thông báo đăng ký thành công cho ng

i dùng.

Lập trình Web

28/04/16

326

Ạ Ữ Ệ

7.3 KÍCH HO T D  L U

ữ ệ

ậ ữ ệ

Xem d  li u C p nh t d  li u ữ ệ Xóa d  li u

Lập trình Web

28/04/16

327

ữ ệ

Xem d  li u

i dùng có

ườ Sau khi đăng ký thành công. Ng ằ ệ ố th  đăng nh p vào h  th ng b ng user và pass  đã đăng ký. ườ Ng

ể i dùng có th  xem select.

Lập trình Web

28/04/16

328

ậ ữ ệ

C p nh t d  li u

ườ

ể i dùng có th

ệ Thông qua câu l nh update ng ư ữ ệ xem hi u ch nh và l u d  li u.

Lập trình Web

28/04/16

329

ữ ệ

Xóa d  li u

ầ ự ọ i dùng c n l a l c ra các

ữ ệ ụ

ệ ặ

ấ ả t c . ế t

ả ớ ả

ầ ế

ườ Đ  xóa d  li u, ng ộ thông tin ph  thu c vào đi u ki n nào đó. Sau đó ch n b n ghi c n xóa ho c xóa t C n thao tác v i checkbox và radio khi thi k  form xóa b n ghi.

Lập trình Web

28/04/16

330