Thu tti các file có dung ậả ượng ớ

Một phần của tài liệu HTML CĂN BẢN CHO NGƯỜI MỚI BẮT ĐẦU pptx (Trang 37 - 42)

X lý thm c, tp tin và các file upload ệ Ph n III T i file t máy khách lên máy ch ầảừủ

K thu tti các file có dung ậả ượng ớ

K thu t t i file trình bày trên s b gi i h n trên nhi u phỹ ậ ả ở ẽ ị ớ ạ ề ương di n: Khi t i file l n, th i gian t iệ ả ớ ờ ả lâu s gây hi n tẽ ệ ượng script timeout, đường truy n có th b ng t, ngh n, b gi i h n kích thề ể ị ắ ẽ ị ớ ạ ướ ảc t i trong file php.ini (thường có kích thướ ốc t i đa kho ng 2 MB)...ả

Đ t i các file có dung lể ả ượng c c l n, chúng ta ph i làm theo cách khác, thông thự ớ ả ường, đó là s d ngử ụ ph i h p v i AJAX.ố ợ ớ

Nguyên lý c a nó là: thay vì truy n c file l n, chúng ta s chia ra thành t ng ph n nh đ g i đi. Sauủ ề ả ớ ẽ ừ ầ ỏ ể ử đó, trên máy ch s th c hi n vi c ghép các ph n nh l i v i nhau đ cho ra m t file hoàn ch nh. Làmủ ẽ ự ệ ệ ầ ỏ ạ ớ ể ộ ỉ theo cách này s cho phép t i các file dung lẽ ả ượng r t l n, l i có th theo dõi đấ ớ ạ ể ược ti n đ t i file.ế ộ ả Gi i thu t mô ph ng đ n gi n nh sau:ả ậ ỏ ơ ả ư

Bước 1: M file trên máy khách, truy c p đ n v trí d li u đã t i trở ậ ế ị ữ ệ ả ước đó (n u có)ế

Bước 2: Đ c m t ph n d li u trên máy khách tính t v trí d li u đã t i trọ ộ ầ ữ ệ ừ ị ữ ệ ả ước đó (n u có). Đánh d uế ấ v trí d li u đã t iị ữ ệ ả

Bước 3: Chuy n ph n d liêu đó vào m t ph n t form, submitể ầ ữ ộ ầ ử

Bước 4: Máy ch nh n d li u, m file và ghi ph n d li u vào đúng v trí trên fileủ ậ ữ ệ ở ầ ữ ệ ị Bước 5: Máy ch yêu c u g i ti p, quay l i bủ ầ ử ế ạ ước 1. N u đã h t thì k t thúc. ế ế ế

I. M t s khái ni m c b n v CSDLộ ố ệ ơ ả ề

C s d li u (database) có th hi u là n i ch a d li u. Có nhi u lo i c s d li u khác nhau nhơ ở ữ ệ ể ể ơ ứ ữ ệ ề ạ ơ ở ữ ệ ư c s d li u quan h , CSDL hơ ở ữ ệ ệ ướng đ i tố ượng, CSDL phân tán...

Hi n nay, trong ph n l n các ng d ng, ngệ ầ ớ ứ ụ ười ta thường s d ng CSDL quan h .ử ụ ệ

Trong mô hình CSDL quan h , d li u thệ ữ ệ ường được chia thành các b ng có liên quan v i nhau.ả ớ VD: ta có 2 b ng:ả

B ng 1 ch a các thông tin v Mã hàng, tên hàng, ngày nh p hàng, giá nh p hàngả ứ ề ậ ậ B ng 2 ch a các thông tin v Mã hàng, ngày bán hàng, giá bán.ả ứ ề

Hai b ng này có quan h v i nhau thông qua mã hàng, t c là ch c n có mã hàng b ng 2, ta có thả ệ ớ ứ ỉ ầ ở ả ể tìm ra tên hàng d a trên m i liên h gi a mã hàng và tên hàng l u b ng 1.ự ố ệ ữ ư ở ả

H qu n tr CSDL là chệ ả ị ương trình dùng đ qu n lý m t CSDL nào đó. Ch ng h n nh chể ả ộ ẳ ạ ư ương trình Access là m t h qu n tr CSDL đ qu n lý CSDL Access. Thông thộ ệ ả ị ể ả ường thì tên c a h qu n trủ ệ ả ị CSDL g n li n v i tên c a lo i CSDL. VD nh : CSDL Access <-> H qu n tr CSDL Access, CSDLắ ề ớ ủ ạ ư ệ ả ị MySQL <-> H qu n tr CSDL MySQL, CSDL Oracle <-> H qu n tr CSDL Oracle. Trong trệ ả ị ệ ả ị ường h p này thì ngợ ười ta thường nh m l n gi a khái ni m CSDL và c u trúc (d ng nh phân) c a m tầ ẫ ữ ệ ấ ạ ị ủ ộ CSDL do h qu n tr CSDL quy đ nh.ệ ả ị ị

Người ta g i các c t trong m t b ng là các trọ ộ ộ ả ường, các dòng trong m t b ng là các b n ghi.ộ ả ả M i trỗ ường s có m t ki u d li u xác đ nh. Đó có th là ki u s , ki u chu i, ki u ngày tháng...ẽ ộ ể ữ ệ ị ể ể ố ể ỗ ể VD v m t b ng có ch a thông tin ngề ộ ả ứ ười dùng. B ng này s có tên là NSD, các c t (trả ẽ ộ ường) là: Ma_ND, Ten_ND, Tuoi_ND, Matkhau_ND; trong đó Ma_ND có ki u nguyên, Ten_ND có ki u chu i,ể ể ỗ Tuoi_ND có ki u s , Matkhau_ND có ki u chu i.ể ố ể ỗ

II. Ngôn ng truy v n CSDL SQLữ ấ

SQL là m t ngôn ng độ ữ ượ ử ục s d ng trong các ngôn ng l p trình đ truy v n thông tin trong CSDL.ữ ậ ể ấ Đi m m nh c a ngôn ng này là c u trúc đ n gi n, có th nh p l nh vào dể ạ ủ ữ ấ ơ ả ể ậ ệ ướ ại d ng các chu i vănỗ b n, sau đó chuy n câu l nh t i các chả ể ệ ớ ương trình đi u khi n trung gian đ truy v n d li u r i tr về ể ể ấ ữ ệ ồ ả ề cho chương trình. Nh v y, m i thao tác k t xu t, truy v n hoàn tòan d dàng thông qua vi c đi uư ậ ọ ế ấ ấ ễ ệ ề khi n chu i văn b n có ch a câu l nh SQL.ể ỗ ả ứ ệ

Bài vi t này t p trung vào vi c trình bày cú pháp c a ngôn ng SQL, có th s d ng PHP đ bi uế ậ ệ ủ ữ ể ử ụ ể ể di n m t s thao tác đ m i ngễ ộ ố ể ọ ườ ễi d dàng hình dung.

1. Câu l nh chèn d li u vào m t b ng.ệ ữ ệ ộ ả Cú pháp c a câu l nh này có d ng:ủ ệ ạ Code:

INSERT INTO tên_b ng (danh_sách_trả ường) VALUES (danh_sách_giá_tr )ị Trong đó:

Các t khóa c đ nh là INSERT, INTO và VALUES.ừ ố ị tên_b ng là tên c a m t b ng quan h trong CSDL.ả ủ ộ ả ệ

danh_sách_trường là danh sách các trường trong b ng quan h đả ệ ượ ử ục s d ng đ chèn giá tr vào, m iể ị ỗ trường cách nhau m t d u ph y.ộ ấ ả

danh_sách_giá_tr là danh sách các giá tr tị ị ương ng v i các trứ ớ ường, có bao nhiêu trường thì ph i chènả vào b y nhiêu giá tr .ấ ị

Chú ý:

Thông thường, các giá tr chu i ph i đị ỗ ả ược đ t trong c p d u nháy ho c d u ngo c kép tùy thu c vàoặ ặ ấ ặ ấ ặ ộ ngôn ng bi u di n và ki u d li u c a trữ ể ễ ể ữ ệ ủ ường. M i giá tr cách nhau b i m t d u ph y.ỗ ị ở ộ ấ ẩ

VD, v i b ng d li u trên (B ng NSD có các c t (trớ ả ữ ệ ở ả ộ ường) là: Ma_ND, Ten_ND, Tuoi_ND, Matkhau_ND), ta có th dùng câu l nh SQL đ chèn thông tin vào nh sau:ể ệ ể ư

Code:

INSERT INTO NSD (Ten_ND,MatKhau_ND) VALUES('Sinh','123456') Ho c ta có th chèn nhi u thông tin h n:ặ ể ề ơ

Code:

INSERT INTO NSD (Ten_ND,Tuoi_ND,MatKhau_ND) VALUES('Sinh',30,'123456') 2. Câu l nh ch nh s a d li u trong b ngệ ỉ ử ữ ệ ả

Đ ch nh s a (c p nh t) thông tin trong b ng, ta dùng câu l nh UPDATE v i cú pháp sau:ể ỉ ử ậ ậ ả ệ ớ Code:

UPDATE tên_b ng SET tên_trả ường1=giá_tr 1[, tên_trị ường_i=giá_tr i] WHERE đi u_ki nị ề ệ

Ch ng h n, n u ta mu n đ i m t kh u c a nh ng ngẳ ạ ế ố ổ ậ ẩ ủ ữ ười có trường Ten_ND là Sinh thành 'JQKA' trong b ng trên, ta s làm nh sau:ả ẽ ư

Code:

UPDATE NSD SET Matkhau_ID = 'JQKA' WHERE Ten_ND='Sinh'

Chú ý m nh đ đi u ki n WHERE. M nh đ này s đệ ề ề ệ ệ ề ẽ ược mô t chi ti t h n phía dả ế ơ ở ưới. 3. Câu l nh xóa d li u trong b ngệ ữ ệ ả

Đ xóa d li u trong b ng, ta dùng câu l nh DELETE v i cú pháp sau:ể ữ ệ ả ệ ớ Code:

DELETE FROM tên_b ng WHERE đi u_ki n.ả ề ệ

Câu l nh này s xóa t t c nh ng b n ghi th a mãn đi u ki n n m sau m nh đ WHERE.ệ ẽ ấ ả ữ ả ỏ ề ệ ằ ệ ề VD:

Quote

DELETE FROM NSD WHERE Ten_ND='Sinh' 4. Câu l nh truy v n (tìm ki m) d li u trong b ngệ ấ ế ữ ệ ả

Đây là câu l nh ph c t p nh t trong nhóm các câu l nh c a SQL.ệ ứ ạ ấ ệ ủ Cú pháp c a l nh này nh sau:ủ ệ ư

SELECT [danh_sách_trường] FROM [danh_sách_b ng] WHERE [danh_sách_đi u_ki n] [ORDERả ề ệ BY]

Câu l nh SELECTệ

Câu l nh SELECT đệ ược dùng đ truy xu t d li u t m t b ng. K t qu tr v dể ấ ữ ệ ừ ộ ả ế ả ả ề ướ ại d ng b ngả đượ ưc l u trong 1 b ng, g i là b ng k t qu - result table (còn đả ọ ả ế ả ược g i là t p k t qu - result set).ọ ậ ế ả Cú pháp

Cú pháp c a câu l nh SELECT nh sau:ủ ệ ư SELECT tên_các_c tộ

FROM tên_b ngả

Ví d , đ truy xu t các c t mang tên LastName và FirstName t m t b ng có tên là Persons, ta dùngụ ể ấ ộ ừ ộ ả m t câu l nh SELECT nh sau:ộ ệ ư

SELECT LastName, FirstName FROM Persons Ta có th dùng d u * đ thay th cho t t c các c t:ể ấ ể ế ấ ả ộ SELECT * FROM Persons

K t qu tr v t m t câu truy v n SQL đế ả ả ề ừ ộ ấ ượ ưc l u trong 1 t p k t qu (result set). T p k t qu nàyậ ế ả ậ ế ả sau đó s đẽ ượ ậc l p trình viên tìm cách đ a ra dư ướ ại d ng m t b ng ho c m t hình th c nào đó. Xinộ ả ặ ộ ứ xem chi ti t ph n l p trình v i phpế ở ầ ậ ớ

M nh đ WHEREệ ề

M nh đ WHERE đệ ề ược dùng đ thi t l p đi u ki n truy xu t.ể ế ậ ề ệ ấ

Đ truy xu t d li u trong b ng theo các đi u ki n nào đó, m t m nh đ WHERE có th để ấ ữ ệ ả ề ệ ộ ệ ề ể ược thêm vào câu l nh SELECT.ệ

Cú pháp m nh đ WHERE trong câu l nh SELECT nh sau:ệ ề ệ ư SELECT tên_c t FROM tên_b ngộ ả

WHERE tên_c t phép_toán giá_trộ ị

Trong m nh đ WHERE, các phép toán đệ ề ượ ử ục s d ng là Phép toán Mô tả = So sánh b ngằ <> So sánh không b ngằ > L n h nớ ơ < Nh h nỏ ơ >= L n h n ho c b ngớ ơ ặ ằ <= Nh h n ho c b ngỏ ơ ặ ằ BETWEEN N m gi a m t kho ngằ ữ ộ ả LIKE So sánh m u chu iẫ ỗ

L u ý: Trong m t s phiên b n c a SQL, phép toán <> có th đư ộ ố ả ủ ể ược vi t dế ướ ại d ng !=

Ví d đ l y danh sách nh ng ngụ ể ấ ữ ườ ối s ng thành ph Sandnes, ta s d ng m nh đ WHERE trongở ố ử ụ ệ ề câu l nh SELECT nh sau:ệ ư

SELECT * FROM Persons WHERE City = 'Sandnes'

Tóan t AND và ORử

Hai toán t AND và OR n i hai ho c nhi u đi u ki n trong m nh đ WHERE l i v i nhau.ử ố ặ ề ề ệ ệ ề ạ ớ

Toán t AND s hi n th 1 dòng n u T T C các đi u ki n đ u tho mãn. Toán t OR hi n th m tử ẽ ể ị ế Ấ Ả ề ệ ề ả ử ể ị ộ dòng n u B T KỲ đi u ki n nào đế Ấ ề ệ ược tho .ả

Ví d : S d ng AND đ tìm nh ng ngụ ử ụ ể ữ ười có tên là Tove và h là Svendson:ọ SELECT * FROM Persons

WHERE FirstName = 'Tove' AND LastName = 'Svendson'

Ví d : S d ng OR đ tìm nh ng ngụ ử ụ ể ữ ười có tên là Tove ho c h là Svendson:ặ ọ SELECT * FROM Persons

WHERE firstname = 'Tove' OR lastname = 'Svendson'

Ví d : S d ng k t h p AND và OR cùng v i d u ngo c đ n đ t o nên các câu truy v n ph c t p:ụ ử ụ ế ợ ớ ấ ặ ơ ể ạ ấ ứ ạ SELECT * FROM Persons WHERE

(FirstName = 'Tove' OR FirstName = 'Stephen') AND LastName = 'Svendson'

T khoá DISTINCTừ

T khoá DISTINCT đừ ược dùng đ l c ra các giá tr khác nhau.ể ọ ị

Câu l nh SELECT s tr v thông tin v các c t trong b ng. Nh ng n u chúng ta không mu n l y vệ ẽ ả ề ề ộ ả ư ế ố ấ ề các giá tr trùng nhau thì sau?ị

V i SQL, ta ch c n thêm t khoá DISTINCT vào câu l nh SELECT theo cú pháp sau:ớ ỉ ầ ừ ệ SELECT DISTINCT tên_c t FROM tên_b ngộ ả

Ví d : Tìm t t c các công ty trong b ng đ t hàng, câu l nh SQL thông thụ ấ ả ả ặ ệ ường s nh sau:ẽ ư SELECT Company FROM Orders

Đ tìm t t c các công ty khác nhau trong b ng đ t hàng, ta s d ng câu l nh SQL sau:ể ấ ả ả ặ ử ụ ệ SELECT DISTINCT Company FROM Orders

M nh đ ORDER BY:ệ ề

M nh đ ORDER BY đệ ề ược dùng đ s p x p các dòng.ể ắ ế Cú pháp: Select... ORDER BY tên các c t [ASC/DESC]ộ

ORER BY có th đi kèm t khóa DESC đ s p x p theo chi u gi m d n, ho c ASC đ s p x p theoể ừ ể ắ ế ề ả ầ ặ ể ắ ế chi u tăng d n c a các c tề ầ ủ ộ

VD: Đ l y danh sách các công ty theo th t ch cái (tăng d n):ể ấ ứ ự ữ ầ SELECT Company, OrderNumber FROM Orders

ORDER BY Company

tăng d n:ầ

SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber

VD 3: L y danh sách các công ty theo th t gi m d n:ấ ứ ự ả ầ SELECT Company, OrderNumber FROM Orders

ORDER BY Company DESC

Gi i thi u ngôn ng truy v n CSDL SQLớ Câu l nh SELECTệ

Câu l nh SELECT đệ ược dùng đ truy xu t d li u t m t b ng. K t qu tr v dể ấ ữ ệ ừ ộ ả ế ả ả ề ướ ại d ng b ngả đượ ưc l u trong 1 b ng, g i là b ng k t qu - result table (còn đả ọ ả ế ả ược g i là t p k t qu - result set).ọ ậ ế ả Cú pháp

Cú pháp c a câu l nh SELECT nh sau:ủ ệ ư SELECT tên_các_c tộ

FROM tên_b ngả

Ví d , đ truy xu t các c t mang tên LastName và FirstName t m t b ng có tên là Persons, ta dùngụ ể ấ ộ ừ ộ ả m t câu l nh SELECT nh sau:ộ ệ ư

SELECT LastName, FirstName FROM Persons Ta có th dùng d u * đ thay th cho t t c các c t:ể ấ ể ế ấ ả ộ SELECT * FROM Persons

K t qu tr v t m t câu truy v n SQL đế ả ả ề ừ ộ ấ ượ ưc l u trong 1 t p k t qu (result set). T p k t qu nàyậ ế ả ậ ế ả sau đó s đẽ ượ ậc l p trình viên tìm cách đ a ra dư ướ ại d ng m t b ng ho c m t hình th c nào đó. Xinộ ả ặ ộ ứ xem chi ti t ph n l p trình v i phpế ở ầ ậ ớ

Một phần của tài liệu HTML CĂN BẢN CHO NGƯỜI MỚI BẮT ĐẦU pptx (Trang 37 - 42)