Bài tham khảo : Phương pháp hỗ trợ giới hạn truy cập trang web
7. Thao tác cập nhật một mẩu tin trên cơ sở dữ liệu
Để cập nhật một cuốn sách trong CSDL, cần phải trao vào mã
sách BOOK_ID. Giả sử muốn cập nhật mẩu tin trong table T_BOOK có BOOK_ID=1 với các thơng tin: Tên sách là "Thiết kế và lập trình
ứng dụng web bằng ASP", chủ đề của sách là Tin học có ID là 1,
tác giả là "Lê Đình Duy", nhà xuất bản là Thống kê có ID là 3, năm xuất bản 2001, tập tin ảnh bìa tên là ltwebasp.jpg.
Ta tạo tập tin updatebook.asp như sau: <%@CODEPAGE=65001%>
<%Response.Charset = "utf-8"%> <!--#include file="dbconn.asp"--> <%
' get input data vBookID = 1
vBookTitle = "Thiết kế và lập trình ứng dụng web bằng ASP" vBookCatID = 1
vBookAuthor = "Lê Đình Duy" vBookPubID = 3
vBookYear = 2001 vBookPrice = 16000 vBookPic = "ltwebasp.jpg" ' build SQL statement
strSQL = "UPDATE T_BOOK SET "
strSQL = strSQL & "BOOK_TITLE=" & "'" & vBookTitle & "'" & ", " strSQL = strSQL & "BOOK_CATID=" & vBookCatID & ", "
strSQL = strSQL & "BOOK_AUTHOR=" & "'" & vBookAuthor & "'" & ", "
strSQL = strSQL & "BOOK_PUBID=" & vBookPubID & ", " strSQL = strSQL & "BOOK_YEAR=" & vBookYear & ", " strSQL = strSQL & "BOOK_PRICE=" & vBookPrice & ", " strSQL = strSQL & "BOOK_PIC=" & "'" & vBookPic & "'" strSQL = strSQL & " WHERE BOOK_ID=" & vBookID
Response.Write "Thực hiện thao tác cập nhật với câu lệnh SQL: " & strSQL ' execute SQL statement Conn.Execute strSQL %> <% Conn.Close
Set Conn = NOTHING %>
• Thi hành tập tin updatebook.asp, sau đó thi hành tập tin
listallbook.asp để xem mẩu tin mới được cập nhật.
• Mở rộng đoạn mã trên bằng cách tạo một form cho phép
người dùng hiệu chỉnh các thông tin của cuốn sách có BOOK_ID=1. Sau khi người dùng sửa xong, nhấn nút Submit, các thông tin vừa sửa sẽ được cập nhật lên CSDL. (xem bài giải ở tập tin updatebookform.asp và tập tin
updatebookext.asp).
• Lưu ý rằng, với trang updatebookform.asp chứa form hiển
thị các dữ liệu của cuốn sách cần cập nhật thơng tin, ta có thể sử dụng lại form đã dùng trong trang addbookform.asp.
Điểm khác nhau là thêm thuộc tính value cho các control với
các giá trị đọc từ CSDL của cuốn sách cần cập nhật.
• Để lưu thơng tin BOOK_ID của cuốn sách cần cập nhật trong
form của trang updatebookform.asp ta sử dụng một control có type là hidden (<input type="hidden" name="fBOOK_ID"
value="<%Response.Write rsBook("BOOK_ID")%>">).
• Trong trang updatebookform.asp ta lấy dữ liệu của
fBOOK_ID từ query string bằng cách gõ vào cặp tên control và giá trị tương ứng khi dùng tập tin này. Ví dụ:
http://../updatebookform.asp?fBOOK_ID=1
• Trong trang updatebookext.asp dùng để xử lí các dữ liệu từ
form của trang updatebookform.asp, ta thực hiện tương tự như trang addbookext.asp. Điểm khác nhau ở chỗ thay câu
lệnh INSERT bằng câu lệnh UPDATE.
Tạo một form tìm kiếm sách, cho phép người dùng nhập vào các thông tin như là tên sách, tên tác giả, chủ đề, nhà xuất bản, năm
xuất bản. Chương trình sẽ liệt kê các cuốn sách tìm được theo yêu cầu của người dùng. Trong mỗi cuốn sách được liệt kê, tạo một hyperlink sao cho khi nhấn vào đó, chương trình sẽ hiển thị form cập nhật dữ liệu của cuốn sách trên (xem bài giải ở tập tin
searchbookform.asp và tập tin searchbook.asp).
• Trang searchbookform.asp chứa form hiển thị các dữ liệu
mà người dùng cần nhập vào để tìm ra cuốn sách cần cập nhật thơng tin, ta có thể sử dụng lại form đã dùng trong trang
addbookform.asp. Lưu ý thêm rằng, đối với các dropdown
listbox ta cần phải có thêm mục chọn Tất cả
• Để tìm gần đúng các chuỗi 'tin' trong một trường cho trước ví
dụ BOOK_TITLE, ta dùng kí tự đại diện %. Ví dụ SELECT * FROM T_BOOK WHERE BOOK_TITLE LIKE '%tin%'
• Trong tập tin searchbook.asp, sau khi hiển thị các kết quả
tìm được theo dạng bảng, ta thêm một hyperlink ngay số thứ tự của mỗi cuốn sách. Mỗi hyperlink này sẽ chứa địa chỉ của trang cập nhật sách dạng:
updatebookform.asp?fBOOK_ID=<book_id>