Giáo trình Lập trình mã nguồn mở (Phần 2)
Phát biểu SELECT với mệnh đề FROM
Phát biểu SQL dạng SELECT là một trong những phát biểu yêu cầu MySQL
truy lục dữ liệu trên cơ sở dữ liệu chỉ định. SELECT dùng để đọc thông tin từ cơ sở dữ
liệu theo những trƣờng quy định, hay những biểu thức cho trƣờng đó.
Mệnh đề FROM chỉ ra tên một bảng hay những bảng có quan hệ cần truy vấn.
Sau khi thực thi phát biểu SQL, kết quả trả về số bản ghi và tổng số bản ghi
đƣợc lấy ra từ bảng.
Dấu * cho phép lọc bản ghi với tất cả các trƣờng trong bảng, nếu muốn chỉ rõ
những trƣờng nào cần lọc cần nêu tên cụ thể những trƣờng đó.
Chúng ta sử dụng một phần cơ sở dữ liệu có sẵn của MySQL, đồng thời bổ
sung thêm cơ sở dữ liệu dành cho ứng dụng bán hàng qua mạng có tên là Test, và bao
gồm nhiều bảng. Bằng phát biểu SELECT chúng ta có thể biết số bảng hay đối tƣợng
khác đang có trong cơ sở dữ liệu Test
Ví dụ: Thực thi phát biểu SQL SELECT hệ thống
show tables from Test
/* Hiển thị tất cả tên bảng của cơ sở dữ liệu hiện hành */
Ghi chú: Có thể sử dụng phát biểu SQL trên để hiển thị những đối tƣợng trong
cơ sở dữ liệu, bằng cách thay thế các tham số và điều kiện.
Cú pháp:
Select * From tablename
/* Lọc tất cả số liệu của tất cả các cột (field) của tablename*/
Select field1,field2
From tablename
/* Lọc tất cả số liệu của 2 field: field1, field2 của tablename*/
Select * From tablename Limit 0,10
/* Lọc top 10 bản ghi đầu tiên của tất cả các field của tablename*/
Select field1, field2 From tablename Limit 0,10
/* Lọc top 10 bản ghi đầu tiên của 2 fields field1, field2 của
tablename*/
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Tóm tắt nội dung tài liệu: Giáo trình Lập trình mã nguồn mở (Phần 2)
tin sau: tên khách hàng, phái, địa chỉ, điện thoại, danh sách sẽ đƣợc sắp theo thứ tự nam trƣớc, nữ sau. 4. Liệt kê danh sách sữa gồm có: tên sữa, trọng lƣợng, đơn giá. Có sắp tăng theo cột tên sữa, và sắp giảm theo cột đơn giá 5. Liệt kê danh sách sữa gồm có: tên sữa, trọng lƣợng, đơn giá, thành phần dinh dƣỡng. Chỉ liệt kê các sữa có tên bắt đầu là 'S'. 6. Liệt kê danh sách các hãng sữa có ký tự cuối cùng của mã hãng sữa là 'M', gồm có các thông tin sau: mã hãng sữa, tên hãng sữa, địa chỉ, điện thoại. 7. Liệt kê danh sách sữa mà trong tên sữa có từ 'grow'. 8. Liệt kê danh sách sữa có đơn giá lớn hơn 100.000 VNĐ, gồm các thông tin: tên sữa, đơn giá, trọng lƣợng, danh sách đƣợc xếp theo thứ tự tên sữa giảm dần. 9. Cho biết các sữa có mã loại sữa là 'SC' và có mã hãng sữa là 'VNM' gồm các thông tin sau: tên sữa, thành phần dinh dƣỡng, lợi ích, trong đó tên sữa sắp theo thứ tự tăng dần 10. Liệt kê danh sách sữa có trọng lƣợng lớn hơn hay bằng 900 gr hoặc mã hãng sữa là 'DS' 11. Liệt kê danh sách các sữa có đơn giá từ 100.000 VNĐ đến 150.000 VNĐ 12. Liệt kê các sữa có mã hãng sữa là 'DM' hay 'DL' hay 'DS' và có trọng lƣợng lớn hơn hay bằng 800 gr, sắp tăng dần theo trọng lƣợng. 13. Liệt kê các sữa có mã loại là 'SD' hoặc có giá tiền nhỏ hơn hay bằng 12.000 VNĐ 14. Liệt kê những khách hàng nam, và có họ tên bắt đầu là 'N' 15. Liệt kê tên các hãng sữa mà mã hãng sữa không có ký tự 'M' 239 16. Liệt kê các sữa có thành phần dinh dƣỡng chứa 'canxi' và 'vitamin', gồm các thông tin: tên sữa, thành phần dinh dƣỡng. 17. Liệt kê các sản phẩm sữa có trọng lƣợng là 180gr, 200gr hoặc 900 gr 18. Liệt kê các sản phẩm sữa có trọng lƣợng không là 400gr, 800gr,900gr 19. Cho biết tên sữa, đơn giá, thành phần dinh dƣỡng của 10 sữa có đơn giá cao nhất 20. Cho biết 3 sản phẩm sữa của hãng Vinamilk có trọng lƣợng nặng nhất, gồm các thông tin: Tên sữa, trọng lƣợng 21. Liệt kê các sữa của hãng Vinamilk gồm các thông tin: tên sữa, lợi ích, đơn giá, trong đó đơn giá sắp giảm dần. 22. Liệt kê danh sách các sữa của hãng Abbott có: tên sữa, trọng lƣợng, lợi ích, trong đó trọng lƣợng sắp tăng dần. Bài 2. Kết hợp PHP và MySQL sử dụng các thông tin và dữ liệu cho trong bài 1 1. Hiển thị lƣới Tạo ra một trang hiển thị thông tin nhƣ sau: Yêu cầu chức năng: STT Đối tƣợng Yêu cầu xử lí chức năng Ghi chú trang o Kết nối vào MySQL luoi_tho_hang_sua o Chọn CSDL QL_BAN_SUA o Đọc bảng hang_sua o Xuất các thông tin về hãng sữa dƣới dạng lƣới thô (table) nhƣ hình trên. 2. Lƣới định dạng Thiết kế trang hiển thị thông tin khách hàng có định dạng nhƣ sau 240 Yêu cầu chức năng: STT Đối tƣợng Yêu cầu xử lí chức năng Ghi chú 1 trang o Kết nối vào MySQL luoi_dinh_dang o Chọn CSDL QL_BAN_SUA o Đọc bảng khach_hang o Xuất các thông tin về khách hàng dạng lƣới có định dạng nhƣ hình trên, trong đó: dòng tiêu đề có các cột đƣợc canh giữa, chữ in đậm, có màu khác so với các dòng nội dung; dòng chẵn và dòng lẻ ở phần nội dung có màu nền khác nhau; cột giới tính đƣợc canh giữa 3. Lƣới tùy biến Thiết kế trang hiển thị thông tin khách hàng có tùy biến cột giới tính nhƣ sau Yêu cầu chức năng: STT Đối tƣợng Yêu cầu xử lí chức năng Ghi chú 1 trang o Kết nối vào MySQL, chọn CSDL luoi_tuy_bien QL_BAN_SUA o Đọc bảng khach_hang 241 o Xuất các thông tin về khách hàng dạng lƣới có địnhdạng nhƣ hình trên, trong đó: dòng tiêu đề có các cột đƣợc canh giữa, chữ in đậm, có màu khác so với các dòng nội dung; dòng chẵn và dòng lẻ hiển thị nội dung có màu nền khác nhau. o Cột giới tính đƣợc canh giữa và sẽ hiển thị thông tin nhƣ sau: nếu giới tính của khách hàng là Nam thì hiển thị hình tƣợng trƣng cho phái Nam, còn nếu ngƣợc lại thì hiển thị hình tƣợng trƣng cho phái Nữ nhƣ hình trên 4. Lƣới phân trang Thiết kế trang hiển thị thông tin sữa có phân trang nhƣ sau: Yêu cầu chức năng: STT Đối tƣợng Yêu cầu xử lí chức năng Ghi chú 1 trang o Kết nối vào MySQL luoi_phan_trang o Chọn CSDL QL_BAN_SUA o Đọc bảng sữa, loại sữa, hãng sữa o Sử dụng class pager để thực hiện việc phân trang, trong đó: - Mỗi trang gồm có hai dòng dữ liệu - Xuất thông tin dạng lƣới có định dạng nhƣ hình trên (dòng chẵn và dòng lẻ có màu nền, màu chữ khác nhau, giá sữa định dạng theo kiểu tiền tệ) - Hiển thị danh sách trang theo dạng số 5. List đơn giản Tạo trang hiển thị thông tin các sản phẩm sữa dạng list nhƣ hình sau: 242 Yêu cầu chức năng: STT Đối tƣợng Yêu cầu xử lí chức năng Ghi chú 1 trang o Kết nối vào MySQL list_don_gian o Chọn CSDL QL_BAN_SUA o Đọc bảng sữa o Thiết kế và hiển thị thông tin các sản phẩm sữa nhƣ hình trên, trong đó: - Mỗi sữa hiển thị trên một dòng có hai cột: cột hình ảnh và cột nội dung (có tên sữa, hãng sản xuất, loại sữa, trọng lƣợng, đơn giá) 6. List dạng cột Tạo trang hiển thị thông tin các sản phẩm sữa dạng list nhƣ hình sau: Yêu cầu chức năng: STT Đối tƣợng Yêu cầu xử lí chức năng Ghi chú 1 trang o Kết nối vào MySQL list_dang_cot o Chọn CSDL QL_BAN_SUA 243 o Đọc bảng sua o Thiết kế và hiển thị thông tin các sản phẩm sữa nhƣ hình trên, trong đó: - Mỗi dòng có năm cột, trong mỗi cột có một table hiển thị thông tin sữa (tên sữa, trọng lƣợng, đơn giá) và hình ảnh. 7. List dạng cột có link Tạo hai trang, trong đó: - Trang đầu hiển thị thông tin các sản phẩm sữa dạng list và có link nhƣ hình sau: - Trang sau hiển thị chi tiết của sản phẩm sữa đã chọn của trang trƣớc: Yêu cầu chức năng: STT Đối tƣợng Yêu cầu xử lí chức năng Ghi chú 1 trang o Kết nối vào MySQL list_dang_cot_co_link o Chọn CSDL QL_BAN_SUA o Đọc bảng sua o Thiết kế và hiển thị thông tin các sản phẩm sữa nhƣ hình trên, trong đó: 244 - Mỗi dòng có năm cột, mỗi cột có một table hiển thị thông tin sữa và hình ảnh. - Ở mỗi tên sữa tạo một link qua trang list_chi_tiet và truyền vào mã sữa 2 trang list_chi_tiet o Hiển thị chi tiết sản phẩm sữa nhƣ hình trên tƣơng ứng với mã sữa lấy từ trang list_dang_cot_co_link truyền qua. 8. List chi tiết có phân trang Tạo trang hiển thị thông tin chi tiết các sản phẩm sữa dạng list có phân trang: Yêu cầu chức năng: STT Đối tƣợng Yêu cầu xử lí chức năng Ghi chú 1 trang o Kết nối vào MySQL list_phan_trang o Chọn CSDL QL_BAN_SUA o Đọc bảng sữa o Thiết kế và hiển thị thông tin các sản phẩm sữa có phân trang nhƣ hình trên - Gọi sử dụng class pager cho sẵn để phân trang (hai sản phẩm một trang). 9. Tìm kiếm đơn giản Tạo trang tìm kiếm và hiển thị thông tin chi tiết các sản phẩm sữa dạng list: 245 Yêu cầu chức năng: Ghi STT Đối tƣợng Yêu cầu xử lí chức năng chú 1 trang o Kết nối vào MySQL tim_kiem_don_gian o Chọn CSDL QL_BAN_SUA o Thực hiện việc tìm kiếm dựa trên tên sữa (tƣơng đối) do ngƣời dùng nhập vào và hiển thị nhƣ hình trên nếu nhƣ tìm thấy, và thông báo "Không tìm thấy sản phẩm này" nếu không tìm thấy o Cho biết có bao nhiêu sản phẩm đƣợc tìm thấy. 10. Tìm kiếm nâng cao Tạo trang tìm kiếm nâng cao và hiển thị thông tin chi tiết các sản phẩm sữa dạng list: 246 Yêu cầu chức năng: STT Đối tƣợng Yêu cầu xử lí chức năng Ghi chú 1 trang o Kết nối vào MySQL tim_kiem_nang_cao o Chọn CSDL QL_BAN_SUA o Thực hiện việc tìm kiếm dựa trên loại sữa, hãng sữa mà ngƣời dùng chọn và tên sữa (tƣơng đối) do ngƣời dùng nhập vào và hiển thị nhƣ hình trên nếu nhƣ tìm thấy, và thông báo "Không tìm thấy sản phẩm này" nếu không tìm thấy o Cho biết có bao nhiêu sản phẩm đƣợc tìm thấy. 11. Thêm mới Tạo trang thêm mới sản phẩm sữa nhƣ sau: 247 Yêu cầu thiết kế: STT Đối tƣợng Yêu cầu xử lí chức năng Ghi chú 1 Form - Đặt tên cho Form - Thiết lập phƣơng thức cho Form là pos - Và action của Form là tên của trang 2 Điều khiển - Sử dụng điều khiển TextField, List/Menu, Button - Trong đó, đọc các loại sữa trong bảng loại sữa và gán vào cho list/menu loại sữa - Và đọc các hãng sữa trong bảng hãng sữa và gán vào cho list/menu hãng sữa Yêu cầu chức năng: STT Đối tƣợng Yêu cầu xử lí chức năng Ghi chú 248 1 Nút Thêm mới o Kết nối vào MySQL o Chọn CSDL QL_BAN_SUA o Thực hiện việc thêm mới một sữa vào bảng sữa sau khi đã kiểm tra dữ liệu nhập vào hợp lệ, nếu không hợp lệ thì thông báo "Kiểm tra lại thông tin nhập vào" o Sau khi thêm sữa mới vào bảng sữa, hiển thị lại thông tin của sữa này theo định dạng hình trên 12. Xóa – Sửa - Tạo ba trang trang hiển thị - sửa - xóa thông tin khách hàng nhƣ sau: - Trang đầu tiên hiển thị toàn bộ thông tin khách hàng và hai link "Sửa", "Xóa" Trang thứ hai liệt kê thông tin cho ngƣời dùng cập nhật: Trang thứ ba dùng để xóa thông tin khách hàng: 249 Yêu cầu thiết kế: STT Đối tƣợng Yêu cầu xử lí chức năng Ghi chú 1 Form - Đặt tên cho Form cập nhật thông tin khách hàng - Đặt tên cho Form xóa thông tin khách hàng - Thiết lập phƣơng thức cho Form là post - Và action của Form là tên của trang 2 Điều khiển - Sử dụng điều khiển TextField, Radio Group, Button - Trong đó, mã khách hàng không cho ngƣời dùng cập nhật Yêu cầu chức năng STT Đối tƣợng Yêu cầu xử lí chức năng Ghi chú 1 Trang o Kết nối vào MySQL thong_tin_khach_hang o Chọn CSDL QL_BAN_SUA o Đọc dữ liệu trong bảng khách hàng và hiển thị nhƣ hình trên o Ở mỗi dòng thông tin khách hàng tạo thêm một link cập nhật để chuyển sang trang cập nhật kèm theo mã của khách hàng đƣợc chọn và link xóa để sang trang xóa thông tin khách hàng. o Cột giới tính hiển thị dạng Nam/Nữ 2 Nút Cập nhật (trang o Kết nối vào MySQL cập nhật khách hàng) o Chọn CSDL QL_BAN_SUA o Lấy mã khách hàng cần cập nhật thông tin, sau đó tìm và hiển thị 250 thông tin của khách hàng lên các điều khiển tƣơng ứng trên form o Kiểm tra thông tin khách hàng sau khi cập nhật -> nếu thấy hợp lệ thì thêm vào bảng khách hàng trong CSDL, ngƣợc lại thì thông báo: "Kiểm tra lại thông tin" o Tạo link quay về trang thông tin khách hàng 3 Nút Xóa (trang xóa o Kết nối vào MySQL khách hàng) o Chọn CSDL QL_BAN_SUA o Lấy mã khách hàng cần xóa thông tin, sau đó tìm và hiển thị thông tin của khách hàng lên các điều khiển tƣơng ứng trên form. o Kiểm tra xem khách hàng này đã mua hàng hay chƣa, nếu chƣa mua hàng thì cho phép xóa còn ngƣợc lại thì thông báo "Khách hàng đã mua hàng nên không thể xóa đƣợc". o Tạo link quay về trang thông tin khách hàng Bài 3. Tạo Website theo các yêu cầu sau: 1. Tạo một ứng dụng Web cơ bản cho phép quản lý danh sách nhân viên và phòng ban. Gồm hai form cơ bản: - Default.php: trang này cho phép gọi các trang quản lý nhân viên và phòng ban - qlnv.php: cho phép hiển thị danh sách nhân viên, ngoài ra có chức năng cập nhật thông tin của nhân viên. Danh sách nhân viên này có hỗ trợ chức năng phân trang. - qlpb.php: cho phép chọn một phòng ban và xem danh sách nhân viên trong phòng ban, ngoài ra hiển thị thông tin của ngƣời phụ trách phòng ban chính phòng ban. Hướng dẫn: 1.1. Cơ sở dữ liệu Field Name Field Type Field Size MaPhong varchar 10 TenPhong varchar 100 ChucNang varchar 200 TruongPhong varchar 100 251 Bảng PhongBan 1.2. Giao diện Giao diện trang default.php Giao diện trang qlnv.php Giao diện trang qlpb.php 2. Tạo một ứng dụng Web cơ bản cho phép quản lý album bài hát: - Cho phép user xem các bài hát theo các mục nhƣ: tên tác giả, thể loại, album - User có thể tạo mới một album từ các bài hát đã có trong danh sách bài hát Ứng dụng gồm 2 trang chính nhƣ sau: - SongManaging.php: trang này cho phép ngƣời dùng chọn xem các bài hát theo tên tác giả, thể loại và các album có sẵn. Giao diện của trang Web đơn giản nhƣ sau: 252 Giao diện trang SongManaging.php Minh họa cách thao tác trên trang SongManaging.php - Album.php: Cho phép user tạo album mới với tên gọi và danh sách các bài hát đã chọn trong trang SongManaging.php. Giao diện trang Album.php Hướng dẫn: 2.1. Cơ sở dữ liệu: tạo cơ sở dữ liệu SongAlbum có các bảng nhƣ sau: - Albums: chứa danh sách các album - Songs: chứa danh sách các bài hát - AlbumSong: chứa danh sách các bài hát thuộc album - Artist: danh sách các nghệ sỹ - Genres: thể loại 253 Field Name Field Type Field Size AlbumID int AlbumName varchar 100 CreateDate date Bảng Album Field Name Field Type Field Size AlbumID int SongID int Bảng AlbumSong Field Name Field Type Field Size ArtistID int ArtistName varchar 100 Bảng Artist Field Name Field Type Field Size GenrelID int GenreName varchar 50 Bảng Genres Field Name Field Type Field Size SongID int SongName varchar 200 GenreID int ArtistID int Bảng Song 3. Để quản lý bán sách của một cửa hàng trên mạng ngƣời ta xây dựng một Website đƣợc thiết kế giao diện nhƣ sau: 254 Dữ liệu đƣợc lƣu trữ trong 2 bảng Sach và Thanhvien gồm các trƣờng nhƣ sau: Sach (id, Tensach, Tacgia, Nhaxb, Namxb, Sotrang, Mota, Hinhanh) Thanhvien (Tentruynhap, Matkhau, Hoten, Email, Quyen) 3.1. Sử dụng phần mềm MySQL Server tạo ra các bảng dữ liệu có cấu trúc nhƣ trên (với trƣờng và độ rộng phù hợp). 3.2. Thiết kế Website có cấu trúc nhƣ trên với hình ảnh phù hợp 3.3. Xây dựng các trang Web cho các mục: - Sản phẩm: trang “Thêm - Sửa” dùng để nhập mới, sửa đổi hoặc xóa một sách; trang “Tìm kiếm” dùng để tìm kiếm một sách theo tên; trang “Danh sách” dùng để xem danh sách các cuốn sách. - Hệ thống: trang “Danh sách thành viên” để xem danh sách thành viên; trang “Thêm - Sửa thành viên” dùng để nhập mới, sửa đổi hoặc xóa một thành viên. 3.4. Xây dựng lớp, đối tƣợng, phƣơng thức, sự kiện xử lý cho mục đăng nhập hệ thống sao cho nếu username và password đúng sẽ cho đăng nhập hệ thống và trang thái sẽ đƣợc thay đổi theo tên ngƣời dùng, ngƣợc lại thì sẽ báo lỗi, trạng thái là chƣa đăng nhập. 255 TÀI LIỆU THAO KHẢO [1]. Khuất Thùy Dƣơng. Lập trình ứng dụng Web với PHP (Tập 1,2 ), NXB Đại Học Quốc Gia TP.HCM, 2008. [2]. Phạm Hữu Khang. Xây dựng ứng dụng web bằng PHP và MySQL. Nhà xuất bản Phƣơng Đông. 2005. [3]. Nguyễn Trƣờng Sinh. Sử dụng PHP và MySQL thiết kế web động, NXB Thống kê, 2005. [4]. Nguyễn Tấn Trƣờng. Hƣớng Dẫn Thực Hành PHP Và MySQL Toàn Tập, NXB: Thanh Niên, 2008. [5]. Elizabeth Naramore, Jason Gerner, Yann Le Scouarnec, Jeremy Stolz, Michael K. Glass. Begining PHP 5, Apache and MySQL web development, Wrox Publishing, 2005. [6]. Michael Glass, Yann Le Scouarnec, Elizabeth Naramore, Gary Mailer, Jeremy Stolz, and Jason Gerner. Beginning PHP, Apache, MySQL®Web Development, Wiley Publishing, 2004. [7]. Luke Welling, Laura Thomson. PHP and MySQL Web Development, 4th Edition. Addison-Wesley Publishing, 2008 256
File đính kèm:
- giao_trinh_lap_trinh_ma_nguon_mo_phan_2.pdf