PHP cơbản-Bài13:
Viết ứngdụngsửaxóa
thành viênbằngPHPvà
MYSQL
Viết ứngdụngsửaxóathànhviênbằngPHPvàMYSQL
Trong bài trước chúng ta đã nói về cách thêm và quản lý thànhviên kết hợp
PHP và MYSQL. Tiếp theo trong bài này, chúng ta sẽ viết tiếp 2 ứngdụng
sửa vàxóathànhviên để hoàn tất module user.
Để theo kịp bài này, các bạn vui lòng xem lại bài 10, 11,12. Vì các bài được
hưỡng dẫn liền mạch từ đầu tới cuối.
Cũng như những bài trước, hệ thống sửavàxóathànhviên này cũng chỉ có
thể thực hiện được khi người sử dụng đăng nhập thành công với quyền hạn
của 1 administrator. Do vậy, bạnđừng quên kiểm tra session ở đầu khi bắt
đầu viếtứngdụng này nhé.
A- Xây dựng trang sửathành viên:
Vì là trang chỉnh sửathành viên, nên nội dung của chúng có phần sẽ giống
với phần thêm thành viên, chỉ khác là các ô nhập liệu giờ đây đã có dữ liệu.
Dữ liệu này chúng ta tiến hành lấy từ cơ sở dữ liệu thông qua biến truyền mà
ở trang quản lý đã gửi edit_user.php?id=$row[id]
Như vậy để lấy được giá trị từ liên kết này chúng ta sẽ sử dụng biến
$_GET['id']. Sau khi đã có được giá trị này, việc còn lại của bạn là lấy thông
tin của id này từ cơ sở dữ liệu và đưa vào form để người dùngcó thể chỉnh
sửa.
Vậy ta có.
Theo như đoạn code ở trên phần value chúng ta muốn đưa giá trị vào thì
buộc phải sử dụng cú pháp gọn hoặc cũng có thể sử dụngbằng cách Ở đây
chúng ta chỉ đưa ra giá trị trên text box username, còn lại mật khẩu do có thể
bị mã hóa nên không nên hiển thị ra. Phần level do lưu trong cơ sở dữ liệu là
những con số 1,2 nên khi đưa ra chúng ta phải so sánh, nếu trong bảng lưu là
1 thì ở chỗ có giá trị bằng 1 sẽ thêm chữ selected. Để mặc định lựa chọn khi
người dùng nhấn vào nút chỉnh sửa.
Tiếp tới người dùng sẽ nhấn nút edit. Việc còn lại của chúng ta là kiểm tra
dữ liệu khi họ tiến hành chỉnh sửa dữ liệu. Điểm khác biệt ở đây là chúng ta
phải cân nhắc khi viết trang chỉnh sửa. Bởi không phải ai vào chỉnh sửa cũng
đều sửa cả thông tin username, password, level. Có khi họ chỉ sửa mỗi level
hoặc có khi họ chỉ sửa mỗi password.
Vì thế ta phải xét các trường hợp để giải quyết.
Trường hợp 1: Người dùng chỉ chỉnh sửa username, level mà không chỉnh
sửa password. Khi đó username, level bắt buộc đều đã có dữ liệu nên ta
không cần kiểm tra chúng rỗng hay không. Nhưng với password chúng ta
không thể bắt người lập trình nhập liệu. Và họ hoàn toàn có thể để rỗng.
Trường hợp 2: Người dùng chỉnh sửa username, level ,password. Khi đó ta
xem password có dữ liệu và ta tiến hành cập nhật.
Để giải quyết bài toán trên thỏa 2 trường hợp ta sẽ xét phương pháp sau:
Ta kiểm tra password và repassword có giống nhau hay không ?. Nếu chúng
khác nhau nghĩa là người dùng nhập liệu nhưng nhập sai. Vậy phải cảnh báo
lỗi cho họ biết là họ đã nhập sai. Còn ngược lại nếu password và repassword
giống nhau thì sẽ nảy sinh 2 trường hợp con.
+ Một là password và repassword đều có dữ liệu
+ Hai là password và repassword không có dữ liệu.
Khi đó ở trường hợp con 1 chúng ta sẽ khởi tạo biến $p và ghi nhận thông
tin họ nhập liệu. Và ở trường hợp 2 chúng ta không ghi nhận thông tin người
nhập liệu vì họ không có ý định chỉnh sửa mật khẩu. Có thể viết đoạn code
đơn giản như sau:
Tiếp tới chúng ta sẽ phân loại dữ liệu cập nhật. Khi có username,password,
level thì ta cập nhật tất cả thông tin của họ bằng cú pháp SQL. Ngược lại khi
không tồn tại password thì ta chỉ cập nhật username và level.
Một điều nữa chúng ta cần quan tâm đó là đối với lệnh update và delete, ta
phải truyền 1 id cụ thể để tránh việc chúng xóa hoặc sửa dữ liệu toàn bộ
trong bảng user. Với id tôi truyền nhận từ bên ngoài ta sẽ có.
Sau khi sửathành công một thànhviên chúng ta sẽ đưa người dùng trở về
với trang quản lý (xem bài 12 để biết cách xây dựng trang quản lý thành
viênnhư thế nào)
Nội dung của toàn bộ code ở trên như sau:
.
PHP cơ bản - Bài 13:
Viết ứng dụng sửa xóa
thành viên bằng PHP và
MYSQL
Viết ứng dụng sửa xóa thành viên bằng PHP và MYSQL
Trong bài trước. nói về cách thêm và quản lý thành viên kết hợp
PHP và MYSQL. Tiếp theo trong bài này, chúng ta sẽ viết tiếp 2 ứng dụng
sửa và xóa thành viên để hoàn tất