Ứng dụng cơ sở dữ liệu trên web với PHP và MySQL

pdf 56 trang phuongnguyen 4950
Bạn đang xem 20 trang mẫu của tài liệu "Ứng dụng cơ sở dữ liệu trên web với PHP và MySQL", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfung_dung_co_so_du_lieu_tren_web_voi_php_va_mysql.pdf

Nội dung text: Ứng dụng cơ sở dữ liệu trên web với PHP và MySQL

  1. ỨNG DỤNG CƠ SỞ DỮ LIỆU TRÊN WEB VỚI PHP VÀ MYSQL Giảng viên: Hoàng Văn Hiệp Bộ môn Kỹ thuật Máy tính Khoa CNTT – ĐH Bách Khoa Hà Nội
  2. NỘI DUNG  Giới thiệu về MySQL  Lập trình CSDL với PHP và MySQL
  3. CÁC KIẾN THỨC CƠ BẢN VỀ CSDL  Cơ sở dữ liệu  Bảng  Trường (các cột)  Bản ghi (các dòng)  Khóa (key)  Truy vấn  Thực hiện thao tác: tạo mới, cập nhật, xóa,  Trả về kết quả
  4. GIỚI THIỆU VỀ MYSQL  Là hệ quản trị CSDL thích hợp với PHP  Được cung cấp hoàn toàn miễn phí  Có tốc độ thực hiện nhanh  Chạy được trên nhiều nền hệ điều hành Windows, Unix, Linux  Được cải thiện liên tục
  5. CÀI ĐẶT VÀ SỬ DỤNG  Có thể cài đặt riêng hoặc cài đặt cùng gói phần mềm XAMPP.  Sử dụng  Thao tác cửa sổ console, sử dụng các lệnh  Sử dụng các phần mềm hỗ trợ
  6. SỬ DỤNG PHẦN MỀM NAVICAT
  7. THIẾT KẾ BẢNG
  8. THAO TÁC DỮ LIỆU
  9. TẠO TRUY VẤN
  10. CÁC KIỂU DỮ LIỆU ĐỐI VỚI MYSQL  Kiểu chuỗi ký tự: có thể chứa các ký tự, các chữ số và các ký tự đặc biệt  Kiểu số  Kiểu thời gian
  11. DỮ LIỆU KIỂU VĂN BẢN Kiểu dữ liệu Mô tả CHAR(size) Chuỗi có độ dài cố định, tham số size chỉ ra độ dài của chuỗi, có giá trị lớn nhất là 255 VARCHAR(size) Chuỗi có độ dài thay đổi, tham số size chỉ ra độ dài lớn nhất của chuỗi, có giá trị lớn nhất là 255 TINYTEXT Chuỗi có độ dài lớn nhất là 255 ký tự TEXT Chuỗi có độ dài lớn nhất là 65,535 ký tự MEDIUMTEXT Chuỗi có độ dài lớn nhất 16,777,215 ký tự LONGTEXT Chuỗi có độ dài lớn nhất 4,294,967,295 ký tự
  12. DỮ LIỆU KIỂU SỐ Kiểu dữ liệu Mô tả TINYINT Kiểu nguyên có giá trị từ -128 đến 127; từ 0 đến 255 đối với số không dấu SMALLINT Kiểu nguyên có giá trị từ -32,768 đến 32,767; từ 0 đến 65,535 đối với số không dấu MEDIUMINT Kiểu nguyên có giá trị từ -8,388,608 đến 8,388,607; từ 0 đến 16,777,215 đối với số không dấu INT Kiểu nguyên có giá trị từ -2,147,483,648 đến 2,147,483,647; từ 0 đến 4,294,967,295 đối với số không dấu FLOAT Số thực độ chính xác đơn DOUBLE Số thực độ chính xác kép
  13. KIỂU DỮ LIỆU THỜI GIAN Kiểu dữ liệu Mô tả DATE Ngày tháng, định dạng YYYY-MM-DD DATETIME Kết hợp ngày tháng và thời gian, định dạng YYYY-MM-DD HH:MM:SS TIME Thời gian, định dạng HH:MM:SS YEAR Năm, định dạng YYYY
  14. THAO TÁC CSDL VỚI PHP VÀ MYSQL  Kết nối với máy chủ CSDL  Chọn CSDL  Thực hiện truy vấn  Xử lý kết quả  Đóng kết nối
  15. VÍ DỤ "; Xử lý kết quả echo " " . $row["tieude"] . " "; echo $row["mota"] . " "; } mysql_close($con); Đóng kết nối ?>
  16. KẾT NỐI MÁY CHỦ CSDL  Cú pháp mysql_connect(servername, username, password)  Các tham số  servername: tên của máy chủ CSDL cần kết nối, mặc định là “localhost:3306”  username: tên sử dụng để truy nhập vào máy chủ CSDL  password: mật khẩu truy nhập  Giá trị trả về  giá trị kết nối thành công tới máy chủ CSDL (giá trị khác 0)  trong trường hợp không kết nối được, trả về giá trị 0 (false)
  17. ĐÓNG KẾT NỐI  Cú pháp mysql_close(connection)  Tham số  connection: kết nối đã được thiết lập bằng lệnh mysql_connect() trước đó  Chú ý:  Việc sử dụng lệnh mysql_close() không thực sự cần thiết đối với các kết nối tạm thời, các kết nối tự động được đóng khi hết đoạn kịch bản  Tăng tính chặt chẽ của chương trình, yêu cầu có mysql_close()
  18. LỆNH DIE()  Cú pháp die(“chuỗi_ký_tự”)  Tác dụng  Hiển thị thông báo và ngừng thực hiện các kịch bản sau đó  Thường dùng để thông báo lỗi
  19. CHỌN CSDL  Cú pháp mysql_select_db(database, connection)  Tham số  database: cơ sở dữ liệu cần thao tác  connection: kết nối đã được thiết lập  Giá trị trả về  Trả về giá trị 0 (false) nếu có lỗi
  20. VÍ DỤ "; $selected_db = mysql_select_db("vuilb_site", $con); if (!$selected_db) die('Could not select: ' . mysql_error()); echo "Da chon CSDL "; // some code mysql_close($con); ?>
  21. THỰC HIỆN TRUY VẤN  Select Query và Executed Query  Cú pháp mysql_query(query, connection)  Tham số  query: câu lệnh truy vấn  connection: kết nối đã được thiết lập  Giá trị trả về  Trả về giá trị 0 (false) nếu có lỗi
  22. TẠO CƠ SỞ DỮ LIỆU  Lệnh SQL CREATE DATABASE database_name
  23. XÓA CƠ SỞ DỮ LIỆU  Lệnh SQL DROP DATABASE database_name
  24. TẠO BẢNG  Lệnh SQL CREATE TABLE table_name ( column_name1 data_type NOT NULL, PRIMARY KEY (column_name), column_name2 data_type, column_name3 data_type, )
  25. XÓA BẢNG  Lệnh SQL DROP TABLE table_name
  26. XÓA BẢNG
  27. THÊM BẢN GHI MỚI  Lệnh SQL INSERT INTO table_name VALUES (value1, value2, value3, )  Hoặc INSERT INTO table_name (column1, column2, column3, ) VALUES (value1, value2, value3, )
  28. TẠO BẢN GHI TỪ FORM  Thông tin nhận từ form được lưu vào CSDL  Thông tin được đọc từ biến $_GET, $_POST hoặc $_REQUEST rồi được chèn vào CSDL
  29. VÍ DỤ - TẠO FORM Nhap thong tin tu form Firstname: Lastname: Age:
  30. XỬ LÝ THÔNG TIN
  31. TRUY XUẤT DỮ LIỆU  Sử dụng câu lệnh SQL SELECT column_name(s) FROM table_name WHERE column_name operator value ORDER BY column_name(s) ASC|DESC
  32. XỬ LÝ KẾT QUẢ  Lệnh mysql_fetch_array(data)  Trả về 1 bản ghi trong tập kết quả dưới dạng mảng kết hợp, trả về giá trị 0 (false) nếu có lỗi hoặc không còn bản ghi nào nữa.  Tự động chuyển sang bản ghi tiếp theo.
  33. VÍ DỤ "; } mysql_close($con); ?>
  34. ĐẾM SỐ BẢN GHI  Lệnh SQL SELECT COUNT(*) AS alias FROM table_name WHERE column_name operator value  Lệnh PHP mysql_num_rows(data)
  35. VÍ DỤ 20"); $row = mysql_fetch_array($result); echo "So ban ghi: " . $row['nums']; mysql_close($con); ?>
  36. VÍ DỤ 20"); $nums = mysql_num_rows($result); echo "So ban ghi: " . $nums; mysql_close($con); ?>
  37. PHÂN TRANG VỚI PHP  Chia tập kết quả ra thành các trang  Mỗi trang hiển thị các bản ghi trong 1 đoạn nào đó (1-5, 6-10, 11-15, )  Để tính số trang  Đếm số bản ghi (vd: 18 bản ghi)  Biết số bản ghi cho 1 trang (ví dụ: 5 bản ghi) ►Tính ra được số trang (ceil(18/5))
  38. PHÂN TRANG (TIẾP)  Truy xuất toàn bộ kết quả, hiển thị các bản ghi tương ứng với từng trang một.  Phải truy xuất toàn bộ dữ liệu  Truy xuất các bản ghi tương ứng với một trang xác định.  Chỉ truy xuất các bản ghi cần thiết
  39. PHÂN TRANG (TIẾP)  Sử dụng lệnh SQL SELECT LIMIT start, length  start là vị trí bắt đầu truy xuất  length là số bản ghi cần truy xuất
  40. VÍ DỤ "; } mysql_close($con); ?>
  41. CẬP NHẬT DỮ LIỆU  Lệnh SQL UPDATE table_name SET column1=value, column2=value2, WHERE some_column=some_value
  42. XÓA BẢN GHI  Lệnh SQL DELETE FROM table_name WHERE some_column = some_value
  43. YÊU CẦU  Ôn lại các lệnh SQL  Thực hiện với PHP  Đọc thêm các tài liệu tham khảo
  44. CHÚ Ý!  Lệnh chuyển trang tự động trong PHP header(“location: url”);  Ví dụ header(“location: index.php”);  Trong JavaScript window.location = url;  Ví dụ window.location = index.php;
  45. CHÚ !Ý  Truyền tham số cho một trang PHP  Mục đích: truyền thông tin cho một trang cần xử lý.  Ví dụ: gọi trang delete.php để xóa 1 bản ghi nào đó trong tập bản ghi  Thực hiện: truyền thông tin theo phương thức GET delete.php?id=5 + Trang delete.php sử dụng biến $_GET[] để lấy thông tin tham số được truyền echo $_GET[„id‟]; //trả về giá trị 5
  46. BÀI TẬP 1  Tạo form đăng nhập gồm username và password  Kiểm tra CSDL xem có username đó chưa?  Nếu có thì kiểm tra mật khẩu, nếu đúng thì báo đăng nhập thành công.  Nếu không có thì thông báo là username không tồn tại.
  47. BÀI TẬP 2  Tạo form đăng ký người sử dụng gồm tên người sử dụng, mật khẩu và nhập lại mật khẩu  Kiểm tra xem mật khẩu và nhập lại mật khẩu có trùng nhau không  Kiểm tra trên CSDL xem có username đó chưa?  Nếu có rồi thì báo là username đã tồn tại  Nếu chưa có thì thêm username vào CSDL
  48. BÀI TẬP 3  Giả sử có CSDL chứa danh sách sinh viên  Thực hiện in danh sách sinh viên dưới dạng bảng bao gồm các cột là số thứ tự, họ tên và ngày sinh
  49. BÀI TẬP 4  Giả sử có CSDL chứa các tin tức bao gồm thời gian, tiêu đề, mô tả và nội dung.  Thực hiện việc hiển thị phân trang  Mỗi trang hiển thị 5 tin (5 bản ghi)  Có 2 liên kết: >> để hiển thị trang sau