BÀi 36 PHP VÀ MYSQL

 

LAB PHP (CB) 15

CÁC QUY TRÌNH TƯƠNG TÁC DỮ LIỆU GIỮA PHP VÀ MYSQL

A – LÝ THUYẾT

Trong bài học ngày hôm nay, chúng ta sẽ tìm hiểu các quy trình tương tác dữ liệu giữa PHP và CSDL MySQL. Đó là cách thức Kết nối PHP đến CSDL, thao tác xuất nội dung trong CSDL ra trình duyệt cũng như là các thao tác thêm, xóa, sửa dữ liệu trong CSDL thông qua PHP

I – QUY TRÌNH KẾT NỐI GIỮA PHP VÀ MYSQL

1 – Kết nối tới CSDL

Điều đầu tiên trong quá trình làm việc qua lại giữa ngôn ngữ PHP và hệ quản trị CSDL MySQL đó là chúng ta phải có một kết nối giữa 2 ngôn ngữ này. Và đoạn code để kết nối một ngôn ngữ lập trình mà cụ thể ở đây là PHP và với một ngôn ngữ CSDL MySQL được thực hiện như sau:

$connect_db = mysql_connect(“hostname”, “username”, “password”);

Trong đó:

a)      hostname: Địa chỉ của Server. Giá trị được dùng ở đây là localhost

b)     username: Tên người dùng truy cập Database. Giá trị được sử dụng ở đây là root

c)      password: Mật khẩu truy cập Database. Nếu các bạn để mặc định là không đặt mật khẩu thì giá trị sử dụng ở đây là rỗng “”

Ví dụ:



2 – Lựa chọn CSDL

Sau khi quá trình kết nối thành công, vậy là PHP đã có thể làm việc được với MySQL. Việc tiếp theo đó là PHP cần làm việc với CSDL nào trong hàng loạt CSDL có trong MySQL. Chính vì lẽ đó mà chúng ta cần phải có một đoạn code để lựa chọn một CSDL cụ thể mà chúng ta muốn làm việc

$select_db = mysql_select_db(“ten_csdl”, $connect_db);

Trong đó:

a)      ten_csdl: Là tên của CSDL muốn kết nối đến

b)     $connect_db: Chính là biến kết nối vừa được khởi tạo ở trên

Ví dụ:

3 – Xét ngôn ngữ cho CSDL

Để có thể hiển thị được tiếng Việt khi xuất dữ liệu từ trong CSDL ra trình duyệt thông qua PHP thì chúng ta cần phải có đoạn code nhỏ sau đây

$set_lang = mysql_query(“SET NAME ‘utf8’”)

Ví dụ:

II – QUY TRÌNH THỰC THI TRUY VẤN SQL

1 – Tiến hành truy vấn SQL

Ở bước này chúng ta tiến hành viết câu truy vấn SQL tương tự như chúng ta sử dụng câu truy vấn SQL trong môi trường CSDL MySQl

$sql = “SELECT * FROM thanhvien”;

Ví dụ:

2 – Thực thi truy vấn

Sau đó chúng ta tiến hành thực thi câu truy vấn trên với hàm mysql_query(). Kết quả của truy vấn này sẽ trả về một Bảng dữ liệu tương tự như khi chúng ta làm việc trong môi trường MySQL.

$query = mysql_query($sql);

Ví dụ:

Và để có thể lấy và xuất ra Bảng dữ liệu đó trên trình duyệt thì chúng ta cần phải có một số hàm hỗ trợ cho MySQL trong PHP mà chúng ta sẽ làm việc tiếp ở nội dung tiếp ngay sau đây

III – QUY TRÌNH XỬ LÝ KẾT QUẢ TRẢ VỀ TỪ TRUY VẤN SQL BẰNG MỘT SỐ HÀM XÂY DỰNG SẴN TRONG PHP

1 – Hàm mysql_num_rows()

Hàm mysql_num_rows() sẽ nhận vào một kết quả của quá trình thực thi truy vấn SQL và trả về số mẩu tin của quá trình truy vấn đó

Cú pháp:

mysql_num_rows($query);

Trong đó $query chính là biến chứa kết quả trả về từ quá trình thực thi câu lênh SQL

Ví dụ:

2 – Hàm mysql_fetch_array()

Hàm mysql_fetch_array() sẽ nhận vào kết quả của quá trình thực thi truy vấn SQL và trả về một mảng chứa toàn bộ thông tin của một mẩu tin với Key là tên của Cột dữ liệu còn Value chính là giá trị tương ứng của nó trong CSDL

Do đó để lấy toàn bộ các mẩu tin trong Bảng dữ liệu chúng ta cần phải sử một vòng lặp với phương pháp như sau:

Vì dụ:

 

IV – QUY TRÌNH ĐÓNG KẾT NỐI CSDL

Đây chính là quá trình đóng lại một kết nối với CSDL sau khi đã thao tác xong với nó. Cũng giống như quá trình đóng lại một File khi chúng ta đã thao tác xong trong bài học làm việc với File trong PHP mà chúng ta đã được nghiên cứu trước kia

1 – Hàm mysql_close()

Hàm mysql_close() sẽ nhận vào một kết nối tới CSDL và thực hiện quá trình đóng kết nối đó

Cú pháp:

mysql_close($connect_db);

 

Trong đó $connect_db chính là một kết nối tới CSDL của PHP

Ví dụ:

B – THỰC HÀNH

I – BÀI TẬP THỤC HÀNH

Bài 1:

Tạo CSDL qlthanhvien (Quản lý thành viên)

Tạo Bảng thanhvien với cấu trúc như sau:

qlthanhvien

id_thanhvien

tai_khoan

mat_khau

quyen_truy_cap

 

            Tiến hành thêm một số thông tin của các thành viên vào CSDL với nội dung như sau:

id_thanhvien

tai_khoan

mat_khau

quyen_truy_cap

1

admin

admin

2

2

lelien

222222

1

3

nguyenminh

333333

1

4

hoanganh

444444

1

 

Xây dựng chức năng Login và Logout cho ứng dụng quản lý thành viên với các yêu cầu về thiết kế như sau:

  • Tạo Form đăng nhập cho người dùng tương tác với hệ thống
  • Tạo các trường nhập tài khoản và mật khẩu để người dùng đăng nhập
  • Tạo nút Submit để người dùng tiến hành đăng nhập vào hệ thống

 

Xử lý đăng nhập với các yêu cầu sau:

  • Thông báo “Yêu cầu nhập thông tin tài khoản” nếu người dùng bỏ trống một trong các trường nhập nội dung
  • Thông báo “Tài khoản của bạn không tồn tại” nếu người dùng nhập một tài khoản không tồn tại trong CSDL
  • Nếu người dùng nhập đúng tài khoản trong CSDL thì cho phép đăng nhập vào trang quản lý thành viên đồng thời hiển thị lời chào “Chúc mừng ‘Tên tài khoản’ đã đăng nhập thành công”

Xử lý quá trình đăng xuất với yêu cầu sau:

  • Khi người dùng lựa chọn Logout ngay bên cạnh lời chào khi đăng nhập thì lập tức sẽ thoát khỏi hệ thống và được điều hướng tới trang Login để tiến hành đăng nhập lại từ đầu

 

II – BÀI TẬP VỀ NHÀ

Bài 2:

Xây dựng trang quản lý thành viên sau khi người dùng đăng nhập thành công với các yêu cầu thiết kế như sau:

Quản lý thành viên

Thêm mới một thành viên

ID thành viên

Tên tài khoản

Mật khẩu

Quyền truy cập

Sửa

Xóa

1

admin

admin

2

Sửa

Xóa

2

lelien

222222

1

Sửa

Xóa

3

nguyenminh

333333

1

Sửa

Xóa

4

hoanganh

444444

1

Sửa

Xóa

 

Bài 3:

Xây dựng trang thêm mới thành viên với các yêu cầu về thiết kế như sau:

  • Tạo Form cùng với các thành phần trong Form để người dùng có thể nhập đầy đủ các thông tin của thành viên như: tên tài khoản, mật khẩu, một Selectbox để lựa chọn quyền truy cập là Admin hay Thành viên. Nút Submit để tiến hành thực thi Form

Xử lý quá trình thêm mới với các yêu cầu sau

  • Bắt lỗi cho các trường tài khoản và mật khẩu khi bị để trống
  • Thông báo lỗi khi thêm một tài khoản đã tồn tại trong CSDL
  • Nếu không có lỗi nào sảy ra thì tiến hành thêm mới thông tin thành viên vào CSDL và điều hướng người dùng tới trang quản lý thành viên


 >>Xem bài trước: Bài 35 - MYSQL PHẦN III - SQL NÂNG CAO


No comments:

Post a Comment