Giáo trình Hướng dẫn thiết kế web PHP và MySQL (Phần 1)

MỤC LỤC  
CƠ SỞ DỮ LIỆU  
9
I. Các khái niệm về cơ sở dữ liệu  
9
II. Hệ quản trị csdl mysql  
10  
11  
16  
III. Tạo và quản lý database với phpmyadmin  
IV. Lab database  
NGÔN NGỮ SQL  
17  
17  
21  
23  
I. Các câu lệnh thường dùng  
II. CÁC PHÉP TOÁN VÀ HÀM TRONG MYSQL  
III. Lab SOL  
QUẢN LÝ DATABASE VỚI EMS SQL MANAGER  
I. Kết nối đến MySql Server  
II. Tạo database  
24  
24  
24  
24  
25  
26  
26  
27  
III. Tạo table trong database  
IV. Tạo quan hệ giữa các table  
V. Nhập dữ liệu vào bảng  
VI. Export dữ liệu  
VII. Import dữ liệu vào database  
PHP CƠ BẢN  
28  
28  
35  
37  
39  
41  
45  
49  
49  
53  
54  
54  
I. Tổng quan  
II. Các hàm xử lý chuỗi  
III. Các hàm thời gian  
IV. Các hàm quản lý file  
V. Tạo hàm mới trong php  
VI. Array  
VII. Lấy thông tin của client và server  
VIII. Httpheader  
IX. Cookie  
X. Session  
XI. CÁC HÀM DATABASE  
NHÂ  
́
̣
– NƠI DUY NHÂ  
́
́
̣
̀
̣
C ĐA  
̉
̉
̀
̃
́
̣
THÊ  
̉
1
XII. Cơ chế đăng nhập, thoát, hạn chế truy cập  
56  
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG  
I. Tổng quan  
60  
60  
62  
63  
II. Tạo class và sử dụng  
III. Ví dụ  
LAB KẾT NỐI DB  
72  
72  
80  
80  
81  
I. Class db  
II. Trình bày dữ liệu theo mẫu 1  
III. Trình bày dữ liệu theo mẫu 2  
IV. Trình bày dữ liệu theo mẫu 3  
PHP ỨNG DỤNG: CHUẨN BỊ CHO WEBSITE ADMIN  
I. Chuẩn bị table users  
83  
83  
83  
83  
85  
85  
87  
88  
88  
II. Chuẩn bị folder chứa các trang web trong phần admin  
III. Tạo trang layout  
IV. Tạo class quản trị  
V. Tạo chức năng đăng nhập  
VI. Tạo chức năng kiểm tra đăng nhập, kiểm tra admin  
VII. Tạo chức năng thoát  
VIII. Quản trị dữ liệu trong bảng  
QUẢN TRỊ LOẠI TIN  
I. Tạo trang thêm loại tin  
II. Tạo trang xóa loại tin  
III. Tạo trang chỉnh loại tin  
IV. Tạo trang xem loại tin  
V. Bài toán phân trang dữ liệu  
90  
90  
93  
95  
97  
101  
QUẢN TRỊ TIN TỨC  
I. Tạo trang xem danh sách tin  
II. Tạo trang xóa tin  
104  
104  
108  
109  
119  
III. Tạo trang thêm tin  
IV. Tạo trang chỉnh 1 tin  
NHÂ  
́
̣
– NƠI DUY NHÂ  
́
́
̣
̀
̣
C ĐA  
̉
̉
̀
̃
́
̣
THÊ  
̉
2
V. Tạo trang ẩn hiện 1 tin  
122  
124  
VI. Tạo trang chuyển trạng thái nổi bật của 1 tin  
LAB TẠO TRANG CHỦ SITE TIN TUC  
I. Tạo class tin  
127  
127  
127  
II. Tạo trang layout  
TIN NỔI BẬT & TIN XEM NHIỀU  
I. Tạo file noibat_xemnhieu.php  
II. Tin xem nhiều  
130  
130  
131  
132  
III. Tin nổi bật  
TIN MỚI TRONG TỪNG THỂ LOẠI  
I. Định nghĩa hàm TinMoiTrongTheLoai  
II. Tạo file tinmoi.php  
135  
135  
135  
136  
137  
137  
III. Định dạng CSS  
IV. Nhúng vào trang chủ  
V. Bổ sung  
BÌNH CHỌN  
138  
138  
139  
140  
I. Định nghĩa các hàm  
II. Tạo form hiện câu hỏi và phương án  
III. Tạo trang hiện kết quả bình chọn  
FORM TÌM, VIDEO, QUẢNG CÁO  
I. Form tìm kiếm  
143  
143  
144  
144  
144  
145  
II. Video  
III. div Info  
IV. Quảng cáo  
V. Form tìm nâng cao  
HIỂN THỊ CHI TIẾT MỘT TIN  
149  
149  
151  
151  
I. Phần 1: Tạo trang hiển thị chi tiết tin:  
II. Phần 2: Nhúng vào trang chủ  
III. Phần 3: Hiện số lần xem, ngày đăng, bản in , tin cũ hơn, mới hơn  
NHÂ  
́
̣
– NƠI DUY NHÂ  
́
́
̣
̀
̣
C ĐA  
̉
̉
̀
̃
́
̣
THÊ  
̉
3
THANH MENU  
I. Chép folder  
155  
155  
155  
155  
155  
155  
155  
II. Tạo file menu.php  
III. Lấy các loại tin trong từng thể loại và hiển thị (sau tag a)  
IV. Chèn menu.js, menu.css  
V. Thêm div copyright ở sau cùng  
VI. Đưa vào trang chủ:  
LAB HIỂN THỊ CÁC TIN TRONG 1 LOẠI  
I. Định nghĩa hàm  
156  
156  
156  
158  
II. Tạo file tintrongloai.php  
III. Đưa vào trang chủ  
LAB XỬ LÝ TÌM KIẾM  
159  
159  
159  
160  
I. Chỉnh file formtim.php và chỉnh các tham số  
II. Định nghĩa hàm TimKiem  
III. Tạo file ketquatimkiem.php  
TẠO TIÊU ĐỀ CHO CÁC TRANG  
I. Mở file classTin.php và định nghĩa hàm sau:  
II. Mở file home.php  
163  
163  
164  
.HTACCESS  
165  
165  
165  
166  
168  
168  
I. Chuẩn bị  
II. Giả địa chỉ của 1 tin  
III. Giả địa chỉ của loại tin  
IV. Giả địa chỉ cho tìm kiếm  
V. Các chỉ thị hữu ích khác trong file htaccess  
LAB TẠO WEBSITE ĐA NGÔN NGỮ  
I. Database  
170  
170  
171  
II. Phần xử lý interface  
CÁC KỸ THUẬT TĂNG TỐC WEBSITE  
178  
I. Giảm bớt các request  
178  
NHÂ  
́
̣
– NƠI DUY NHÂ  
́
́
̣
̀
̣
C ĐA  
̉
̉
̀
̃
́
̣
THÊ  
̉
4
II. Sử dụng Content Delivery Network(CDN)  
III. Nén html  
178  
178  
178  
179  
179  
179  
IV. Cache ở client dùng htaccess  
V. Tối ưu các MySQL Query  
VI. Opcode caching  
VII. Server file caching  
ĐĂNG KÝ THÀNH VIÊN  
183  
183  
185  
185  
186  
190  
190  
193  
194  
I. Tạo form  
II. Định dạng CSS  
III. Xử lý khi submit  
IV. Định nghĩa hàm DangKyThanhVien:  
V. Lưu vào db  
VI. Kích hoạt tài khoản  
VII. Kiểm tra Username bằng Ajax  
VIII. Trang đăng ký thành công  
CAPTCHA IMAGE  
195  
195  
196  
I. Tạo hình  
II. Đưa hình captcha vào form đăng ký  
GỞI PASSWORD  
197  
ĐỔI PASSWORD  
198  
198  
199  
199  
199  
199  
201  
201  
I. Tạo form  
II. Code kiểm tra login (ở đầu trang): H  
III. Xử lý đổi pass  
IV. Hiện thông báo lỗi  
V. Định nghĩa hàm đổi pass  
VI. Hiện lại các giá trị trong form khi submit  
VII. Tạo trang doipassthanhcong.php  
HITCOUNTER  
203  
203  
203  
I. Chuẩn bị  
II. Tạo file hiện số đếm  
NHÂ  
́
̣
– NƠI DUY NHÂ  
́
́
̣
̀
̣
C ĐA  
̉
̉
̀
̃
́
̣
THÊ  
̉
5
III. Chèn số đếm vào trang php:  
205  
GỬI MAIL DÙNG PHP MAILER  
I. Tạo form gửi mail  
206  
206  
206  
207  
207  
207  
208  
II. Định dạng  
III. Bật module mã hoá dữ liệu  
IV. Chép thư viện PHP Mailer vào site  
V. Viết hàm gửi mail  
VI. Code xử lý  
DOWNLOAD FILE  
210  
210  
210  
211  
I. Chuẩn bị  
II. Tạo trang web để down 1 file  
III. Tạo trang web để hiện list dữ liệu từ database  
UPLOAD FILE  
212  
212  
215  
IV. Tạo form upload  
V. Hiện list dữ liệu từ db  
CHUẨN BỊ SITE BÁN ĐIỆN THOẠI  
I. Database  
218  
218  
218  
222  
II. Tạo các table  
III. Chuẩn bị/ dự định tạo các file/folder  
SHOW SẢN PHẨM MỚI  
224  
I. Tạo file spmoi.php  
224  
TRANG LAYOUT  
226  
XÂY DỰNG GIỎ HÀNG  
I. Hiện giỏ hàng – tóm tắt  
II. Hiện giỏ hàng readonly:  
III. Hiện giỏ hàng – update  
228  
232  
233  
236  
ĐƯA GIỎ HÀNG VÀO TRANG CHỦ  
240  
I. Hiện giỏ hàng tóm tắt khi user nhắp nút đặt hàng  
240  
NHÂ  
́
̣
– NƠI DUY NHÂ  
́
́
̣
̀
̣
C ĐA  
̉
̉
̀
̃
́
̣
THÊ  
̉
6
II. Hiện giohang_update  
FORM MUA HÀNG  
241  
244  
244  
244  
245  
247  
248  
I. Tạo file muahang.php  
II. Hiện thông tin user đang đăng nhập  
III. Hiện form thông tin người nhận  
IV. Hiện các phương thức thanh toán và giao hàng:  
V. Lồng trang muahang.php vào trang chủ  
XỬ LÝ MUA HÀNG  
249  
249  
249  
252  
256  
I. Tạo file xulymuahang.php  
II. Lưu đơn hàng và báo lỗi nếu có  
III. Lưu chi tiết đơn hàng , hiện thông báo, hiện nút thanh toán  
IV. Lồng trang xulymuahang vào trang chủ  
YÊU CẦU SINH VIÊN THỰC HIỆN TẠI NHÀ  
I. Tạo trang hiện chi tiết 1 sản phẩm  
II. Tạo trang hiện các sản phẩm trong 1 loại  
III. Thực hiện chức năng tìm kiếm  
257  
257  
257  
257  
257  
257  
257  
IV. Nhúng icon yahoo chat vào trang chủ  
V. Làm form login trên trang chủ  
VI. Làm phần quản trị  
PHẦN BỔ SUNG:  
258  
ĐẾM SỐ NGƯỜI XEM TRONG TỪNG MỤC  
I. Tạo table  
258  
258  
258  
260  
260  
262  
262  
II. Định nghĩa hàm lưu thông tin  
III. Gọi hàm LuuThongTin  
IV. Tạo hàm đếm số user đang xem trong từng loại tin , trong từng thể loại  
V. Thống kê số người đang xem từng loại  
VI. Hiện thông tin tổng kết  
ĐĂNG NHẬP POPUP  
264  
I. Tạo form đăng nhập  
264  
NHÂ  
́
̣
– NƠI DUY NHÂ  
́
́
̣
̀
̣
C ĐA  
̉
̉
̀
̃
́
̣
THÊ  
̉
7
II. Tạo link đăng nhập:  
265  
265  
267  
269  
269  
III. Nạp form đăng nhập  
IV. Thực hiện trang xử lý đăng nhập  
V. Tạo file thoat.php (Mời bạn tự làm)  
VI. Hiện lời chào khi user nạp lại trang  
NHÂ  
́
̣
– NƠI DUY NHÂ  
́
́
̣
̀
̣
C ĐA  
̉
̉
̀
̃
́
̣
THÊ  
̉
8
CƠ SỞ DỮ LIỆU  
I. Các khái niệm về cơ sở dữ liệu  
1. Dữ liệu  
Là các thông tin cần lưu trữ để sử dụng lại  
1. Cơ sở dữ liệu (database)  
Là các dữ liệu được lưu trữ có tổ chức  
2. Hệ quản trị cơ sở dữ liệu:  
Là các chương trình giúp quản lý và tổ chức cơ sở dữ liệu. Ví dụ: MySQL, MSSQL, …  
3. Table:  
Mỗi database chứa nhiều table. Mỗi table là 1 bảng dữ liệu, chứa một mảng thông tin nào đó.  
Mỗi table có 1 tên, gồm nhiều cột nhiều hàng.  
Mỗi dòng của table là 1 đơn vị dữ liệu cần lưu trữ, ví dụ như 1 tin, 1 câu hỏi bình chọn, 1 user.  
Mổi dòng gọi là 1 record hay mẫu tin.  
Mỗi cột của table gọi là 1 field hay trường. Dữ liệu trong 1 cột thuộc 1 kiểu xác định nào đó.  
4. Khoá chính  
Là cột đặc biệt trong table, chứa thông tin để phân biệt từng record với nhau trong table.  
Khoá chính có thể gồm nhiều field nhưng thường là 1 field.  
Field làm khoá chínnh nên có kiểu số, tăng tự động.  
5. Khoá ngoại  
Là cột trong 1 table mà dữ liệu trong nó là tham khảo đến khoá chính ở bảng khác. Trong 1  
table có thể có nhiều khoá ngoại, mỗi khoá ngoại.  
6. Quan hệ giữa hai bảng  
Hai bảng có quan hệ với nhau khi dữ liệu trong chúng là bổ sung cho nhau. Có ba loại quan hệ  
thường gặp:  
Quan hệ 1-1: 1 record bên bảng A có quan hệ với 1 record bên bảng B và ngược lại.  
Quan hệ 1-nhiều: 1 record bên bảng A có quan hệ với nhiều record bên bảng B.  
Quan hệ nhiều-nhiều:1 record ở bảng A có quan hệ với nhiều record bên bảng B & ngược lại.  
NHÂ  
́
̣
– NƠI DUY NHÂ  
́
́
̣
̀
̣
C ĐA  
̉
̉
̀
̃
́
̣
THÊ  
̉
9
I. Hệ quản trị csdl mysql  
-
Giới thiệu  
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới và được các nhà phát  
triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì MySQL là cơ sở dữ liệu tốc độ cao,  
ổn định và dễ sử dụng, hoạt động trên nhiều hệ điều hành,.  
MySQL miễn phí hoàn toàn. Có nhiều phiên bản cho các hệ điều hành khác nhau:  
Windows, Linux, Mac OS, Unix, SGI Irix,Solaris, SunOS, ...  
-
Storage Engine  
Trong MySQL, có nhiều cách tổ chức lưu dữ liệu cho các table : MyISAM , InnoDB,  
Memory,…  
MyISAM là storage engine mặc định của MySQL. Mỗi table lưu theo kiểu MyISAM sẽ được  
lưu trên 3 file : tableName.FRM (chứa định dạng của table), tableName.MYD (lưu dữ liệu),  
tableName.MYI (lưu index) . MyISAM hỗ trợ full-text searches còn InnoDB thì không  
InnoDB là engine hỗ trợ transaction (commit, rollback, and crash-recovery capabilities) để bảo  
vệ dữ liệu. InnoDB hỗ trợ relationship còn MyISAM thì không.  
-
Các kiểu dữ liệu trong MySql  
Kiểu chuỗi  
•
CHAR và VARCHAR: Lưu text, trong đó char có độ dài cố định còn varchar có độ dài  
không cố định.  
• BINARY và VARBINARY: Gần giống như Char và Varchar nhưng chứa những  
binary strings (Char, Varchar là none binary string). Điều này có nghĩa là không có  
Character set, do đó việc sort và compare sẽ chỉ dựa trên giá trị các byte được lưu. Độ  
dài của chuỗi cũng tính bằng số byte (Char, varchar tính bằng số ký tự)  
•
BLOG và TEXT: chứa text có độ dài lớn.  
BLOB values chứa các binary strings (byte strings). Chúng không có character set, việc  
sorting và comparison chỉ dựa trên giá trị các byte column. TEXT là các nonbinary  
strings (character strings). Chúng có character set, việc sorting và comparison sẽ dựa  
theo collation của character set được dùng  
Kiểu Ngày tháng  
•
DateTime: Lưu dữ liệu kiểu ngày giờ. MySql hiển thị ngày giờ theo kiểu 'YYYY-MM-  
DD HH:MM:SS' có giá trị từ '1000-01-01 00:00:00' đến '9999-12-31 23:59:59'.  
NHÂ  
́
̣
– NƠI DUY NHÂ  
́
́
̣
̀
̣
C ĐA  
̉
̉
̀
̃
́
̣
THÊ  
̉
10  
• Date: Lưu dữ liệu kiểu ngày. MySql hiển thị ngày theo kiểu 'YYYY-MM-DD' , có giá  
trị từ 1000-01-01 đến 9999-12-31  
• TimeStamp: Là 1 số nguyên diễn tả 1 thời điểm là số giây tính từ giây đầu tiên của  
năm 1970 đến thời điểm hiện tại. Timestamp có giá trị trong khoảng từ '1970-01-01  
00:00:01' đến '2038-01-19 03:14:07'  
•
•
Time: Lưu giờ. Hiển thị theo kiểu 'HH:MM:SS'  
Year: Lưu năm  
Kiểu số  
Type  
Bytes  
Minimum Value  
Maximum Value  
(Signed/Unsigned)  
127  
(Signed/Unsigned)  
1
2
3
4
8
-128  
0
255  
-32768  
32767  
0
65535  
-8388608  
8388607  
0
16777215  
-2147483648  
2147483647  
4294967295  
9223372036854775807  
18446744073709551615  
0
-9223372036854775808  
0
II. Tạo và quản lý database với phpmyadmin  
1. Tạo Database (CSDL – Cơ Sở Dữ Liệu)  
B1. Nhắp Home  
B2. Trong mục Create new database, khai báo:  
. Ô trên: đặt tên CSDL  
. Ô dưới: chọn utf8_general_ci (thể lưu được tiếng việt)  
B3. Nhắp Create  
Ví dụ: Tạo database tên tintuc  
NHÂ  
́
̣
– NƠI DUY NHÂ  
́
́
̣
̀
̣
C ĐA  
̉
̉
̀
̃
́
̣
THÊ  
̉
11  
7. Tạo Table (bảng)  
B1. Chọn database  
B2. Mục Name: khai báo tên table muốn tạo (theloai)  
Mục Number of fields: khai báo số field trong table  
B3. Nhắp nút Go  
B5. Khai báo các field trong table  
B6. Nhắp nút Save  
NHÂ  
́
̣
– NƠI DUY NHÂ  
́
́
̣
̀
̣
C ĐA  
̉
̉
̀
̃
́
̣
THÊ  
̉
12  
8. Thêm dữ liệu vào Table (bảng)  
-
-
Chọn table rồi nhắp link Insert (xem hình)  
Nhập dữ liệu rồi nhắp nút Go  
Ví dụ: Thêm 2 record vào table theloai như sau:  
9. Xem dữ liệu trong Table (bảng)  
-
Chọn table muốn xem dữ liệu rồi nhắp Browse (xem hình) à Mỗi lần hiện 30 records  
10. Xóa / Sửa dữ liệu trong Table (bảng)  
Chọn table muốn xóa sửa (ví dụ theloai) rồi nhắp link Browse  
NHÂ  
́
̣
– NƠI DUY NHÂ  
́
́
̣
̀
̣
C ĐA  
̉
̉
̀
̃
́
̣
THÊ  
̉
13  
. Sửa record: Nhắp nút Edit (cây viết) trên dòng chứa record (xem hình)  
. Xóa record : Nhắp nút Drop (dấu chéo) trên dòng chứa record (xem hình)  
11. Sửa cấu trúc Table  
-
Chọn table rồi nhắp nhắp link Structure  
. Chỉnh field: Nhắp nút Change  
. Xóa field : Nhắp nút Drop (dấu chéo)  
. Thêm field : Nhắp nút Go trong mục Add  
Ví dụ: Sửa chiều dài của field TenTL trong table theloai từ 255 xuống còn 100.  
12. Đổi tên Table  
-
Chọn table rồi nhắp link Operations  
NHÂ  
́
̣
– NƠI DUY NHÂ  
́
́
̣
̀
̣
C ĐA  
̉
̉
̀
̃
́
̣
THÊ  
̉
14  
-
Mục Rename table to: gõ tên mới rồi nhắp nút Go  
Ví dụ: Đổi tên table theloai thành theloaitin  
13. Xóa Table  
Chọn table rồi nhắp link Drop  
14. Import dữ liệu  
-
-
Chọn database rồi nhắp link Import  
Nhắp nút Browse để chọn file .sql rồi nhắp nút Go  
15. Export dữ liệu  
-
-
Chọn database rồi nhắp link Export  
Mục Export: chọn các table cần export  
NHÂ  
́
̣
– NƠI DUY NHÂ  
́
́
̣
̀
̣
C ĐA  
̉
̉
̀
̃
́
̣
THÊ  
̉
15  
-
-
-
Chọn kiểu file là .SQL  
Chọn mục Save as file rồi nhắp nút GO  
Nhắp nút Save è Khai báo: tên file, địa chỉ lưu è Save  
16. Xoá Database  
Nhắp tên database è Nhắp link Drop  
III. Lab database  
Mời bạn mở file LabDatabase lên để làm  
NHÂ  
́
̣
– NƠI DUY NHÂ  
́
́
̣
̀
̣
C ĐA  
̉
̉
̀
̃
́
̣
THÊ  
̉
16  
NGÔN NGỮ SQL  
I. Các câu lệnh thường dùng  
1. Tạo database mới  
CREATE DATABASE TênDB [CHARACTER SET=char_name] [COLLATE =col_name]  
Ví dụ: CREATE DATABASE tin CHARACTER SET=utf8 COLLATE =utf8_general_ci;  
17. Xoá database  
DROP DATABASE [IF EXISTS] db_name  
Ví dụ: DROP DATABASE tin;  
18. Tạo 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,  
NHÂ  
́
̣
– NƠI DUY NHÂ  
́
́
̣
̀
̣
C ĐA  
̉
̉
̀
̃
́
̣
THÊ  
̉
17  
`TieuDe` varchar(255) default NULL,  
PRIMARY KEY (`idYKien`)  
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;  
19. Xoá table  
DROP TABLE [IF EXISTS] tbl_name  
Ví dụ:  
DROP TABLE bandocykien;  
20. Chèn record vào 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');  
21. Xoá record trong table  
DELETE FROM tbl_name [WHERE condition]  
Ví dụ:  
DELETE FROM theloai WHERE idTL=100;  
22. Chỉnh các record trong table  
UPDATE tbl_name SET Field1=value1, Field2=value2,… [WHERE condition]  
Ví dụ:  
UPDATE theloai SET TenTL='XML' WHERE idTL=50;  
23. Lấy dữ liệu từ table  
SELECT * | colname1, colname2,  
NHÂ  
́
̣
– NƠI DUY NHÂ  
́
́
̣
̀
̣
C ĐA  
̉
̉
̀
̃
́
̣
THÊ  
̉
18  
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ó kết bảng  
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 lồng nhau  
SELECT Ngay, TieuDe FROM tin WHERE Ngay >= All (SELECT Ngay FROM Tin)  
Ví dụ 4: Lấy dữ liệu ngẫu nhiên  
select idTin, TieuDe FROM tin WHERE idLT=25 ORDER BY rand() LIMIT 0,3;  
24. Một số ví dụ câu lệnh SQL có thống kê  
NHÂ  
́
̣
– NƠI DUY NHÂ  
́
́
̣
̀
̣
C ĐA  
̉
̉
̀
̃
́
̣
THÊ  
̉
19  
a. Đếm số lượng sản phẩm trong từng loại  
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ố lượng sản phẩm trong từng chủng loại  
SELECT chungloai.idCL, chungloaisp.TenCL, count(idSP) as SoSP  
FROM chungloai, sanpham  
WHERE chungloai.idCL=sanpham.idCL  
GROUP BY chungloai.idCL, chungloai.TenCL  
c. Thống kê từng idDH, Tổng Số Lượng, Tổng Tiền  
SELECT idDH, sum (soluong) as TongSoLuong, sum(soluong*gia) as TongTien  
FROM donhangchitiet  
GROUP BY idDH  
d. Thống kê từng idDH, Ngay, Tổng Số Lượng, Tổng Tiền, sắp theo Ngày giảm dần. Chỉ  
hiện những đơn hàng chưa giao hàng.  
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  
NHÂ  
́
̣
– NƠI DUY NHÂ  
́
́
̣
̀
̣
C ĐA  
̉
̉
̀
̃
́
̣
THÊ  
̉
20  
Tải về để xem bản đầy đủ
pdf 148 trang yennguyen 20720 Free
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Hướng dẫn thiết kế web PHP và MySQL (Phần 1)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_huong_dan_thiet_ke_web_php_va_mysql_phan_1.pdf