Giáo trình Hướng dẫn thực hành ứng dụng dữ liệu web
Bài 1: Tính diện tích hình chữ nhật
Mục đích:
Làm quen với cách viết chương trình bằng ngôn ngữ PHP
Yêu cầu:
Thiết kế Form tính diện tích hình chữ nhật
Yêu cầu thiết kế:
Stt Đối
tượng
Yêu cầu Ghi chú
1 Form Đặt tên cho Form
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, Button
TextField Diện tích không cho phép
nhập liệu và chỉnh 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ú
1 Nút lệnh
Tính
Khi chọn, thực hiện tính
o Diện tích = Chiều dài * Chiều
rộng
Hướng dẫn giải(7)
Stt Đối tượng Xử lý
1 Trang Tạo một trang tên là dien_tich_hcn.php
2 Nút lệnh
Tính
Lần lượt lấy các giá trị trên form thông qua
biến $_POST
$ten_bien = $_POST[“ten_dieu_khien”];
Tính diện tích hình chữ nhật
$dt = $dai * $rong;
Xuất diện tích ($dt) ra TextField diện tích
Bài 2: Tính diện tích và chu vi hình tròn
Mục đích:
Làm quen các điều khiển cơ sở
Cách sử dụng hằng số
Yêu cầu:
Thiết kế Form tính diện tích và chu vi hình tròn
Yêu cầu thiết kế:
Stt Đối
tượng
Yêu cầu Ghi chú
1 Form Đặt tên cho Form
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,
Button(8)
Các TextField Diện tích và Chu vi
không cho phép nhập liệu và chỉnh
sửa
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 Hướng dẫn thực hành ứng dụng dữ liệu web
o Viết hàm hien_thi_hinh($ma_hinh) để hiển thị hình ở cột trung tâm - Trang bo_suu_tap_ao_cuoi.php: o Gọi sử dụng trang noi_dung.php ở cột trái để hiển thị hình ảnh như yêu cầu o Gọi hàm nextPrev($_GET[‘page’], $pages) ở cuối cột trái để hiển thị phân trangn o Gọi hàm hien_thi_hinh($ma_hinh) để hiển thị hình ở cột trung tâm khi người dùng được chọn. (Nếu người dùng chưa chọn thì hiển thị hình đầu tiên của mỗi trang như trên) Hướng dẫn giải: - Trang noi_dung.php: o Xác định số dòng nội dung cần hiển thị cho một trang và gán vào cho biến $limit = 4 o Tìm dòng bắt đầu của mỗi trang bằng hàm findStart() và gán cho biến $start o Đếm số mẩu tin có trong bảng bằng hàm mysql_num_rows() và gán vào cho biến $count o Tính tổng số trang bằng hàm findPages($count, $limit) o Để đọc bảng dùng mysql_query(“select limit $start, $limit”) o Dùng một biến đềm $t = 0 và tăng dần theo từng dòng o Duyệt các mẩu tin có được bằng hàm mysql_fetch_row() o Thêm vào một table có một dòng hai cột Vì mỗi trang hiển thị 4 mẩu tin, nếu biến $t chia hết cho 2 thì xuất theo dạng cột đầu hiển thị hình kèm theo link chứa mã hình, còn cột thứ hai thì bỏ trống, nếu $t không chia hết cho 2 thì xuất ngược lại. (106) o Xây dựng hàm hien_thi_hinh_anh($ma_hinh) để hiển thị hình ảnh được chọn - Trang bo_suu_tap_ao_cuoi.php o Gọi sử dụng trang noi_dung.php o Cột bên trái hiển thị danh mục hình ảnh và phân trang o Cột trung tâm: lấy giá trị mã hình ảnh được chọn bằng $_REQUEST, sau đó gọi hàm hien_thi_hinh_anh($ma_hinh): để hiển thị hình ảnh như yêu cầu) (107) PHẦN 4: LẬP TRÌNH ỨNG DỤNG QUẢN LÝ TRÊN WEB BUỔI THỰC HÀNH SỐ 11 Giới thiệu class database - Được xây dựng để xử lý các công việc liên quan đến CSDL - Có các phương thức cơ bản như: mở kết nối CSDL, thực hiện truy vấn trong CSDL, đóng kết nối CSDL - Ngoài ra còn có các phương thức cần thiết khác Các thuộc tính - var $_sql = “; -> câu lệnh truy vấn - var $_connection = “; -> kết nối - var $_cursor = null; -> kết quả của câu lệnh truy vấn Phương thức database(): Dùng để kết nối vào CSDL - Kết nối thông thường o Tạo kết nối CSDL $db = mysql_connect(‘localhost’, ‘root’, ‘’); o Kiểm tra kết nối if (!$db) { echo “không thể kết nối CSDL”; exit; } o Chọn CSDL mysql_select_db(“ql_ban_sua”); - Phương thức kết nối function database() {$this ->connection = @mysql_connect(“loacalhost’,’root’,’’); if (!$this ->_connection){ die (“không thể kết nối MySQL”); } $db = ‘ql_ban_sua’; if ($db != “ && !mysql_select_db($db, $this ->_connection)){ die (“Không thể mở CSDL $db: “.mysql_error()); } (108) } Phương thức setQuery(): gán giá trị cho câu lệnh truy vấn - Thông thường $sql = “câu lệnh truy vấn”; - Phương thức setQuery function setQuery($sql){ $this ->_sql = $sql; } Phương thức loadAllRow(): Lấy tất cả các dòng dữ liệu (mẩu tin) function loadAllRow(){ if (!$cur = $this ->query())) //kiểm tra câu lệnh truy vấn return null; $array = array(); // khai báo mảng để lưu trữ các mẩu tin từ câu lệnh truy vấn while ($row = mysql_fetch_asscoc($cur)) //lần lượt duyệt từng mẩu tin trong câu truy vấn và gán vào mảng { $array[] = $row; } mysql_free_result($cur); //giải phóng câu lệnh truy vấn return $arrar; // trả về mảng chứa các mẩu tin } Phương thức query(): thực hiện câu lệnh truy vấn. Sử dụng khi muốn thực hiện việc thêm – xóa – sửa mẩu tin - Thông thường $result = mysql_query(‘câu lệnh truy vấn’, $db); - Phương thức query() function query(){ $this ->_cursor = mysql_query($this ->_sql, $this ->_connection); return $this ->_cursor; } Phương thức disconnect(): đóng kết nối CSDL - Thông thường mysql_close($db); (109) - Phương thức disconnect function disconnect(){ mysql_close(this ->_connection); } Bài 1: Xây dựng lớp xử lý hãng sữa: XL_HANG_SUA Phân tích yêu cầu: - Xây dựng các hàm cần thiết để truy xuất và cập nhật dữ liệu trong bảng hang_sua dựa trên các hàm đã được xây dựng trong class database Hướng dẫn giải: - Gọi sử dụng trang chứa class database - Xây dựng class xl_hang_sua kế thừa từ class database - Khai báo các thuộc tính của class (nếu cần) - Tạo các hàm cần thiết cho class (danh_sach_hang_sua(): dùng để đọc toàn bộ các mẩu tin trong bảng hãng sữa, ) Bài 2: Xây dựng lớp xử lý loại sữa: XL_LOAI_SUA Phân tích yêu cầu: - Xây dựng các hàm cần thiết để truy xuất và cập nhật dữ liệu trong bảng loai_sua dựa trên các hàm đã được xây dựng trong class database Hướng dẫn giải: - Gọi sử dụng trang chứa class database - Xây dựng class xl_loai_sua kế thừa từ class database - Khai báo các thuộc tính của class (nếu cần) - Tạo các hàm cần thiết cho class (danh_sach_loai_sua(): dùng để đọc toàn bộ các mẩu tin trong bảng loại sữa, ) Bài 3: Xây dựng lớp xử lý loại sữa: XL_SUA Phân tích yêu cầu: - Xây dựng các hàm cần thiết để truy xuất và cập nhật dữ liệu trong bảng sua dựa trên các hàm đã được xây dựng trong class database Hướng dẫn giải: - Gọi sử dụng trang chứa class database - Xây dựng class xl_sua kế thừa từ class database - Khai báo các thuộc tính của class (nếu cần) - Tạo các hàm cần thiết cho class (110) o danh_sach_sua(): dùng để đọc toàn bộ các mẩu tin trong bảng sữa o danh_sach_sua_theo_hang_theo_loai($strsql): lọc các mẩu tin theo câu lệnh truy vấn với tham số truyền vào $strsql o danh_sach_sua_ban_chay(): lọc các mẩu tin sữa bán chạy nhất o them_sua(): thêm mới một sữa vào bảng sữa o Bài 4: Xây dựng lớp xử lý khách hàng: XL_KHACH_HANG Phân tích yêu cầu: - Xây dựng các hàm cần thiết để truy xuất và cập nhật dữ liệu trong bảng khach_hang dựa trên các hàm đã được xây dựng trong class database Hướng dẫn giải: - Gọi sử dụng trang chứa class database - Xây dựng class xl_khach_hang kế thừa từ class database - Khai báo các thuộc tính của class (nếu cần) - Tạo các hàm cần thiết cho class o Lay_DS(): dùng để đọc toàn bộ các mẩu tin trong bảng khách hàng o Them_khach_hang(): thêm mới một khách hàng vào bảng khách hàng o . (111) BUỔI THỰC HÀNH SỐ 12 Bài 5: Tạo trang danh mục hãng sữa, loại sữa như sau: Phân tích yêu cầu: - Gọi sử dụng hai lớp xl_hang_sua và xl_loai_sua vào trang - Hiển thị danh mục hãng sữa và loại sữa như hình bên Hướng dẫn giải: - Gọi sử dụng class xl_hang_sua và xl_loai_sua bằng cách dùng inlucde hay include_once include(“data/xl_hang_sua.php”) include(“data/xl_loai_sua.php”) - Khai báo hai lớp $xl_hang_sua và $xl_loai_sua: $xl_hang_sua = new xl_hang_sua(); $xl_loai_sua = new xl_hang_sua(); - Gọi hàm danh_sach_hang_sua() và hàm danh_sach_loai_sua() để lấy các mẩu tin có trong hai bảng loai_sua và hang_sua và gán cho 2 mảng là $mang_hang_sua và $mang_loai_sua $mang_hang_sua = $xl_hang_sua -> danh_sach_hang_sua(); (112) - Duyệt và xuất ra các hãng sữa và loại sữa theo từng dòng bằng foreach() theo định dạng như hình trên foreach ($mang_hang_sua as $row){ $ma_hang_sua = $row[‘Ma_hang_sua’]; $ten_hang_sua = $row[‘Ten_hang_sua’]; echo $ten_hang_sua. “”; } (Làm tương tự cho $mang_loai_sua) Bài 6: Tạo trang danh mục sữa như sau: Phân tích yêu cầu: - Gọi sử dụng hai lớp xl_sua và hiển thị thông tin định dạng như hình Hướng dẫn giải: - Gọi sử dụng class xl_sua bằng cách dùng inlucde - Gọi hàm danh_sach_sua() để lấy các mẩu tin có trong bảng sua và gán vào cho biến $mang_sua - Duyệt và xuất ra các sữa theo từng dòng bằng foreach(): có định dạng mỗi sữa hiển thị trên một dòng gồm 4 cột (của 1 table): cột đầu là hình ảnh sữa, cột hai: tên sữa, cột ba: trọng lượng, cột 4: đơn giá (có định dạng lại bằng hàm number_format()) (113) Bài 7: Tạo Form Thêm một khách hàng mới vào bảng khách hàng. Phân tích yêu cầu: - Gọi sử dụng lớp xl_khach_hang Hướng dẫn giải: - Gọi sử dụng class xl_khach_hang - Lấy các thông tin của khách hàng trên form và gán cho các biến tương ứng - Kiểm tra các giá trị lấy được - Gọi hàm them_khach_hang($makh, $tenkh, $phai, $dia_chi, $dien_thoai, $email): để thêm một khách hàng mới vào bảng khách hàng. - Thông báo kết quả sau khi thêm mới (114) BUỔI THỰC HÀNH SỐ 13 Bài 8: Tạo trang danh mục sữa bán chạy: Phân tích yêu cầu: - Gọi sử dụng lớp xl_sua - Dùng hàm danh_sach_sua_ban_chay(): để lấy 5 sữa bán chạy nhất và hiển thị như định dạng trên Hướng dẫn giải: - Gọi sử dụng class xl_sua bằng cách dùng include - Gọi hàm danh_sach_sua_ban_chay() để lấy 5 loại sữa bán chạy nhất và gán vào cho biến $mang_sua - Duyệt mảng sữa và xuất ra các tên sữa theo từng dòng bằng foreach() theo định dạng được yêu cầu Bài 9: Tạo trang hoàn chỉnh 1: Phân tích yêu cầu: Tạo các trang sau (115) - Trang banner.htm - Trang footer.htm - Trang sữa bán chạy có link: - Dùng trang sua_ban_chay đã có sẵn lưu lại với tên sua_ban_chay_link sau đó thêm link cho từng sữa (để link qua trang tong_hop_1) và định dạng lại như hình trên - Trang chi tiết sữa bán chạy: Gọi sử dụng hàm trong lớp xl_sua để lấy thông tin một sữa bán chạy khi người dùng chọn tên sữa. Hiển thị thông tin như hình trên. - Sau đó ráp lại thành một trang hoàn chỉnh có tên là trangn tong_hop_1.php (116) - Trang hoàn chỉnh: Hướng dẫn giải: Trang sua_ban_chay_link.php: - Làm tương tự như trang sua_ban_chay.php, chỉ khác ở phần tên sữa có thêm link: foreach ($mang_sua as $row){ $ma_sua = $row[“ma_sua”]; $ten_sua = $row[“ten_sua”]; echo “<a href = tong_hop_1.php?ma_sua =”.$ma_sua. “>$ten_sua”; } Trang chi_tiet_sua_ban_chay.php: - Thực hiện câu lệnh truy vấn và lấy thông tin sữa khi người dùng chọn sữa: if (isset($_REQUEST[“ma_sua”])){ $ma_sua = $_REQUEST[“ma_sua”]; (117) $strsql = “select * from SUA, LOAI_SUA, HANG_SUA where SUA.Ma_loai_sua = LOAI_SUA.Ma_loai_sua AND SUA.Ma_hang_sua = HANG_SUA.Ma_hang_sua AND Ma_sua like ‘$ma_sua’ ”; $mang_sua = $xl_sua - >danh_sach_sua_theo_hang_theo_loai($strsql); - Duyệt mảng sữa và xuất thông tin sữa được chọn giống như định dạng chi tiết sữa đã làm ở bài trước (tham khảo bài lưới định dạng cột có link) Trang tong_hop_1.php - Tạo một table có ba dòng o Dòng 1: gọi sử dụng trang banner.html o Dòng 2: cột trái gọi sử dụng trang sua_ban_chay_link.php o Dòng 2: cột phải gọi trang chi_tiet_sua_ban_chay.php o Dòng 3: gọi sử dụng trang footer.html (118) BUỔI THỰC HÀNH SỐ 14 Bài 10: Tạo trang hoàn chỉnh 2: Phân tích yêu cầu: Tạo các trang sau - Trang banner.htm - Trang footer.htm - Trang menu_phai.html: (119) - Trang loại – hãng sữa có link: (120) Dùng trang loai_hang_sua đã có sẵn lưu lại với tên laoi_hang_sua_link sau đó thêm link cho từng hãng sữa và từng loại sữa (để link qua trang tong_hop_2.php) và định dạng như hình. - Trang danh mục sữa theo loại - hãng: Gọi sử dụng hàm trong lớp xl_sua để lấy thông tin các sản phẩm sữa khi người dùng chọn hãng sữa hay loại sữa. Hiển thị thông tin như hình bên. - Sau đó ráp lại thành một trang hoàn chỉnh có tên trang là tong_hop_2.php Khi người dùng chưa chọn hãng sữa và loại sữa -> hiển thị toàn bộ danh mục sữa có trong bảng sữa Khi người dùng chọn 1 hãng sữa -> hiển thị các sữa thuộc hãng sữa được chọn (121) Hướng dẫn giải: Trang loai_hang_sua_link.php: - Làm tương tự như trang loai_hang_sua.php, chỉ khác ở phần tên hãng sữa, tên loại sữa sẽ có thêm link: foreach ($mang_hang_sua as $row){ .. echo “<a href=tong_hop_2.php?ma_hs =”.$ma_hang_sua. “>$ten_hang_sua”; } foreach ($mang_loai_sua as $row){ .. echo “<a href=tong_hop_2.php?ma_ls =”.$ma_loai_sua. “>$ten_loai_sua”; } Trang danh_muc_sua_loai_hang.php: - Thực hiện câu lệnh truy vấn và lấy thông tin sữa khi người dùng chọn loại sữa hoặc hãng sữa: if (isset($_REQUEST[“mahs”])){ $mahs = $_REQUEST[“mahs”]; $strsql = “select * from SUA where Ma_hang_sua like ‘$mahs’ ”; } (122) if (isset($_REQUEST[“mahs”])){ $mals = $_REQUEST[“mals”]; $strsql = “select * from SUA where Ma_loai_sua like ‘$mals’ ”; } Trang danh_muc_sua_loai_hang.php if (!isset ($_REQUEST[“mahs”]) && !isset($_REQUEST[“mals”])){ $strsql = “select * from sua order by Ma_hang_sua asc”; } $mang_sua = $xl_sua ->danh_sach_sua_theo_hang_theo_loai(strsql); Phần hiển thị làm tương tự như bài danh mục sữa Trang tong_hop_2.php: - Tạo một table có 3 dòng: + Dòng 1: Gọi sử dụng trang banner.htm + Dòng 2: cột trái gọi sử dụng trang loai_hang_sua_link.php + Dòng 2: cột trung tâm gọi sử dụng trang danh_muc_sua_theo_loai_hang.php + Dòng 2: cột phải gọi sử dụng trang menu_phai.php + Dòng 3: gọi sử dụng trang footer.php (123) BUỔI THỰC HÀNH SỐ 15 Bài 11: Tạo trang chủ hoàn chỉnh 3: Phân tích yêu cầu: Tạo các trang sau - Trang chi tiết sữa: - Trang thêm sữa mới: (124) - Trang sữa bán chạy: - Trang tìm kiếm sữa: (125) - Trang thêm khách hàng: - Sau đó ráp lại thành một trang web hoàn chỉnh theo sơ đồ sau: (126) Hướng dẫn giải: Trang tổng hợp (127) PHỤ LỤC 1. Upload code lên host bằng phần mềm Cute FTP - Bước 1: Kết nối với hosting bằng Cute FTP o Điền thông tin đăng nhập: ▪ Tên host ▪ User name ▪ Pass ▪ Port: 21 (mặc định) (tham khảo hình) o Click Connect để kết nối tới Host - Bước 2: Copy code trên máy tính vào thư mục public_html trên host o Tại khung Local Driver: Chọn thư mục chứa code web muốn up lên host (128) o Tại khung Site Manage, click chọn thư mục public html o Thực hiện copy - paste thư mục từ Local Driver sang thư mục public html o Hoàn thành quá trình Copy này là đã đẩy code web lên host thành công 2. Upload database lên hosting - Bước 1: Truy nhập vào tài khoản Host - Bước 2: Vào Cơ sở dữ liệu MySql để tạo tên database (129) - Bước 3: Click phpmyadmin để Import database từ file sql trên máy tính (130) TÀI LIỆU THAM KHẢO [1] Lập trình Ứng dụng Web với php – Tập 1, Trung tâm tin học – Đại học Khoa học tự nhiên - ĐH Quốc Gia TP. Hồ Chí Minh, 2018. [2] Lập trình Ứng dụng Web với php – Tập 2, Trung tâm tin học – Đại học Khoa học tự nhiên - ĐH Quốc Gia TP. Hồ Chí Minh, 2018. [3] Joel Murach, Ray Harris, Lập trình cơ bản PHP và MySQL, Nhà xuất bản Khoa học Kỹ thuật, 2013 [4] Joel Murach, Ray Harris, Lập trình nâng cao PHP và MySQL, Nhà xuất bản Khoa học Kỹ thuật, 2014 [5] Jeremy Osborn và nhóm AGI Creative, Thiết kế web với Dreamweaver, Nhà xuất bản Bách Khoa Hà Nội, 2016. [6] https://freetuts.net/hoc-php [7] https://www.codecademy.com/ [8] https://viettuts.vn/php [9] https://kungfuphp.com (131)
File đính kèm:
- giao_trinh_huong_dan_thuc_hanh_ung_dung_du_lieu_web.pdf