You are on page 1of 74

MC LC

C S D LIU ............................................................................................................................................... 8
I. Cc khi nim v c s d liu ............................................................................................................ 8
II. H qun tr csdl mysql ....................................................................................................................... 8
III. To v qun l database vi phpmyadmin...................................................................................... 10
IV. Lab database ................................................................................................................................... 15

NGN NG SQL ............................................................................................................................................ 16


I. Cc cu lnh thng dng ................................................................................................................. 16
II. CC PHP TON V HM TRONG MYSQL ................................................................................ 19
III. Lab SOL .......................................................................................................................................... 21

QUN L DATABASE VI EMS SQL MANAGER ............................................................................... 22


I. Kt ni n MySql Server .................................................................................................................. 22
II. To database .................................................................................................................................... 22
III. To table trong database ................................................................................................................ 22
IV. To quan h gia cc table ............................................................................................................. 23
V. Nhp d liu vo bng ..................................................................................................................... 24
VI. Export d liu.................................................................................................................................. 24
VII. Import d liu vo database .......................................................................................................... 25

PHP C BN ................................................................................................................................................... 26
I. Tng quan .......................................................................................................................................... 26
II. Cc hm x l chui ......................................................................................................................... 32
III. Cc hm thi gian ........................................................................................................................... 34
IV. Cc hm qun l file ....................................................................................................................... 36
V. To hm mi trong php .................................................................................................................... 38
VI. Array ............................................................................................................................................... 41
VII. Ly thng tin ca client v server .................................................................................................. 44
VIII. Httpheader .................................................................................................................................... 45
IX. Cookie ............................................................................................................................................. 48
X. Session .............................................................................................................................................. 49
XI. CC HM DATABASE ................................................................................................................... 50
XII. C ch ng nhp, thot, hn ch truy cp ................................................................................... 52

LP TRNH HNG I TNG............................................................................................................. 54


I. Tng quan .......................................................................................................................................... 54
II. To class v s dng ........................................................................................................................ 56
III. V d ................................................................................................................................................ 57

LAB KT NI DB ........................................................................................................................................... 65
I. Class db ............................................................................................................................................. 65
II. Trnh by d liu theo mu 1 ........................................................................................................... 71
III. Trnh by d liu theo mu 2 .......................................................................................................... 71
IV. Trnh by d liu theo mu 3 .......................................................................................................... 72

PHP NG DNG: CHUN B CHO WEBSITE ADMIN .............................. Error! Bookmark not defined.
I. Chun b table users ............................................................................ Error! Bookmark not defined.
II. Chun b folder cha cc trang web trong phn admin .................... Error! Bookmark not defined.
III. To trang layout................................................................................ Error! Bookmark not defined.
IV. To class qun tr .............................................................................. Error! Bookmark not defined.
V. To chc nng ng nhp .................................................................. Error! Bookmark not defined.
VI. To chc nng kim tra ng nhp, kim tra admin......................... Error! Bookmark not defined.
VII. To chc nng thot ........................................................................ Error! Bookmark not defined.
VIII. Qun tr d liu trong bng............................................................ Error! Bookmark not defined.

QUN TR LOI TIN ........................................................................................ Error! Bookmark not defined.


I. To trang thm loi tin ........................................................................ Error! Bookmark not defined.
II. To trang xa loi tin ......................................................................... Error! Bookmark not defined.
III. To trang chnh loi tin .................................................................... Error! Bookmark not defined.
IV. To trang xem loi tin ....................................................................... Error! Bookmark not defined.
V. Bi ton phn trang d liu................................................................ Error! Bookmark not defined.

QUN TR TIN TC ......................................................................................... Error! Bookmark not defined.


I. To trang xem danh sch tin .............................................................. Error! Bookmark not defined.
II. To trang xa tin ................................................................................ Error! Bookmark not defined.
III. To trang thm tin............................................................................ Error! Bookmark not defined.
IV. To trang chnh 1 tin ......................................................................... Error! Bookmark not defined.
V. To trang n hin 1 tin ....................................................................... Error! Bookmark not defined.
VI. To trang chuyn trng thi ni bt ca 1 tin.................................. Error! Bookmark not defined.

LAB TO TRANG CH SITE TIN TUC ........................................................ Error! Bookmark not defined.
I. To class tin ......................................................................................... Error! Bookmark not defined.
II. To trang layout ................................................................................. Error! Bookmark not defined.

TIN NI BT & TIN XEM NHIU .................................................................. Error! Bookmark not defined.
I. To file noibat_xemnhieu.php ............................................................. Error! Bookmark not defined.
II. Tin xem nhiu ..................................................................................... Error! Bookmark not defined.
III. Tin ni bt ......................................................................................... Error! Bookmark not defined.

TIN MI TRONG TNG TH LOI .............................................................. Error! Bookmark not defined.


I. nh ngha hm TinMoiTrongTheLoai ............................................... Error! Bookmark not defined.
II. To file tinmoi.php ............................................................................. Error! Bookmark not defined.
III. nh dng CSS .................................................................................. Error! Bookmark not defined.
IV. Nhng vo trang ch ......................................................................... Error! Bookmark not defined.
V. B sung ............................................................................................... Error! Bookmark not defined.

BNH CHN ........................................................................................................ Error! Bookmark not defined.


I. nh ngha cc hm............................................................................. Error! Bookmark not defined.
II. To form hin cu hi v phng n ................................................. Error! Bookmark not defined.
III. To trang hin kt qu bnh chn ..................................................... Error! Bookmark not defined.

FORM TM, VIDEO, QUNG CO................................................................. Error! Bookmark not defined.


I. Form tm kim...................................................................................... Error! Bookmark not defined.
II. Video .................................................................................................. Error! Bookmark not defined.
III. div Info .............................................................................................. Error! Bookmark not defined.
IV. Qung co ......................................................................................... Error! Bookmark not defined.
V. Form tm nng cao ............................................................................. Error! Bookmark not defined.

HIN TH CHI TIT MT TIN ....................................................................... Error! Bookmark not defined.


I. Phn 1: To trang hin th chi tit tin: ................................................ Error! Bookmark not defined.
II. Phn 2: Nhng vo trang ch ............................................................ Error! Bookmark not defined.
III. Phn 3: Hin s ln xem, ngy ng, bn in , tin c hn, mi hn . Error! Bookmark not defined.

THANH MENU.................................................................................................... Error! Bookmark not defined.


I. Chp folder .......................................................................................... Error! Bookmark not defined.
II. To file menu.php ............................................................................... Error! Bookmark not defined.
III. Ly cc loi tin trong tng th loi v hin th (sau tag a) .............. Error! Bookmark not defined.
IV. Chn menu.js, menu.css ................................................................... Error! Bookmark not defined.
V. Thm div copyright sau cng........................................................... Error! Bookmark not defined.
VI. a vo trang ch: ........................................................................... Error! Bookmark not defined.
LAB HIN TH CC TIN TRONG 1 LOI .................................................... Error! Bookmark not defined.
I. nh ngha hm ................................................................................... Error! Bookmark not defined.
II. To file tintrongloai.php .................................................................... Error! Bookmark not defined.
III. a vo trang ch ............................................................................ Error! Bookmark not defined.

LAB X L TM KIM..................................................................................... Error! Bookmark not defined.


I. Chnh file formtim.php v chnh cc tham s ...................................... Error! Bookmark not defined.
II. nh ngha hm TimKiem .................................................................. Error! Bookmark not defined.
III. To file ketquatimkiem.php ............................................................... Error! Bookmark not defined.

TO TIU CHO CC TRANG .................................................................. Error! Bookmark not defined.


I. M file classTin.php v nh ngha hm sau:...................................... Error! Bookmark not defined.
II. M file home.php................................................................................ Error! Bookmark not defined.

.HTACCESS ......................................................................................................... Error! Bookmark not defined.


I. Chun b .............................................................................................. Error! Bookmark not defined.
II. Gi a ch ca 1 tin ........................................................................... Error! Bookmark not defined.
III. Gi a ch ca loi tin ..................................................................... Error! Bookmark not defined.
IV. Gi a ch cho tm kim ................................................................... Error! Bookmark not defined.
V. Cc ch th hu ch khc trong file htaccess ....................................... Error! Bookmark not defined.

LAB TO WEBSITE A NGN NG ............................................................ Error! Bookmark not defined.


I. Database .............................................................................................. Error! Bookmark not defined.
II. Phn x l interface ........................................................................... Error! Bookmark not defined.

CC K THUT TNG TC WEBSITE ....................................................... Error! Bookmark not defined.


I. Gim bt cc request ........................................................................... Error! Bookmark not defined.
II. S dng Content Delivery Network(CDN) ......................................... Error! Bookmark not defined.
III. Nn html ............................................................................................ Error! Bookmark not defined.
IV. Cache client dng htaccess ............................................................ Error! Bookmark not defined.
V. Ti u cc MySQL Query ................................................................... Error! Bookmark not defined.
VI. Opcode caching................................................................................. Error! Bookmark not defined.
VII. Server file caching ........................................................................... Error! Bookmark not defined.

NG K THNH VIN .................................................................................. Error! Bookmark not defined.


I. To form .............................................................................................. Error! Bookmark not defined.
II. nh dng CSS ................................................................................... Error! Bookmark not defined.
III. X l khi submit ................................................................................ Error! Bookmark not defined.
IV. nh ngha hm DangKyThanhVien:................................................ Error! Bookmark not defined.
V. Lu vo db .......................................................................................... Error! Bookmark not defined.
VI. Kch hot ti khon ........................................................................... Error! Bookmark not defined.
VII. Kim tra Username bng Ajax........................................................ Error! Bookmark not defined.
VIII. Trang ng k thnh cng .............................................................. Error! Bookmark not defined.

CAPTCHA IMAGE ............................................................................................. Error! Bookmark not defined.


I. To hnh ............................................................................................... Error! Bookmark not defined.
II. a hnh captcha vo form ng k .................................................. Error! Bookmark not defined.

GI PASSWORD ................................................................................................ Error! Bookmark not defined.

I PASSWORD ................................................................................................ Error! Bookmark not defined.


I. To form .............................................................................................. Error! Bookmark not defined.
II. Code kim tra login ( u trang): H ............................................... Error! Bookmark not defined.
III. X l i pass .................................................................................... Error! Bookmark not defined.
IV. Hin thng bo li............................................................................. Error! Bookmark not defined.
V. nh ngha hm i pass ................................................................... Error! Bookmark not defined.
VI. Hin li cc gi tr trong form khi submit......................................... Error! Bookmark not defined.
VII. To trang doipassthanhcong.php..................................................... Error! Bookmark not defined.

HITCOUNTER .................................................................................................... Error! Bookmark not defined.


I. Chun b .............................................................................................. Error! Bookmark not defined.
II. To file hin s m ........................................................................... Error! Bookmark not defined.
III. Chn s m vo trang php: ............................................................. Error! Bookmark not defined.

GI MAIL DNG PHP MAILER ..................................................................... Error! Bookmark not defined.


I. To form gi mail ................................................................................ Error! Bookmark not defined.
II. nh dng ........................................................................................... Error! Bookmark not defined.
III. Bt module m ho d liu ............................................................... Error! Bookmark not defined.
IV. Chp th vin PHP Mailer vo site .................................................. Error! Bookmark not defined.
V. Vit hm gi mail ............................................................................... Error! Bookmark not defined.
VI. Code x l ......................................................................................... Error! Bookmark not defined.

DOWNLOAD FILE ............................................................................................. Error! Bookmark not defined.


I. Chun b .............................................................................................. Error! Bookmark not defined.
II. To trang web down 1 file ............................................................. Error! Bookmark not defined.
III. To trang web hin list d liu t database ................................. Error! Bookmark not defined.
UPLOAD FILE .................................................................................................... Error! Bookmark not defined.
IV. To form upload ................................................................................ Error! Bookmark not defined.
V. Hin list d liu t db ......................................................................... Error! Bookmark not defined.

CHUN B SITE BN IN THOI ............................................................... Error! Bookmark not defined.


I. Database .............................................................................................. Error! Bookmark not defined.
II. To cc table ...................................................................................... Error! Bookmark not defined.
III. Chun b/ d nh to cc file/folder ................................................ Error! Bookmark not defined.

SHOW SN PHM MI ................................................................................... Error! Bookmark not defined.


I. To file spmoi.php ............................................................................... Error! Bookmark not defined.

TRANG LAYOUT ............................................................................................... Error! Bookmark not defined.

XY DNG GI HNG .................................................................................... Error! Bookmark not defined.


I. Hin gi hng tm tt ....................................................................... Error! Bookmark not defined.
II. Hin gi hng readonly: .................................................................... Error! Bookmark not defined.
III. Hin gi hng update ..................................................................... Error! Bookmark not defined.

A GI HNG VO TRANG CH .............................................................. Error! Bookmark not defined.


I. Hin gi hng tm tt khi user nhp nt t hng .............................. Error! Bookmark not defined.
II. Hin giohang_update ......................................................................... Error! Bookmark not defined.

FORM MUA HNG ............................................................................................ Error! Bookmark not defined.


I. To file muahang.php .......................................................................... Error! Bookmark not defined.
II. Hin thng tin user ang ng nhp .................................................. Error! Bookmark not defined.
III. Hin form thng tin ngi nhn ....................................................... Error! Bookmark not defined.
IV. Hin cc phng thc thanh ton v giao hng: .............................. Error! Bookmark not defined.
V. Lng trang muahang.php vo trang ch ............................................ Error! Bookmark not defined.

X L MUA HNG ........................................................................................... Error! Bookmark not defined.


I. To file xulymuahang.php ................................................................... Error! Bookmark not defined.
II. Lu n hng v bo li nu c ........................................................ Error! Bookmark not defined.
III. Lu chi tit n hng , hin thng bo, hin nt thanh ton ............ Error! Bookmark not defined.
IV. Lng trang xulymuahang vo trang ch ........................................... Error! Bookmark not defined.

YU CU SINH VIN THC HIN TI NH .............................................. Error! Bookmark not defined.


I. To trang hin chi tit 1 sn phm ...................................................... Error! Bookmark not defined.
II. To trang hin cc sn phm trong 1 loi ......................................... Error! Bookmark not defined.
III. Thc hin chc nng tm kim .......................................................... Error! Bookmark not defined.
IV. Nhng icon yahoo chat vo trang ch .............................................. Error! Bookmark not defined.
V. Lm form login trn trang ch ........................................................... Error! Bookmark not defined.
VI. Lm phn qun tr ............................................................................. Error! Bookmark not defined.

PHN B SUNG: ................................................................................................ Error! Bookmark not defined.

M S NGI XEM TRONG TNG MC ................................................ Error! Bookmark not defined.


I. To table .............................................................................................. Error! Bookmark not defined.
II. nh ngha hm lu thng tin ............................................................ Error! Bookmark not defined.
III. Gi hm LuuThongTin ...................................................................... Error! Bookmark not defined.
IV. To hm m s user ang xem trong tng loi tin , trong tng th loiError! Bookmark not defined.
V. Thng k s ngi ang xem tng loi .............................................. Error! Bookmark not defined.
VI. Hin thng tin tng kt ...................................................................... Error! Bookmark not defined.

NG NHP POPUP ......................................................................................... Error! Bookmark not defined.


I. To form ng nhp ............................................................................ Error! Bookmark not defined.
II. To link ng nhp: ........................................................................... Error! Bookmark not defined.
III. Np form ng nhp ......................................................................... Error! Bookmark not defined.
IV. Thc hin trang x l ng nhp ...................................................... Error! Bookmark not defined.
V. To file thoat.php (Mi bn t lm) .................................................. Error! Bookmark not defined.
VI. Hin li cho khi user np li trang ................................................. Error! Bookmark not defined.
C S D LIU

I. Cc khi nim v c s d liu


1. D liu
L cc thng tin cn lu tr s dng li
2. C s d liu (database)
L cc d liu c lu tr c t chc
3. H qun tr c s d liu:
L cc chng trnh gip qun l v t chc c s d liu. V d: MySQL, MSSQL,
4. Table:
Mi database cha nhiu table. Mi table l 1 bng d liu, cha mt mng thng tin no .
Mi table c 1 tn, gm nhiu ct nhiu hng.
Mi dng ca table l 1 n v d liu cn lu tr, v d nh 1 tin, 1 cu hi bnh chn, 1
user. Mi dng gi l 1 record hay mu tin.
Mi ct ca table gi l 1 field hay trng. D liu trong 1 ct thuc 1 kiu xc nh no .
5. Kho chnh
L ct c bit trong table, cha thng tin phn bit tng record vi nhau trong table.
Kho chnh c th gm nhiu field nhng thng l 1 field.
Field lm kho chnnh nn c kiu s, tng t ng.
6. Kho ngoi
L ct trong 1 table m d liu trong n l tham kho n kho chnh bng khc. Trong 1
table c th c nhiu kho ngoi, mi kho ngoi.
7. Quan h gia hai bng
Hai bng c quan h vi nhau khi d liu trong chng l b sung cho nhau. C ba loi quan
h thng gp:
Quan h 1-1: 1 record bn bng A c quan h vi 1 record bn bng B v ngc li.
Quan h 1-nhiu: 1 record bn bng A c quan h vi nhiu record bn bng B.
Quan h nhiu-nhiu:1 record bng A c quan h vi nhiu record bn bng B & ngc li.

II. H qun tr csdl mysql


- Gii thiu
MySQL l h qun tr c s d liu m ngun m ph bin nht th gii v c cc nh
pht trin rt a chung trong qu trnh pht trin ng dng. V MySQL l c s d liu tc
cao, n nh v d s dng, hot ng trn nhiu h iu hnh,.
MySQL min ph hon ton. C nhiu phin bn cho cc h iu hnh khc nhau:
Windows, Linux, Mac OS, Unix, SGI Irix,Solaris, SunOS, ...
- Storage Engine
Trong MySQL, c nhiu cch t chc lu d liu cho cc table : MyISAM , InnoDB,
Memory,
MyISAM l storage engine mc nh ca MySQL. Mi table lu theo kiu MyISAM s c
lu trn 3 file : tableName.FRM (cha nh dng ca table), tableName.MYD (lu d liu),
tableName.MYI (lu index) . MyISAM h tr full-text searches cn InnoDB th khng
InnoDB l engine h tr transaction (commit, rollback, and crash-recovery capabilities)
bo v d liu. InnoDB h tr relationship cn MyISAM th khng.
- Cc kiu d liu trong MySql
Kiu chui
CHAR v VARCHAR: Lu text, trong char c di c nh cn varchar c
di khng c nh.
BINARY v VARBINARY: Gn ging nh Char v Varchar nhng cha nhng
binary strings (Char, Varchar l none binary string). iu ny c ngha l khng c
Character set, do vic sort v compare s ch da trn gi tr cc byte c lu.
di ca chui cng tnh bng s byte (Char, varchar tnh bng s k t)
BLOG v TEXT: cha text c di ln.
BLOB values cha cc binary strings (byte strings). Chng khng c character set, vic
sorting v comparison ch da trn gi tr cc byte column. TEXT l cc nonbinary
strings (character strings). Chng c character set, vic sorting v comparison s da
theo collation ca character set c dng
Kiu Ngy thng
DateTime: Lu d liu kiu ngy gi. MySql hin th ngy gi theo kiu 'YYYY-
MM-DD HH:MM:SS' c gi tr t '1000-01-01 00:00:00' n '9999-12-31 23:59:59'.
Date: Lu d liu kiu ngy. MySql hin th ngy theo kiu 'YYYY-MM-DD' , c gi
tr t 1000-01-01 n 9999-12-31
TimeStamp: L 1 s nguyn din t 1 thi im l s giy tnh t giy u tin ca
nm 1970 n thi im hin ti. Timestamp c gi tr trong khong t '1970-01-01
00:00:01' n '2038-01-19 03:14:07'
Time: Lu gi. Hin th theo kiu 'HH:MM:SS'
Year: Lu nm
Kiu s

Type Bytes Minimum Value Maximum Value

(Signed/Unsigned) (Signed/Unsigned)

TINYINT 1 -128 127

0 255

SMALLINT 2 -32768 32767

0 65535

MEDIUMINT 3 -8388608 8388607

0 16777215

INT 4 -2147483648 2147483647

0 4294967295

BIGINT 8 -9223372036854775808 9223372036854775807

0 18446744073709551615

III. To v qun l database vi phpmyadmin


1. To Database (CSDL C S D Liu)
B1. Nhp Home
B2. Trong mc Create new database, khai bo:
. trn: t tn CSDL
. di: chn utf8_general_ci (th lu c ting vit)
B3. Nhp Create
V d: To database tn tintuc
2. To Table (bng)
B1. Chn database
B2. Mc Name: khai bo tn table mun to (theloai)
Mc Number of fields: khai bo s field trong table
B3. Nhp nt Go

B5. Khai bo cc field trong table


B6. Nhp nt Save
3. Thm d liu vo Table (bng)
- Chn table ri nhp link Insert (xem hnh)
- Nhp d liu ri nhp nt Go
V d: Thm 2 record vo table theloai nh sau:

4. Xem d liu trong Table (bng)


- Chn table mun xem d liu ri nhp Browse (xem hnh) Mi ln hin 30 records

5. Xa / Sa d liu trong Table (bng)


Chn table mun xa sa (v d theloai) ri nhp link Browse
. Sa record: Nhp nt Edit (cy vit) trn dng cha record (xem hnh)
. Xa record : Nhp nt Drop (du cho) trn dng cha record (xem hnh)

6. Sa cu trc Table
- Chn table ri nhp nhp link Structure
. Chnh field: Nhp nt Change
. Xa field : Nhp nt Drop (du cho)
. Thm field : Nhp nt Go trong mc Add

V d: Sa chiu di ca field TenTL trong table theloai t 255 xung cn 100.

7. i tn Table
- Chn table ri nhp link Operations
- Mc Rename table to: g tn mi ri nhp nt Go
V d: i tn table theloai thnh theloaitin
8. Xa Table
Chn table ri nhp link Drop

9. Import d liu
- Chn database ri nhp link Import
- Nhp nt Browse chn file .sql ri nhp nt Go

10. Export d liu


- Chn database ri nhp link Export
- Mc Export: chn cc table cn export
- Chn kiu file l .SQL
- Chn mc Save as file ri nhp nt GO
- Nhp nt Save Khai bo: tn file, a ch lu Save
11. Xo Database
Nhp tn database Nhp link Drop

IV. Lab database


Mi bn m file LabDatabase ln lm
NGN NG SQL

I. Cc cu lnh thng dng


1. To database mi

CREATE DATABASE TnDB [CHARACTER SET=char_name] [COLLATE =col_name]

V d: CREATE DATABASE tin CHARACTER SET=utf8 COLLATE =utf8_general_ci;


2. Xo database

DROP DATABASE [IF EXISTS] db_name

V d: DROP DATABASE tin;


3. To table

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name


(col_name column_definition,...)
[table_options],

column_definition:
data_type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]
[UNIQUE [KEY] | [PRIMARY] KEY] [COMMENT 'string']

table_options:
ENGINE [=] engine_name | AUTO_INCREMENT [=] value | CHARACTER SET [=] charset_name

V d:

CREATE TABLE bandocykien (


`idYKien` int(11) NOT NULL auto_increment,
`idTin` int(11) NOT NULL default '0',
`Ngay` datetime NOT NULL default '0000-00-00',
`NoiDung` text NOT NULL,
`TieuDe` varchar(255) default NULL,
PRIMARY KEY (`idYKien`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
4. Xo table

DROP TABLE [IF EXISTS] tbl_name

V d:

DROP TABLE bandocykien;

5. Chn record vo table

INSERT INTO tbl_name VALUES (value1, value2,);


INSERT INTO tbl_name (field1, field2,) VALUES (val1, val2,);

V d:

INSERT INTO theloai VALUES ('', 'JavaScript',1, 0);


INSERT INTO theloai (ThuTu, AnHien,TenTL) VALUES (1, 1,'PHP');

6. Xo record trong table

DELETE FROM tbl_name [WHERE condition]

V d:

DELETE FROM theloai WHERE idTL=100;

7. Chnh cc record trong table

UPDATE tbl_name SET Field1=value1, Field2=value2, [WHERE condition]

V d:

UPDATE theloai SET TenTL='XML' WHERE idTL=50;

8. Ly d liu t table

SELECT * | colname1, colname2,


FROM tbl_name1, table_name2
WHERE DieuKienKetBang | DieuKienLoc
GROUP BY colname1, colname2
HAVING DieuKienLocTheoNhom
ORDER BY colname1 ASC|DESC, colname2 ASC|DESC
LIMIT offset, rowcount
V d:

SELECT idTin, Ngay, TieuDe FROM Tin WHERE Ngay=curdate();


SELECT idTin, Ngay,TieuDe FROM Tin ORDER BY Ngay DESC LIMIT 0,10;
SELECT idTin, SoLanXem,TieuDe FROM Tin WHERE idLT=9 ORDER BY SoLanXem
DESC LIMIT 0,10;
SELECT idUser, count(idTin) as SoTin FROM tin GROUP BY idUser HAVING
count(idTin) >=20
SELECT idTin, Ngay, TieuDe FROM Tin WHERE TieuDe LIKE 'C%'

V d 2: select c kt bng

SELECT idTin, Ngay, TieuDe , Tin.idLT, Ten


FROM Tin, LoaiTin
WHERE Tin.idLT= LoaiTin.idLT AND TieuDe like '%a%'
ORDER BY Ngay DESC, idTin DESC

V d 3: select lng nhau

SELECT Ngay, TieuDe FROM tin WHERE Ngay >= All (SELECT Ngay FROM Tin)

V d 4: Ly d liu ngu nhin

select idTin, TieuDe FROM tin WHERE idLT=25 ORDER BY rand() LIMIT 0,3;

9. Mt s v d cu lnh SQL c thng k


a. m s lng sn phm trong tng loi

SELECT loaisp.idLoai, loaisp.TenLoai, count(idSP) as SoSP


FROM loaisp, sanpham
WHERE loaisp.idLoai=sanpham.idLoai
GROUP BY loaisp.idLoai, loaisp.TenLoai

b. m s lng sn phm trong tng chng loi

SELECT chungloai.idCL, chungloaisp.TenCL, count(idSP) as SoSP


FROM chungloai, sanpham
WHERE chungloai.idCL=sanpham.idCL
GROUP BY chungloai.idCL, chungloai.TenCL

c. Thng k tng idDH, Tng S Lng, Tng Tin

SELECT idDH, sum (soluong) as TongSoLuong, sum(soluong*gia) as TongTien


FROM donhangchitiet
GROUP BY idDH

d. Thng k tng idDH, Ngay, Tng S Lng, Tng Tin, sp theo Ngy gim dn. Ch
hin nhng n hng cha giao hng.

SELECT donhang.idDH, ThoiDiemDatHang as Ngay, sum (soluong) as


TongSoLuong, sum(soluong*gia) as TongTien
FROM donhangchitiet, donhang
WHERE donhangchitiet.idDH=donhang.idDH AND donhang.TinhTrang=0
GROUP BY idDH, Ngay
ORDER BY Ngay DESC

e. Hin nm, thng, S n t hng, Tng s lng, Tng tin. Ch chn nhng n hng
giao, sp xp theo Nm, Thng gim dn

SELECT year(ThoiDiemDatHang) as Nam, month(ThoiDiemDatHang) as Thang,


count(donhang.idDH) as SoDH, sum (soluong) as TongSoLuong,
sum(soluong*gia) as TongTien
FROM donhangchitiet, donhang
WHERE donhangchitiet.idDH=donhang.idDH AND donhang.TinhTrang=1
GROUP BY Nam , Thang
ORDER BY Nam DESC, Thang DESC

II. CC PHP TON V HM TRONG MYSQL


1. Cc php ton
AND, && , OR ,||, NOT, BETWEEN AND, IN, NOT
V d 1:
SELECT idDH,SoLuong FROM donhangchitiet
WHERE soluong BETWEEN 5 AND 10 GROUP BY idDH ORDER BY idDH
V d 2:
SELECT idDH,SoLuong FROM donhangchitiet
WHERE soluong >=5 AND soluong<=10 GROUP BY idDH ORDER BY idDH
V d 3:
SELECT idDH, idUser FROM donhang WHERE idUser IN ( 21, 22 )
GROUP BY idDH ORDER BY idDH
2. Cc hm trong pht biu GROUB BY
AVG: Tr v gi tr bnh qun ca ct
MIN: Tr v gi tr nh nht ca ct
MAX: Tr v gi tr ln nht ca ct
Count: Tr v s lng record
Sum: Tr v tng cc gi tr ca ct
V d:
SELECT idDH, COUNT(idSP) as SoSP, SUM(Gia*Soluong) as TongTien,
MAX(Soluong) as SoluongMax, MIN(SoLuong) as SoluongMin
FROM donhangchitiet GROUP By idDH ORDER BY idDH
3. Cc hm x l chui
- Char: Chuyn i kiu m ASCII t s nguyn sang dng chui
SELECT char(35) Kt qu: #
- Upper: chuyn i chui sang kiu ch hoa:
SELECT UPPER(TieuDe) FROM Tin
- Lower: chuyn i chui sang kiu ch thng:
SELECT LOWER(TieuDe) FROM Tin
- Length: Tr v chiu di ca chui:
SELECT Length(TieuDe) as SoKyTu, TieuDe FROM Tin
- Left: tr v n k t bn tri tnh ca chui
SELECT left(TieuDe, 40) as TieuDe FROM tin
SELECT TenBH FROM baihat WHERE left(TenBH, 1)='a'
- Right: tr v chui bn phi tnh t cui cho n v tr th n:
SELECT idTin,TieuDe FROM tin WHERE right(TieuDe, 1) ='c'
4. Cc hm v x l thi gian
- curdate(): Tr v ngy, thng v nm hin hnh
SELECT idTin,TieuDe FROM tin WHERE Ngay =curdate()
- curtime(): Tr v gi, pht v giy hin hnh
- DateDiff: Hm tr v s ngy trong khong thi gian gia 2 ngy:
SELECT idDH,DateDiff(ThoiDiemDatHang,ThoiDiemGiaoHang) as
SoNgay FROM donhang
- dayofmonth: tr v ngy th my trong thng:
Select dayofmonth(curdate()) as homnay
- month: Tr v gi tr thng
SELECT idTin,TieuDe FROM tin WHERE month(Ngay)=3
- Year: Tr v gi tr nm
SELECT idTin,TieuDe FROM tin WHERE year(Ngay)=2010
- STR_TO_DATE: Chuyn chui thnh dng ngy gi ca MysQL
SELECT STR_TO_DATE('01/05/2013','%d/%m/%Y');
2013-05-01
- UNIX_TIMESTAMP : Hm tr v s giy t giy u tin ca nm 1970 m hin ti
SELECT UNIX_TIMESTAMP();
- Date_add: Cng thm 1 khong thi gian
SELECT ThoiDiemDatHang, Date_Add( ThoiDiemDatHang, INTERVAL 7 DAY )
FROM donhang

III. Lab SOL


Mi bn m file LabSQL ln lm
QUN L DATABASE VI EMS SQL MANAGER

I. Kt ni n MySql Server
Kt ni n Mysql server l vic u tin phi
lm khi bn mun qun l database
Nhp menu Database chn Register Host
HostName: G a ch my sql server mun kt
ni ti (localhost)
Username: Ti khon kt ni n mysql
server (root)
Password: Mt khu (root)
Port: Port kt ni n mysql (c 3306)
Nhp Next
Chn cc database cn dng (nn chn ht) ri
nhp Next
Nhp Finish

II. To database
a. Nhp nt phi chut ti tn server ca bn bn ct tri chn Create database
b. t tn database ri nhp Next
HostName, Username, Password: Khai
bo ng kt ni n database
Use server settings: B du check v
ch nh unicode
Xong nhp Next
c. Nhp Finish OK

III. To table trong database


a. M database mun dng (vd tintuc)
b. Nhp nt phi chut ti mc Tables chn Create Table
Tab Table: Khai bo cc thng s chung cho table
Table name: t tn table. Vd: theloai
Stored engine: chn Engine mun dng . Vd : InnoDB
Tab Field: Khai bo cc ct trong table
Nhp nt phi chn Insert Field khai bo tng ct v cc thuc tnh cho ct

`
c. Xong nhp lnh Compile
Mi bn tip tc to 1 table (tn loaitin, InnoDB) , vi cc field nh sau:

IV. To quan h gia cc table


a. Nhp p table loaitin ri chn tab Foreign key
b. Nhp nt phi chut chn lnh New Foreign key
Foreign key: tn quan h
Table field: chn field lm kha ngoi (idTL) ri nhp nt chn (nt mi tn )
Foreign table name: chn table bn quan h 1 (theloai)
Foreign table field: chn field kha chnh (idTL) ri nhp nt chn (mi tn hng)
On delete rule: chn hnh ng khi xa 1 record bn quan h 1
On update rule: chn hnh ng khi chnh 1 record bn quan h 1
c. Xong nhp OK
xem trc quan quan h gia cc table, nhp nt Visual Database Designer ri ko cc
bng vo vng hin th

V. Nhp d liu vo bng


a. Nhp p tn table ri nhp tab Data
b. Nhp nt + thm record

VI. Export d liu


a. Chn database ri vo menu Tools Extract database
b. Nhp chn mc Extract all metadata and data of the database ri nhp Next
c. Chn Save as File
File name: Chn ni lu file v tn file
File charset: chn Unicode(Utf-8)
d. Xong nhp Next
Nu mun thm vo file sql lnh to database th check vo mc Generate Create
database

e. Nhp Next ri nhp Finish

VII. Import d liu vo database


- B1: Vo menu Tools SQL Script
- B2: nhp lnh Execute Script From File ri chn file SQL
- B3: Nhp OK
PHP C BN

I. Tng quan
- PHP (vit tt ca Hypertext Preprocessor) l mt ngn ng lp trnh c dng pht trin
cc ng dng web. M lnh PHP thc thi trn webserver.
- Mi dng lnh PHP kt thc bng du ;
- Trong trang html, cc lnh php nm trong tag <? ?> hoc <?php ?>
- Cc khi lnh nm trong { }
- Tn m rng ca file l php
- Ch thch :

// : 1 dng

/*
Khi lnh
*/

1. Bin trong PHP


- Khai bo : $TenBien=<giatri> ;
- Lnh echo , print : Dng hin gi tr ca 1 bin, hin 1 chui

<?php
$hoten= "To"; //To bin hoten v gn gi tr
$dem=1; //To bin dem v gn gi tr
echo $hoten; //Hin gi tr bin hoten
?>

- lm r cc bin trong chui, cn bao bin vo gia cp ngoc nhn { }

$a = "He";
$b = "{$a}llo";
echo $b; // "Hello"

- p kiu

$a = "123abc";
$so = (int) $a; //123
$kytu = (string) $a; //123abc

- Kim tra kiu:

Gettype(), is_bool(), is_long(),...

K hiu ngha kiu

(int), (integer) S nguyn

(real), (double), (float) S thp phn

(string) Chui

(array) Mng

(object) i tng

(bool), (boolean) Logic

2. nh ngha hng
nh ngha hng : define (tn_hng, gi_tr_hng ) ;

<?php define("TYGIA", 17000) ; ?>

3. Chui
Chui l mt nhm cc k t c t trong cc du nhy n hoc nhy kp

<?php $username= "teo";


$chao= 'Cho bn'.$username ;
?>

4. Cc ton t
a. S hc
L cc php tnh cng, tr, nhn, chia, chia ly d (%)
b. So snh
Dng thc hin cc php ton so snh

c. Logic
Ton t logic l cc t hp cc gi tr boolean.

d. Ton t tng gim


tng hoc gim mt bin, dng cc ton t sau:
5. Cc kiu d liu
- PHP c cc kiu d liu sau :

- C th s dng hm gettype() kim tra kiu ca bin:


<?php $a=10;
echo gettype($a); //interger
$a="abc";
echo gettype($a); //string
?>

6. C php if
if (iu kin) {
Khi Lnh 1;
}
else {
Khi Lnh 2;
}

- Khi lnh c th l m lnh php hoc m lnh html


- C th dng elseif khi c nhiu if cn din t
- V d 1 :
<?php $diem = 8;
if ($diem>=5) echo "<b>u</b>"; else echo "<i>Rt</i>";
?>

- V d 2 :
<?php $diem=4; ?>
<?php if ($diem>=5) { ?>
<b> <?php echo "u"; ?> </b>
<?php } else { ?>
<i> <?php echo "Rt"; ?> </i>
<?php } ?>

- V d 3 :
<?php $diem=6;
if ($diem>=8) echo "Gioi";
elseif ($diem>=7) echo "Kh";
elseif ($diem>=5) echo "Trung bnh";
else echo "Yu";
?>

- if n gin: $bin= (iu kin)? Gi_tr1:Gi_tr2


7. Vng lp for
- C php:
for (<bin m> ; <iu kin dng> ; <Tng/gim bin m>) {
Khi lnh.
}

- V d:
<?php
for ($i=1;$i<=100;$i++) echo "i=$i<br>";
?>

- Lnh break: thot khi vng lp. V d sau ch hin cc gi tr t 1 n 10


<?php
for ($i = 1; $i<100; $i++) {
if ($i > 10) break;
echo "$i<br>";
}
?>

8. Vng lp while
- C php:
while (<iu kin>){
Khi lnh
}

- V d:
<?php
$tong=0; $i=1;
while ($i<=100) {
$tong+=$i; $i++;
}
echo "Tng=$tong";
?>

- Lnh break: thot khi vng lp


9. Vng lp do
do {
Khi lnh
} while (<iu kin>);

- V d:
<?php
$tong=0; $i=1;
do {
$tong+=$i; $i+=2;
}while ($i<=100);
echo "Tng cc s l=$tong";
?>

- Lnh break: thot khi vng lp


10. Lnh switch case
- C php:
switch(bin){
case value1: Lnh1; break;

case valueN: LnhN; break;
default: Lnh; break;
}

- V d:
<?php
switch ($i) {
case "apple":
echo "i is apple"; break;
case "bar":
echo "i is bar"; break;
case "cake":
echo "i is cake"; break;
default: echo "banana";
}
?>

II. Cc hm x l chui
1. print
In ra 1 chui
$foo = "foobar";
print $foo; // foobar

print <<<HienTable
<table width="400" border="1" cellspacing="0" cellpadding="4">
<tr> <td colspan=2>&nbsp;</td> </tr>
<tr> <td>&nbsp;</td> <td>&nbsp;</td> </tr>
</table>
HienTable

2. strlen
$str = 'abcdef';
echo strlen($str);

3. strpos, stripos
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);
if ($pos === false) {
echo "The string '$findme' was not found in the string '$mystring'";
} else {
echo "The string '$findme' was found in the string '$mystring'";
echo " and exists at position $pos";
}

4. str_replace, str_ireplace

$str = "abc_ABC_abc";
echo str_replace("abc","xyz",$str);

5. strip_tags
$text = '<p>Test paragraph.</p> <?=$aa;?> <a href="#fragment">Other text</a>';
echo strip_tags($text), "<br/>";

6. strstr
$email = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // @example.com

7. substr
echo substr("abcdef", 0, -1), "<br/>"; // returns "abcde"
echo substr("abcdef", 2, -1), "<br/>"; // returns "cde"
echo substr("abcdef", 4, -4), "<br/>"; // returns ""
echo substr("abcdef", -3, -1) ,"<br/>"; // returns "de"

8. mb_convert_case
$str = "lp trnh ng dng ";
echo mb_convert_case($str, MB_CASE_UPPER ,'utf-8'),"<br>";
echo mb_convert_case($str, MB_CASE_LOWER ,'utf-8'),"<br>";
echo mb_convert_case($str, MB_CASE_TITLE ,'utf-8'),"<br>";

9. md5

string md5 ( string $str )


10. sha1

string sha1 ( string $str)

III. Cc hm thi gian


1. Time()
Tr v timestamp ca thi im hin hnh.

echo time();

2. checkdate ( int $month , int $day , int $year )

echo (checkdate(13,17,2010)==true)? "Hp l":"khng hp l";

3. date ( string $format [, int $timestamp ] )

Now: <? echo date("d/m/Y H:i:s");?> <br />


Th trong tun: <? echo date("w");?> <br />
Tn th trong tun: <? echo date("D") ;?> <br />
Tn th trong tun: <? echo date("l");?> <br />
Tn thng: <? echo date("M") ;?> <br />
Tn thng:<? echo date("F");?> <br />
Ngy trong nm: <? echo date("z");?> <br />

Bng quy nh cho format:


format Description Example returned values

Day

d Ngy trong thng, c 0 vi cc ngy 1 n 10 01 to 31

D Tn th trong tun (tn ngn) Mon through Sun

j Ngy trong thng, khng c 0 vi cc ngy 1 n 10 1 to 31

l Tn th trong tun (tn di) Sunday through Saturday

N S th t ca ngy trong tun. 1 (for Monday) through 7 (for Sunday)

w S th t ca ngy trong tun 0 (for Sunday) through 6 (for Saturday)

z Ngy trong nm 0 through 365


format Description Example returned values

Week

W Tun trong nm Example: 42 (the 42nd week in the year)

Month

F Tn y ca thng January through December

m S th t ca thng 01 through 12

M Tn ngn ca thng Jan through Dec

n S th t ca thng 1 through 12

t S ngy trong 1 thng 28 through 31

Year

Y Nm c 4 k s Examples: 1999 or 2003

y Nm c 2 k s Examples: 99 or 03

Time

a K hiu bui sang, bui chiu, ch thng am or pm

A K hiu bui sang, bui chiu, ch hoa AM or PM

g Gi theo kiu 12 gi, without leading zeros 1 through 12

G Gi theo kiu 24 gi, without leading zeros 0 through 23

h Gi theo kiu 12 gi, leading zeros 01 through 12

H Gi theo kiu 24 gi, leading zeros 00 through 23

i Pht, leading zeros 00 to 59

s Giy, with leading zeros 00 through 59

u Microseconds (t PHP 5.2.2) Example: 654321

4. strtotime ( string $time [, int $now ] )

Now: <? echo strtotime("now");?> <br />


+1 day: <? echo date("d/m/Y H:i:s", strtotime("+1 day") );?> <br/>
+1 week: <? echo date("d/m/Y H:i:s", strtotime("+1 week") );?> <br/>
next Thursday: <? echo date("d/m/Y", strtotime("next Thursday") )?> <br />
last Monday: <? echo date("d/m/Y", strtotime("last Monday") )?> <br />
10 September 2000: <?=date("d/m/Y",strtotime("15 July 1990") )?><br/>

IV. Cc hm qun l file


1. basename
C php: string basename ( string $path, string $suffix)

$filename = "/php01/test/ham.php";
echo basename($filename);

2. filesize
C php: int filesize ( string $filename )

$filename = "dendamuoi.html";
echo filesize($filename).' bytes';

3. file_exists
C php: bool file_exists ( string $filename )

$f = "a.jpg";
if (file_exists($f)==true) echo "C file"; else echo "Khng c file";

4. fopen
C php: resource fopen ( string $filename , string $mode)
Trong : $filename l tn file hoc URL, $mode l ch m file

mode M t

'r' M ch c file; t con tr u file

'r+' M c v ghi file; t con tr u file

'w' M ch ghi file; t con tr u file, nu file cha c s to ra

'w+' M c v ghi file; t con tr u file, nu file cha c s to ra

'a' M ghi file; t con tr cui file, nu file cha c s to ra.


mode M t

'a+' M c v ghi file; t con tr cui file, nu file cha c s to ra.

5. fclose
C php: bool fclose ( resource $handle )

$filename = "readme.txt";
$f = fopen($filename,"r+");
$str = fread($f, filesize($filename) );
fclose($f);
echo $str;

6. unlink
C php: bool unlink ( string $filename )

unlink("readme2.txt");

7. mkdir
bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false]] )
$pathname: Tn folder
$mode: quyn truy cp vo folder (777 l cao nht), trn window, thng s ny php b qua
$recursive: nu l true, php s to folder con

mkdir("hinh/dulich",0777,true);

8. copy
C php: bool copy ( string $source , string $dest)

copy("readme.txt", "readme2.txt") ;

9. rename
C php: bool rename ( string $oldname , string $newname)

rename("readme.txt","abc.txt");

10. file_get_contents
C php: string file_get_contents ( string $filename)

$str = file_get_contents("readme2.txt");
echo $str;

11. file_put_contents
C php: int file_put_contents ( string $filename , mixed $data [, int $flags = 0] )
Nu file cha c, s c to ra. Ngc li file s b ghi tr phi bin $flag c gi tr l
FILE_APPEND

$filename = 'counter.txt';
$str = "19686";
file_put_contents($filename, $str);//Nu c c FILE_APPEND th str s
thm vo file

V. To hm mi trong php
1. Khai bo
function <Tn hm>(<tham s 1>,<tham s 2>,...){
........
[return gi tr;]
}

2. V d 1: Hm ct du ting vit
<?php
function stripUnicode($str){
if(!$str) return false;
$unicode = array(
'a'=>'||||||||||||||||',
'A'=>'||||||||||||||||',
'd'=>'', 'D'=>'',
'e'=>'||||||||||',
'E'=>'||||||||||',
'i'=>'||||', 'I'=>'||||',
'o'=>'||||||||||||||||',
'O'=>'||||||||||||||||',
'u'=>'||||||||||',
'U'=>'||||||||||',
'y'=>'||||',
'Y'=>'||||'
);
foreach($unicode as $khongdau=>$codau) {
$arr=explode("|",$codau);
$str = str_replace($arr,$khongdau,$str);
}
return $str;
}
?>

3. V d 2: Hm ly a ch ca trang hin hnh


<?php
function curPageURL() {
$url = 'http://'.$_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
return $url;
}
?>

4. V d 3: Hm tr v 1 chui ngu nhin


<?php
function chuoingaunhien($sokytu){
$chuoi="ABCDEFGHIJKLMNOPQRSTUVWXYZWabcdefghijklmnopqrstuvwxyzw0123456789";
for ($i=0; $i < $sokytu; $i++){
$vitri = mt_rand( 0 ,strlen($chuoi) );
$giatri.= substr($chuoi,$vitri,1 );
}
return $giatri;
}
?>

5. V d 4: Hm tr v thi im hin hnh bng ting vit


<?php
function LucNayLa() { // Chuyn gi h thng sang ting Vit
$anh = array("Mon","Tue","Wed","Thu","Fri","Sat","Sun","am","pm",":");
$viet = array ("Th hai","Th ba","Th t","Th nm","Th su","Th by",
"Ch nht", " pht, sng", " pht, chiu", " gi " );
$timenow = gmdate("D, d/m/Y - g:i a.", time() + 7*3600);
$t = str_replace( $anh, $viet, $timenow);
return $t;
} ?>

6. Phm vi bin
Phm vi bin l phm vi bin xc nh. Trong PHP, bin c 3 phm vi:
a. Local variables - Bin cc b:
- Khai bo trong hm
- C tc dng t khi khi to n ht hm.
b. Global variables - Bin ton cc:
- Khi to ngoi hm
- C tc dng t khi khi to n ht file tr trong hm.
- a 1 bin ton cc vo trong hm, s dng khai bo
global $bin1 , $bin2,; hoc
$GLOBALS[bin]=gi tr;
c. Super Global Variables:
L nhng bin c sn ca PHP nh $_SERVER, $_SESSION, $_COOKIE,...
V d :
<?php
$a=5; $b=10; $c=15;
function aa() {
$a++; echo "Trong hm, bin a = " ,$a,"<br>";
global $b; $b++;
$GLOBALS['c']=20;
}
aa(); // Trong hm, bin a = 1
echo "Ngoi hm, bin a = ", $a,"<br>"; // Ngoi hm, bin a = 5
echo "Ngoi hm, bin b = ", $b,"<br>"; //Ngoi hm, bin b = 11
echo "Ngoi hm, bin c = ", $c,"<br>"; // Ngoi hm, bin c = 20
?>

7. S dng hm vi include/require
- Ngi ta thng a cc hm c cng 1 loi (nh x l chui, tnh ton, tin t, bo
mt) vo 1 file php ring v a vo trang web khi cn dng.
- C php:
include "TenFile ; hoc
require "TenFile ; hoc
include_once "TenFile ; hoc // m bo include ch 1 ln
require_once "TenFile ;

- Tnfile thng l file php, cng c th l file html


8. Bi tp
Vit hm tn changeTitle thc hin nhim v sau: (Tham s l 1 chui)
- Ct b du ting vit
- Ct b cc du ? , &, '
- Ct b 2 khong trng lin tip thnh 1 khong trng
- Ct b khong trng u v cui chui
- i k t u mi t thnh ch hoa, cc k t khc l ch thng
- Thay cc khong trng bng du

VI. Array
1. Khai bo dy
$TnDy=array(); // khai bo dy rng
$TnDy=array(gi tri 1, gi tr 2,); //khai bo dy c cc phn t nh bng ch s
$ TnDy =array("key1" =>gi tr 1, "key2" => gi tr 2, "key3" => gi tr 3); // dy dng
key
V d:
$giohang=array(); //khai bo dy rng
$diem=array(0,5,7); // 3 phn t ch s l 0,1,2.

$sanpham=array("idSP"=> 5,"TenSP"=> "Go","Gia"=>12000);


$diem[]=9; //Thm 9 vo cui dy $diem=array(0,5,7,9)

$sanpham["SoLuong"]=3; //thm 3 lm phn t cui ca dy, key l SoLuong

2. Truy xut phn t dy


$ TnDy[chiso] ; hoc $ TnDy["key"] ;
echo $diem[1]. "<br/>"; //5

echo $sanpham["TenSP"]; //Go


3. Duyt qua dy
a. Duyt qua cc phn t ca dy dng vng lp for :
Vi array m cc phn t c nh ch s lin tc nhau, dng vng lp for nh sau :
$soluong=array(8,10,9) ;
for ( $i=0 ; $i<count($giatri) ; $i++ ) {
echo "Gi tr th $i l $soluong[$i]<br>";
}

b. Duyt qua cc phn t dng vng lp while :


Lit k cc phn t ca dy c ch s dng key
V d 1 :
$sanpham=array("idSP" =>5, "TenSP"=>"Go", "Gia"=>12000, "SoLuong"=>3);
reset($sanpham);
while (key($sanpham) != null) {
echo key($sanpham) . " = " . current($sanpham) . "<br/>";
next($sanpham);
}

V d 2:

<? $sanpham=array('idSP'=>5, 'TenSP'=>'Go', 'Gia'=>12000,


'SoLuong'=>3);
reset($sanpham);
?>
<table border=1 width=200>
<?php while (key($sanpham) != null) { ?>
<tr> <td><?php echo key($sanpham); ?> </td>
<td><?php echo current($sanpham); ?> </td>
</tr>
<?php next($sanpham); ?>
<?php }?>
</table>

c. Duyt qua cc phn t dng vng lp foreach:

<? $daySP=array("5"=>"Mm","3"=>"Mui","1"=>"Go","4"=>"Da"); ?>


<table border=1 width=200>
<tr> <th>idSP</th> <th> TnSP </th> </tr>
<?php foreach ($daySP as $k => $v ) { ?>
<tr> <td> <?=$k?> </td> <td> <?=$v?> </td> </tr>
<?php } ?>
</table>

4. Cc hm x l dy
a. Count
- C php: count($day);

$a[0] = 1; $a[1] = 3; $a[2] = 5;


echo $result = count($a); // $result == 3

b. current /next/prev/reset:
- current($day) Tr v gi tr ca phn t hin hnh
- key($day) Tr v key ca phn t hin hnh
- next($day) a con tr ti phn t tip theo ca dy
- prev($day) a con tr ti phn t tip theo ca dy
- reset($day) a con tr v phn t u ca dy
- end($day) a con tr v phn t cui ca dy
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport); // $mode = 'bike';
$mode = current($transport); // $mode = 'bike';
$mode = prev($transport); // $mode = 'foot';
$mode = end($transport); // $mode = 'plane';
$mode = current($transport); // $mode = 'plane';

c. sort
- C php: sort($dy[,$sort_flags]);
sort_flags = SORT_REGULAR : Sp bnh thng (khng chuyn kiu)
= SORT_NUMERIC : so snh kiu s
= SORT_STRING : So snh kiu chui
<?php
$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
foreach ($fruits as $key => $val)
echo "fruits[" . $key . "] = " . $val . "<br/>";
?>

- Kt qu :
fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange
d. in_array
- C php: bool in_array(gi tr tm, $dy,$kieu);
- V d 1:
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) echo "Got Irix"."<br/>";
if (in_array("mac", $os)) echo "Got mac"."<br/>";

Kt qu : Got Irix
- V d 2:
$a = array('1.10', 12.4, 1.13);
if (in_array('12.4', $a, true)) echo "'12.4' found <br/>";
if (in_array(1.13, $a, true)) echo "1.13 found <br/>";

Kt qu : 1.13 found
e. array_search
- C php: array_search ( mixed $needle, array $haystack [, bool $strict] )
- Nu strict l TRUE th hm s test kiu ca gi tr tm
$array = array(0=> 'blue', 1=> 'red', 2=> 'green', 3=> 'red');
$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array); // $key = 1;

5. array_key_exists:
- C php: bool array_key_exists ( mixed $key, array $search )
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array))
echo "The 'first' element is in the array";

VII. Ly thng tin ca client v server


- $_SERVER['HTTP_HOST'] / $_SERVER['SERVER_NAME']: Tn domain.
- $_SERVER['PHP_SELF']: Tn file nm trn folder gc ca website.
- $_SERVER['DOCUMENT_ROOT']: Folder gc ca website, ni m file script ang thc
thi.
- $_SERVER['HTTP_USER_AGENT'] : Cho bit trnh duyt m user ang dng.
- $_SERVER['HTTP_REFERER']: a ch ca trang web m t user link n trang ny.
- $_SERVER['REMOTE_ADDR']: a ch ca my client, ni ngi s dng ang duyt web.
- $_SERVER['SCRIPT_FILENAME']: ng dn tuyt i ca file script ang chy.
V d:
echo 'HTTP_HOST: '. $_SERVER['HTTP_HOST'].'<br>';
echo 'PHP_SELF: '. $_SERVER['PHP_SELF'].'<br>';
echo 'DOCUMENT_ROOT: '. $_SERVER['DOCUMENT_ROOT'].'<br>';
echo 'HTTP_USER_AGENT: '. $_SERVER['HTTP_USER_AGENT'] .'<br>';
echo 'HTTP_REFERER: '. $_SERVER['HTTP_REFERER'].'<br>';
echo 'REMOTE_ADDR: '. $_SERVER['REMOTE_ADDR'].'<br>';
echo 'SCRIPT_FILENAME: '. $_SERVER['SCRIPT_FILENAME'] .'<br>';

VIII. Httpheader
1. Gii thiu
http header l cc thng tin iu khin nm trong cc http request , http response. Cha cc
cc ch th bo cho trnh duyt/server bit cch x l thng tin.
2. Xem http header
Bnh thng bn khng thy http header, do y l phn giao tip gia webserver v
browser. Mun xem http header, bn ci thm add on FireBug cho Firefox (c th dng tool
khc nh http watcher)
3. Cc header request

Header Description V d

Accept Nhng kiu d liu m browser c th chp nhn Accept: text/plain

Khi ch ra l gzip th server s nn d liu html trc Accept-


Accept-Encoding
khi gi cho client, gip gim kch thc d liu. Encoding: compress, gzip

Content-Type mime type ca d liu trong request (dng vi POST) Content-Type:


application/x-www-
form-urlencoded

Cookie: $Version=1;
Cookie Danh sch nhng bin cookie c to trc y
Skin=new;

Host l a ch server ang truy cp

Nu d liu c cache browser, khi truy cp li


ln na th browser s gi thng tin ny n server.
If-Modified-Since:
Server s kim tra xem d liu c thay i hay khng,
If-Modified-Since Sat, 29 Oct 1994
nu khng thay i th s gi cho browser status code l
19:43:31 GMT
304 Not Modified, v browser s dng d liu trong
cache.

Referer:
Referer a ch ca trang web m t link n trang hin ti http://en.wikipedia.
org/wiki/Main_Page

User-Agent:
User-Agent Thng tin v browser, h iu hnh Mozilla/5.0 (Linux;
X11)

4. Cc response header

Header Description Example

Bo browser l c cache d liu hay khng, nu Cache-Control: no-


Cache-Control
khng mun cache th ch nh l no-cache cache

Content-Encoding Kiu nn d liu gi v cho browser Content-Encoding: gzip

Kch thc ca response body, browser da vo


Content-Length thng tin ny bit c tin ca vic Content-Length: 348
download file.

Content-Disposition:
Nu thy ch th ny, browser s m hp thoi
Content-Disposition attachment;
Save file.
filename=fname.ext

Content-Type:
Content-Type Kiu MIME ca ti liu text/html;
charset=utf-8
Expires: Thu, 01 Dec
Expires Thi im m sau ni dung tr v s qu hn
1994 16:00:00 GMT

Last-Modified: Tue, 15
Last-Modified Thi im modified sau cng ca ti liu.
Nov 1994 12:45:26 GMT

Location Chuyn hng sang trang khc Location: index_vn.php

Refresh: 5;
Refresh Np trang web sau khong thi gian (s giy) url=http://www.w3.org/
pub/WWW/People.html

5. Mt vi status code thng gp


200: OK, c gi trong response khi request thnh cng.
404: Not Found: trang web khng tm thy.
500: Internal server error: l li pht sinh trn server, y l li rt kh fix, do nhiu nguyn
nhn, thng phi xem log trn server hoc d li code ca bn bit chnh xc l li g.
6. Cc ng dng ca HTTP Header
a. Redirection
- Dng yu cu trnh duyt chuyn sang trang web khc.
- C php: header("location:url");
- V d :

if (date('H')<=12) header('location:index1.html');
else header('location:index2.html');

7. Content-type
- Dng bo cho browser bit kiu d liu m webserver ang tr v cho browser.
- C php: header('Content-type:MimiType);
- Mt s kiu Mimtype

Extension Type/sub-type

doc application/msword

bin , exe application/octet-stream

gif image/gif
htm, html text/html

ico image/jpeg

jpeg, jpg audio/mpeg

mp3, mpeg, mpg application/vnd.ms-powerpoint

ppt application/vnd.ms-excel

xls application/zip

zip

- V d:
header("content-type:image/jpeg");
$f = fopen("a.jpg","r");
$str = fread($f , filesize("a.jpg");); fclose($f);
echo $str;

8. Content-disposition
- C php: header('Content-disposition: attachment; filename="'.$filename.'"');
- Bo cho browser bit l hy m khung save file
- V d :
header('Content-disposition:attachment;filename="TiengGaTrua.mp3"');
header("Content-type:audio/mpeg");
$filename = "TiengGaTrua_TCS.mp3";
$f = fopen($filename,"r");
$str = fread($f, filesize($filename) ); fclose($f);
echo $str;

IX. Cookie
1. Gii thiu
- Cookie dng lu nhng thng tin v user. Cookie c lu trong my client v do
browser qun l
- Mi ln request 1 trang web, browser s gi cc bin cookie ang c ln webserver nu
bin cha qu hn.
2. To cookie
- setcookie("TenCookie",gi tr [,Thi im qu hn]);
- Nu khng ch nh thi im qu hn th cookie s lu trong b nh. V s mt khi user
ng browser. Nu c khai bo thi im qu hn, cookie s ghi trong file v browser ch
xa khi qu thi hn.
3. S dng cookie
- $_COOKIE l dy ton cc c sn trong php, dng cha cc cookie gi t browser.
- C php s dng bin cookie: $_COOKIE["TnBin"]
4. V d
- To file setcookies.php v code dng u:
setcookie("un", "Nguyen Van Teo", time()+60*60*24*30);
setcookie("last", time(), time()+60*60*24*30);

- To file viewcookie.php v code:


if (isset($_COOKIE["un"])==true) echo "Cho bn " . $_COOKIE["un"] ."<br/>";
else echo "Cho qu khch";
echo 'Bn vo site ln cuilc '. date('d/m/Y
H:i:s',$_COOKIE['last']).'<br>';
print_r($_COOKIE); // Xem mi cookie

- Xem th, bn thy gi tr 2 cookie

X. Session
1. Gii thiu
- Session l i tng trn server, cha thng tin ca tng user
- Mi user c vng session ring, khc bit vi nhng user khc
- Cu trc vng session ca mi user l ging nhau (ch khc gi tr cc bin).
2. Khai bo v s dng
- $_SESSION["TnBin"]
- V d:

<?php $_SESSION["login"]=1 ; // mi trang u c c ?>

3. V d

echo ++$dem,"<br/>";
echo ++$_SESSION['count'];
if ($_SESSION['count']>=50) unset($_SESSION['count']);

XI. CC HM DATABASE
hin th d liu t database ra web, ba cng on bn phi thc hin
- Kt ni : bao gm kt ni database (hm mysql_connect, mysql_pconnect), chn databse, ch
nh bng m
- Ly d liu:Vit cu lnh SQL v dng hm mysql_query thc thi, nhn kt qu
- Hin th d liu: Trch tng dng d liu ly c a ra trang web, c th lp hin hit
d liu
1. Kt ni CSDL
mysql_connect(<host>, <username>,<password>);
mysql_pconnect(<host>, <username>,<password>);
Hai hm ny dng kt ni n MySql Server . Trong :
- host:a ch ca my ci MySQL (tn hoc IP). nu l my ni b th dng localhost
- username, password: L ti khon v mt khu kt ni
Hm tr v 1 connection hoc gi tr false nu khng kt ni c
V d: $conn=mysql_connect("localhost","root","root");
2. Chn CSDL s dng
mysql_select_db(<TnDatabase> [,TenKetNoi]);
MySQL Server c th cha nhiu CSDL, hm ny dng chn CSDL
Trong : TnDatabase: l tn c s d liu mun dng, TnKtNi l bin connection tr
v do hm mysql_connect. Tn kt ni c th b qua cng c. V d:
mysql_select_db("webtintuc",$conn); hoc
mysql_select_db("webtintuc");
Ch : Dng thm lnh sau n nh bng m utf8:
mysql_query("SET NAMES 'utf8'", $conn);
3. Thc thi cc cu lnh truy vn
mysql_query(CuLnhSQL);
- Hm tr v true nu cu lnh truy vn thc thi thnh cng (tr cu lnh select)
- Hm tr v 1 recordset (bng d liu) nu cu lnh select thc thi thnh cng
- Hm tr v false nu cu lnh truy vn khng c thc hin
V d:
$rsLT=mysql_query("SELECT * FROM loaitin");
$result=mysql_query("DELETE FROM loaitin WHERE idLT=100"); //result s true hoc false
4. m s record trong recordset
mysql_num_rows($TenRecoret);
V d: echo mysql_num_rows($kq);
5. Duyt recordset
$kq= mysql_fetch_assoc($TenRecordSet);
- Hm tr v thng tin ca record hin hnh (hoc gi tr false nu record rng), ng thi di
chuyn con tr sang record k
- Mun hin d liu ca field no th ghi nh sau $kq['TenField']
- V d1 :
<?php mysql_connect("localhost","root","root");
mysql_select_db("tintuc");
mysql_query("SET NAMES 'utf8' "); ?>
<?php $sql = "SELECT idTL, TenTL FROM theloai";
$theloai = mysql_query($sql) or die( mysql_error() );
$sotheloai = mysql_num_rows($theloai); ?>
S th loi: <?=$sotheloai; ?> <br>
<?php while ( $row_theloai = mysql_fetch_assoc($theloai) ) {?>
<p> <?=$row_theloai['TenTL'];?> </p>
<?php } ?>

6. Ly ID va mi cp nht
mysql_insert_id();
Trong 1 bng , nu kha chnh c khai bo theo kiu auto_increament th sau khi thm
mi record, c th ly gi tr va mi cp nht bng hm ny.
7. Thng bo li ca MYSQL
mysql_error();
8. Nhy n 1 record trong recordset
mysql_data_seek($TenRecordset, ThuTuRecord);
V d: mysql_data_seek($rdLT, 0);
XII. C ch ng nhp, thot, hn ch truy cp
Mun thc hin chc nng ng nhp, trong database ca bn phi c 1 table cha danh sch
users. Table ny cha t nht l cc ct; idUser, Username, Password. Thc t bn phi to thm
nhiu ct cha thng tin user na nh: Email, idGroup Cc bc x l bao gm:
1. To form ng nhp: form c ch g username, password, bt sumit, ghi nh pass
2. X l khi submit:
- Kim tra user, password c ng khng
- To cc bin session nh du ngi ng nhp nu ng user, pass.
- Chuyn sang trang c hoc sang trang ch
3. Hn ch truy cp vo trang
- Kim tra cc bin session to lc login xem c tn ti khng, nu khng c th chuyn
sang trang ng nhp
4. To trang thot
- Xa cc bin session to lc ng nhp
- Chuyn sang trang ch hoc trang ng nhp
1. To form ng nhp
To trang php tn dangnhap.php v to form nhs sau: (2 textfield t tn l u, p)

2. X l khi user submit

session_start();
$u = $_POST['u']; $p = $_POST['p'];
if (get_magic_quotes_gpc()==false) {
$u = trim(mysql_real_escape_string($u));
$p = trim(mysql_real_escape_string($p));
}
$sql="SELECT * FROM users WHERE username='$u' AND password ='$p'";
$user = mysql_query($sql) or die (mysql_error());
$row_user = mysql_fetch_assoc($user);
if (mysql_num_rows($user)==1) {//Thnh cng
$_SESSION['login_id']=$row_user['idUser'];
$_SESSION['login_user']=$row_user['Username'];
$_SESSION['login_level']=$row_user['idGroup'];
if ( strlen($_SESSION['back']) > 0 ){
$back= $_SESSION['back']; unset($_SESSION['back']);
header("location:$back");
} else header("location: index.php");
} else header("location: dangnhap.php"); //Tht bi

3. Hn ch truy cp vo trang
- To trang download.php v g vo trong body:
Y L TRANG DOWNLOAD SOFTWARE, CH HIN KHI USER LOGIN
<p> <?php echo "Cho bn " . $_SESSION['login_user']; ?> </p>
<p> <a href=thoat.php> Thot </a> </p>

- Trang ny bn ch hin ra khi user ng nhp, vy code sau phi t u trang:

session_start();
if (isset($_SESSION['login_id'])==false) {
$_SESSION['back']= $_SERVER['REQUEST_URI'];
header("location:dangnhap.php");
exit();
}

4. To chc nng thot

session_start();
session_destroy();
header("location: dangnhap.php");
LP TRNH HNG I TNG

I. Tng quan
1. Gii thiu
Lp trnh hng i tng l k thut gip n gin ha phc tp ca cng vic khi bo
tr cng nh m rng phn mm bng cch i tng ho cc i tng d liu cn x l.
Mi i tng c mt tn ring v tt c cc tham chiu n i tng c tin hnh qua
tn ca n. Mi i tng c kh nng nhn vo cc thng bo, x l d liu (bn trong ca
n), v tr li n cc i tng khc hay n mi trng.
Mi i tng c chia thnh hai phn chnh: cc phng thc (method) v cc thuc tnh
(property). Cc phng thc ca i tng l cc hm v cc thuc tnh ca n l cc bin,
hng.
Tp hp cc gi tr hin c ca cc thuc tnh to nn trng thi ca mt i tng.
Mi d liu ni ti c xem l mt c tnh ring ca i tng.
2. Cc tnh cht c bn ca lp trnh hng i tng
Tnh tru tng (abstraction): l cch thc khng ch n gi tr c th ca thng tin m
n lm vic. Mi i tng c th hon tt cc cng vic mt cch ni b, bo co, thay i
trng thi ca n v lin lc vi cc i tng khc m khng cn cho bit lm cch no m
n thc hin c cc thao tc.
Tnh ng gi (encapsulation) v che du thng tin (information hiding): Tnh cht ny
khng cho php ngi s dng cc i tng thay i trng thi ni ti ca i tng. Ch c
cc phng thc ni ti ca i tng c php thay i trng thi ca n. Vic cho php
bn ngoi tc ng ln cc d liu ni ti ca mt i tng theo cch no l hon ton ty
thuc vo ngi vit m. y l tnh cht m bo s ton vn ca i tng.
Tnh a hnh (polymorphism): Th hin thng qua vic gi cc hm trong mt i tng.
Cc phng thc dng tr li cho mt li gi s ty theo i tng gi m phn ng khc
nhau. Ngi lp trnh c th nh ngha mt phng thc cho mt lot cc i tng gn
nhau nhng khi thi hnh th dng cng mt tn gi m s thi hnh ca mi i tng s t
ng xy ra tng ng theo c tnh ca tng i tng m khng b nhm ln.
Th d khi nh ngha hai i tng "hinh_vuong" v "hinh_tron" th c mt phng thc
chung l "chu_vi". Khi gi phng thc ny th nu i tng l "hinh_vuong" n s tnh
theo cng thc khc vi khi i tng l "hinh_tron".
Tnh k tha (inheritance): cho php mt i tng c th dng cc phng thc c sn
thng qua k tha. iu ny cho php cc i tng chia s hay m rng cc phng thc
sn c m khng phi tin hnh nh ngha li.
3. Cc khi nim
1. Lp (class)
Mt lp bao gm cc thuc tnh v cc phng thc c nh ngha sn to ra cc
i tng sau ny. Khi 1 i tng c to theo mt lp, n c tt c cc thuc tnh v
phng thc khai bo trong lp. Lp l s tru tng ha ca i tng.
Nh vy, c c cc i tng th bn cn phi thit k lp ca cc i tng
bng cch xy dng cc thuc tnh v cc phng thc.
2. Lp con (subclass)
Lp con l mt lp thng thng nhng c thm tnh cht k tha mt lp khc. Lp m
chia s s k tha gi l lp cha (parent class).
3. Lp tru tng (abstract class)
Lp tru tng l mt lp m n khng th thc th ha thnh mt i tng. Lp ny
c thit k nhm to ra mt lp c cc phng thc tng qut nhm mc ch m t
cc class con.
4. Phng thc (method)
L hm ni ti ca mt lp (hay mt i tng). Mi phng thc cn c gi l hm
thnh vin. C vi phng thc c bit:
Hm __construct l hm chy t ng lc to 1 i tng t\da trn class
Hm __destruct l hm chy t ng khi hu i tng
5. Thuc tnh (attribute)
Thuc tnh ca mt lp bao gm cc bin, cc hng
6. Thc th (instance)
Thc th (instantiate) l i tng c to ra da theo hnh mu ca 1 lp khai bo
trc (i tng c xem nh l mt bin).
Ni cch khc: mt lp khi c thc th ha s thnh mt i tng. Hai thc th ca
cng mt lp c th c trng thi ni ti khc nhau, hon ton c lp nhau.
7. Cng cng (public)
Public l mt tnh cht c dng gn cho cc phng thc, cc bin ni ti, hay cc
lp m khi khai bo s cho php s dng n t bn ngoi lp
8. Ring t (private)
Khi dng tnh cht ny cho bin, phng thc th bin hay phng thc ch c th
c s dng bn trong lp m chng c nh ngha. Bn ngoi khng dng c.
9. Bo v (protected)
Khi p dng tnh cht protect cho cc phng thc, cc bin ni ti, hay cc lp th ch c
trong ni b ca lp hay cc lp con ca n c php gi n hay dng n
So vi private th protect rng ri hn v ngha chia s d liu hay chc nng.
10. a k tha (multiple inheritance)
y l mt tnh cht cho php mt lp con c kh nng k tha cng lc nhiu lp khc.
Vi im cn lu khi vit m dng tnh cht a k tha:
Khi mun k tha t nhiu lp cha th cc lp ny cn phi c lp v c bit tn ca
cc d liu hay hm cho php k tha phi c tn khc nhau trnh li "ambiguilty".
Bi v lc s khng xc nh c l lp con s tha k tn no ca cc lp cha.

II. To class v s dng


1. Khai bo lp
<?php
class Tn_Lp {
[tinhchat] $bien1; //cac thuoc tinh (properties)
[tinhchat] $bien2;

[tinhchat]function ten1(){ // cac phuong thuc (method)

}
[tinhchat]function ten2(){

}

}
?>

[tinhchat] c th l private, public...

2. To th hin ca lp
Dng t kho new, tip l tn lp:
$TniTng = new Tn_Lp([thamso]);
3. Truy xut thuc tnh ca lp
truy cp thuc tnh hay phng thc ca lp, bn dng ton t -> vi c php nh sau:
- Bn trong lp : $this -> $TnThucTnh
- Bn ngoi lp : $TniTng -> $TnTthucTnh
III. V d
1. V d 1
<?php
class hocsinh {
public $HoTen;
public $NgaySinh;
}
$teo = new hocsinh;
$teo -> HoTen = "Nguyn Vn To";
$teo -> NgaySinh = "1/1/2000";
echo "H tn: " , $teo -> HoTen , "<br/>";
echo "Ngy sinh: " , $teo -> NgaySinh , "<br/>";
?>

2. V d 2
<?php
class hocsinh {
public $HoTen;
public $ngay_sinh;
public function set ($ht , $ns) {
$this -> HoTen= $ht;
$this -> NgaySinh=$ns;
}
}
$teo = new hocsinh;
$teo -> set("Nguyn Vn To" , "25/7/2003");
echo "H tn: " , $teo -> HoTen , "<br/>";
echo "Ngy sinh: " , $teo -> NgaySinh , "<br/>";
?>

3. V d 3
Khi khai bo mt lp, c th thit lp gi tr ban u cho cc thnh vin trong lp . V d:
<?php
class hocsinh {
public $HoTen = "Nguyn Vn To";
public $NgaySinh = "1/1/2000";
public function set($ht , $ns) {
$this -> HoTen = $ht;
$this -> NgaySinh = $ns;
}
}
$teo=new hocsinh;
echo "H tn: " , $teo -> HoTen , "<br/>";
echo "Ngy sinh: " , $teo -> NgaySinh , "<br/>";
?>

Mt thnh vin trong lp c th ch dng c trong lp , c th truy xut c t bn


ngoi, hoc t cc lp con ty thuc vo khai bo ca bn:
- public: ch ny, cc thnh vin s c truy xut trong v ngoi lp cha n.
- private: ch ny, cc thnh vin s ch truy xut c bn trong lp cha n.
- protected: c dng gii hn truy cp ti cc lp c tha k v bn thn lp nh
ngha thnh vin .
4. V d 4

<?php
class Test{
public $public = 'Public_Parent';
protected $protected = 'Protected_parent';
private $private = 'Private';
public function hiendata() {
echo $this->public,"<br/>";
echo $this->protected,"<br/>";
echo $this->private,"<br/>";
}
}

$obj = new Test ();


echo $obj->public,"<hr/>"; // ok
echo $obj->protected; // li
echo $obj->private; // li
$obj-> hiendata(); // ok
?>

5. V d 5

<?php
class Test2 extends Test {
protected $protected = 'Protected_Sub';
function hiendata() {
echo $this->public,"<br/>"; ;
echo $this->protected,"<br/>"; ;
echo $this->private,"<br/>"; ;
}
}

$obj2 = new Test2();


echo $obj2->private,"<br/>"; // Cha c nh ngha
echo $obj2->protected; // li
$obj2-> hiendata(); // Hin th Public, Protected2, not Private
?>

Mc nh, nu bn khng quy nh, cc thnh vin s ch public.


6. Construct
__construct l mt phng thc c bit, s c gi t ng khi i tng c to ra
<?php
class A{
function __construct(){echo "Init"; }
}
$a = new A();
?>

7. Hm hy: __destruct()
__destruct l phng thc t ng chy khi i tng b hy. vd:
<? class test{
function __construct(){ echo "doi tuong duoc tao<br>"; }
function __destruct(){ echo "doi tuong bi huy<br>"; }
}
$t = new test();
echo "Chao Ban<br>";
unset($t);
echo "Tam Biet<br>";
?>

8. Chng hm
L trng hp lp cha v lp con c cng tn hm (phng thc). Vic khai bo trng tn
hm cho php bn nh ngha li cc hm trong lp cha bng cc hm cng tn trong lp con
nhng hai hm ny c hai chc nng hon ton khc nhau. K thut cn gi l a hnh do
chng to ra nhiu hnh thi khc nhau cc lp tha k.
Khi to i tng theo lp con, ch c th dng hm trong lp con.
V d:
<? class lopcha {
var $x="y l bin x trong lp cha<br/>";
function abc() { echo $this->x; }
}
class lopcon extends lopcha {
var $y="y l gi tr trong lp con";
function abc(){ echo $this->y; }
}
?>

<?php
$test = new lopcon();
$test -> abc();
?>

Khi cn dng hm ca lp cha, bn dng ton t ::


<?php
class lopcha {
var $x="y l bin x trong lp cha<br/>";
function abc() { echo $this->x; }
}
class lopcon extends lopcha {
var $y="y l gi tr trong lp con";
function abc(){
parent::abc();
echo $this->y;
}
}
?>
<?php
$test = new lopcon();
$test -> abc();
?>

hoc:
<?php
class sv{
var $khoa;
var $ten;
var $ngaysinh;
function sv(){
$this->khoa = "Cng ngh thng tin";
}
function getInfor(){
echo "Khoa: ".$this -> khoa."<br>";
echo "Ten: ". $this -> ten."<br>";
echo "Ngay sinh: ". $this -> ngaysinh ."<br>";
}
}
class svgioi extends sv{
var $hocbong;
function svgioi(){
$this->hocbong = "Nguyn Thi Bnh";
}
function getInfor(){
parent::getInfor();
echo "Hc bng: ".$this -> hocbong."<br>";
}
}

$t = new svgioi;
$t->ten = "Nguyn Vn To";
$t->ngaysinh = "1/1/2000";
$t->getInfor();
?>

9. Autoloading objects
Hm __autoload s t ng gi trong trng hp mt class cha nh ngha. V d
<?php
function __autoload($class_name) {
require_once $class_name . '.php';
}
$a = new lop1();
$b = new lop2();
?>

V d trn s t ng 2 file lop1.php v lop2.php. Ch : Chng ta s khng bt c li t


hm _autoload() trong catch block
10. Constants
C th nh ngha hng trong mt lp. Tn hng khng c trng tn vi bin, lp, hm.
Gi tr ca hng ch ly c qua ton t :: hoc thng qua mt phng thc.
V d:
<?php
class tinhtoan{
const pi = 3.14;
function sopi() {
echo tinhtoan::pi, "<br/>";
}
}
$ob = new tinhtoan;
$ob->sopi();
echo tinhtoan::pi;
?>

11. Abstraction
Cc lp c nh ngha abstract th n s khng cho php to cc instance. Cc phng thc
c nh ngha abstract ch n gin l vit m t phng thc , khng nh ngha chng,
ngha l bn ch khai bo tn hm m bn trong thn hm khng nh ngha g. V d:
<?php
abstract class lopmota{
abstract protected function printA();
abstract protected function printB();
public function showAll(){
$this->printA();
$this->printB();
}
}
class abc extends lopmota {
protected function printA(){ echo 'A'; }
protected function printB(){ echo 'B'; }
}
$ob = new abc;
$ob->showAll();
?>

Cc phng thc trong class lopmota ch ton l cc m t, trong lp tru tng ch m t


cu trc ca lp l chnh.
Khi mt lp k tha t mt lp abstract th tt c cc phng thc t lp con phi c kiu m
t ng vi kiu m t ca lp cha, trong v d trn phng thc printA()c m t l
protected trn c lp abstract v c lp k tha
12. Object Interfaces
Object Interfaces cho php bn ch nh phng thc no ca lp phi c. V d sau:
<?php
interface abc{
public function funcA();
public function funcB();
}

class myClass implements abc{


public function funcA(){ echo 'A'; }
public function funcB(){ echo 'B'; }
public function funC(){ echo 'All';}
}
$a = new myClass;
$a->funcA();
?>

Lp myClass phi c 2 hm l funcA() v funcB() nh trong interface ch nh, nu trong


lp khng c mt trong 2 hm c ch nh th s b bo li khi chy. Li bo nh sau
nu ta khng c hm funcB():

Fatal error: Class myClass contains 1 abstract method and must therefore
be declared abstract or implement the remaining methods (abc::funcB)
in ...

Ch :
- Tt c cc phng thc c m t trong interface phi c m t public
- Mt lp c th c nhiu interface nhng cc phng thc trong cc interface khng
c trng tn nhau. Vd:
<?php
interface abc{
public function funcA();
public function funcB();
}
interface xyz{
public function funcC();
public function funcD();
}
class myClass implements abc,xyz{
public function funcA(){ echo 'A'; }
public function funcB(){ echo 'B'; }
public function funC(){ echo 'All';}
public function funcC(){}
public function funcD(){}
}
$a = new myClass;
$a->funcA();
?>

13. Overloading
Tt c cc phng s dng gi hoc truy xut chng ta u c th overload qua cc
phng thc _call, _set, _get, _isset(), _unset(). Phng thc no mun overload phi public
v khng c nh ngha static.
Cc phng thc c overload c m t nh sau:
- void __set ( string $name, mixed $value ): Thc hin khi bn gn gi tr cho bin.
- mixed __get ( string $name ): Thc hin khi bn unset hoc gn gi tr mi cho bin.
- bool __isset ( string $name ): Thc hin khi bn dng phng thc isset()
- void __unset ( string $name ): Thc hin khi bn dng phng thc unset()
<?php
class myClass {
private $a = array("x" => 100, "y" => 200);
public function __get($key) {
echo "Ly gi tr ca $key <br>";
if (isset($this->a[$key])) {
$r = $this->a[$key];
echo "$key = $r <br>";
return $r;
} else echo "$key u c! <br>";
}
public function __set($key, $val) {
echo "Gn gi tr cho $key l $val <br>";
if (isset($this->a[$key])) {
$this->a[$key] = $val;
echo "OK! <br>";
} else echo "Khng c <br>";
}
public function __isset($key){
echo "Kim tra $key c gn gi tr cha <br>";
return isset($this->a[$key]);
}
public function __unset($key){
echo "Hu b $key <br>";
unset($this->a[$key]);
}
}
$obj = new myClass;
$obj->x = 300;
//echo "<hr>";
//echo $obj->x;
//echo "<hr>";
//isset($obj->x);
//echo "<hr>";
//unset($obj->x);
//echo "<hr>";
//$obj->x = 200;
?>
LAB KT NI DB

I. Class db
1. To file classDB.php

<?php
class db {

} //class db
?>

2. nh ngha cc atribute

public $result = NULL;


public $host="localhost";
public $user="root";
public $pass="root";
public $database="tintuc";

3. nh ngha 3 hm __construct, getdata v fetchRow

function __construct(){
mysql_connect($this->host, $this->user, $this->pass);
mysql_select_db($this -> database);
mysql_query("set names 'utf8'"); }
function getdata($sql) {
$this->result = mysql_query($sql);}
function fetchRow() {
$row = mysql_fetch_assoc($this->result);
return $row; }

To file test1.php

<?php
require_once "classDB.php";
$d = new db;
$d->getdata("select * from tin where TinNoiBat=1");
while ($row = $d->fetchRow() ) echo "<p>",$row['TieuDe'],"</p>";
?>
4. Hm TheLoai
Yu cu:

- Tn hm l TheLoai, c 2 tham s lang (mc nh l vi), AnHien (mc nh


l 1)
- Tr v cc th loi theo ngn ng v trng thi n hin thch hp
- Nu tham s lang truyn ti l rng th tr v mi ngn ng, AnHien
truyn ti l -1 th th loi n hay hin u tr v
- Sp theo th t tng dn

public function TheLoai($lang='vi' , $AnHien=1){


$sql="SELECT idTL, TenTL from theloai
WHERE (AnHien=$AnHien or $AnHien=-1)
AND(lang='$lang' or $lang'='')
ORDER BY ThuTu";
$kq = mysql_query($sql) or die(mysql_error());
return $kq;
}//TheLoai

To file test2.php

<?php
require_once "classDB.php";
$d = new db;
$kq = $d->TheLoai("", -1);
while ( $row=mysql_fetch_assoc($kq) ) echo $row['TenTL'],"<br>";
?>

5. Hm LoaiTin
Yu cu:

- Tn hm l LoaiTin, c 2 tham s lang (mc nh l vi), AnHien (mc nh


l 1)
- Tr v cc loi tin theo ngn ng v trng thi n hin thch hp
- Nu tham s lang truyn ti l rng th tr v mi ngn ng, AnHien
truyn ti l -1 th loi tin n hay hin u tr v
- Sp theo th t tng dn

public function LoaiTin ($lang='vi',$AnHien=1){


$sql="SELECT idLT, Ten FROM loaitin
WHERE (AnHien = $AnHien or $AnHien = -1)
AND (lang = '$lang' or '$lang'='')
ORDER BY Thutu";
$kq = mysql_query($sql) or die(mysql_error());
return $kq;
} //LoaiTin

To file test3.php

<?php
require_once "classDB.php";
$d = new db;
$kq = $d->LoaiTin('en');
while ( $row = mysql_fetch_assoc($kq) ) echo $row['Ten'],
"<br/>";
?>

6. Hm LoaiTinTrongTheLoai
Yu cu:

- Tn hm l LoaiTinTrongTheLoai, c 2 tham s idTL, AnHien (mc nh l


1)
- Tr v cc loi tin trong mt th loi v trng thi n hin thch hp
- Nu tham s AnHien truyn ti l -1 th loi tin n hay hin u tr v
- Sp theo th t tng dn

function LoaiTinTrongTheLoai($idTL,$AnHien=1){
settype($idTL, "int");
$sql = "SELECT idLT, Ten FROM loaitin
WHERE idTL=$idTL AND (AnHien=$AnHien or $AnHien=-1)
ORDER BY ThuTu ASC";
$kq = mysql_query($sql) or die(mysql_error());
return $kq;}

To file test4.php

<?php
require_once "classDB.php";
$d = new db;
$kq = $d->LoaiTinTrongTheLoai(11);
while ( $row = mysql_fetch_assoc($kq) ) echo $row['Ten'],"<br/>";
?>
7. Hm TinMoiTrong1Loai
Yu cu:

- Tn hm l TinMoiTrong1Loai, c 3 tham s $idLT, $startRow, $count


tr v cc tin mi trong 1 loi no , ly t dng $startrow, ly
$count tin
- Sp theo idTin gim dn

function TinMoiTrong1Loai($idLT,$startRow, $count){


$sql="SELECT idTin, TieuDe,TomTat,urlHinh
FROM tin WHERE AnHien =1 AND idLT = $idLT
ORDER BY idTin DESC LIMIT $startRow , $count";
$kq = mysql_query($sql) or die (mysql_error());
return $kq; }

To file test5.php

<?php
require_once "classDB.php";
$d = new db;
$kq = $d->TinMoiTrong1Loai(12,0,10);
while ( $row=mysql_fetch_assoc($kq)) echo $row['TieuDe'],"<br/>";
?>

8. Hm TinMoiTrongTheLoai
Yu cu:

- Tn hm l TinMoiTrongTheLoai, c 3 tham s $idTL, $startRow, $count


tr v cc tin mi trong 1 th loi no , ly t dng $startrow, ly
$count tin
- Sp theo idTin gim dn

function TinMoiTrongTheLoai($idTL,$startRow, $count){


$sql="SELECT idTin, TieuDe,TomTat,urlHinh
FROM tin WHERE AnHien =1 AND idTL = $idTL
ORDER BY idTin DESC LIMIT $startRow , $count";
$kq = mysql_query($sql) or die (mysql_error());
return $kq; }

To file test6.php

<?php
require_once "classDB.php";
$d = new db;
$kq = $d->TinMoiTrongTheLoai(3,0,5);
while ( $row=mysql_fetch_assoc($kq)) echo $row['TieuDe'],"<br/>";
?>

9. Hm changeTitle
Hm nhn tham s l 1 chui c c du, v s thc hin cc nhim v sau:
- Ct b du ting vit
- Ct b cc du ? , &, ' , ", +
- Ct b khong trng u v cui chui
- Ct b 2 khong trng lin tip thnh 1 khong trng
- i cc k t thanh ch thng
- Thay cc khong trng bng du

function changeTitle($str){
$str = $this->stripUnicode($str);
$arr = array("?","&","'",'"',"+");
$str = str_replace($arr,"",$str);
$str = trim($str);
while (strpos($str," ")>0) $str = str_replace(" "," ",$str);
$str = mb_convert_case($str , MB_CASE_ LOWER , 'utf-8');
$str = str_replace(" ","-",$str);
return $str;
}

function stripUnicode($str){
if(!$str) return false;
$unicode = array(
'a'=>'||||||||||||||||',
'A'=>'||||||||||||||||',
'd'=>'',
'D'=>'',
'e'=>'||||||||||',
'E'=>'||||||||||',
'i'=>'||||',
'I'=>'||||',
'o'=>'||||||||||||||||',
'O'=>'||||||||||||||||',
'u'=>'||||||||||',
'U'=>'||||||||||',
'y'=>'||||',
'Y'=>'||||'
);
foreach($unicode as $khongdau=>$codau) {
$arr = explode("|",$codau);
$str = str_replace($arr,$khongdau,$str);
}
return $str;
}

Test: test7.php

<?php
require_once "classDB.php";
$d = new db;
$str = "lP tRNh NG dnG";
echo $d->changeTitle($str);
?>
II. Trnh by d liu theo mu 1
Dng cc hm trong class db va to thc hin yu cu sau:
Ly loi tin, cc tin mi trong tng loi v trnh by theo yu cu
- Ly cc loi tin c hin (AnHien=1)
- Mi loi hin 5 tin mi
- Tin u trong mi loi hin y : Tiu , hnh, m t
- 4 tin k trong mi loi ch hin tiu , v hin icon nh trc mi tiu
- Tham kho hnh di:

III. Trnh by d liu theo mu 2


Ly loi tin, cc tin mi trong tng loi v trnh by theo yu cu
- Ly cc loi tin c hin (AnHien=1)
- Mi loi hin 5 tin mi
- Tin u trong mi loi hin y : Tiu , hnh, m t
- 4 tin k trong mi loi ch hin tiu , v hin icon nh trc mi tiu
- Cc loi tin hin thnh 2 ct
- Tham kho hnh di:

IV. Trnh by d liu theo mu 3


Ly th loi, loi tin trong tng th loi, 5 tin mi trong tng th loi v trnh by nh sau:
- Ly cc th loi c hin (AnHien=1)
- Mi th loi hin 5 tin mi
- Tin u trong mi th loi hin y : Tiu , hnh, m t
- 4 tin k trong mi th loi ch hin tiu , v hin icon nh trc mi tiu
- Bo trn gc nh hnh mu (dng jquery corner)
- Tham kho hnh di:

You might also like