Xóa nhiều bản ghi trong mysql
Câu lệnh DELETE trong MySQL được sử dụng để xóa các bản ghi hiện có từ một bảng. Bạn có thể sử dụng mệnh đề WHERE với truy vấn DELETE để xóa các hàng đã chọn, nếu không tất cả các bản ghi sẽ bị xóa. Cú pháp cơ bản của truy vấn DELETE với mệnh đề WHERE như sau: Bạn có thể kết hợp N điều kiện bằng cách sử dụng các toán tử AND và OR. Ví dụHãy xem xét bảng CUSTOMERS có các bản ghi sau đây: +----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Ha Anh | 32 | Da Nang | 2000.00 | | 2 | Van Ha | 25 | Ha Noi | 1500.00 | | 3 | Vu Bang | 23 | Vinh | 2000.00 | | 4 | Thu Minh | 25 | Ha Noi | 6500.00 | | 5 | Hai An | 27 | Ha Noi | 8500.00 | | 6 | Hoang | 22 | Ha Noi | 4500.00 | | 7 | Binh | 24 | Ha Noi | 10000.00 | +----+----------+-----+-----------+----------+ Câu lệnh trong ví dụ sau sẽ xóa một khách hàng có ID là 6. DELETE FROM CUSTOMERS WHERE ID = 6; Bây giờ, bảng CUSTOMERS sẽ có các bản ghi sau đây. Nếu bạn muốn DELETE tất cả các bản ghi từ bảng CUSTOMERS, bạn không cần phải sử dụng mệnh đề WHERE và truy vấn DELETE sẽ như sau: Bây giờ, bảng CUSTOMERS sẽ không có bất kỳ bản ghi nào. Trong các ứng dụng thực tế hiện nay các Hệ quan trị nội dung website hay các hệ thống phần mềm online sẽ không thể bỏ qua chức năng cho phép người quản trị có thể thực hiện việc xóa được nhiều records trong một bảng CSDL. Bạn cư thử tưởng tượng xem nếu chúng ta cần xóa khoảng 100 records mà bây giờ chúng ta sẽ phải thao tác xóa từng cái một. Công việc đó thật nhàm chán và mất thời gian đúng không? DEMO xóa nhiều reocords Thì việc đầu tiên là người dùng phải tích chọn các records cần xóa(Tích vào các dấu checkbox) và sau đó người dùng click vào nút Xóa chọn. Để thực hiện chức năng này mình có sử dụng JQuery để xử lý sự kiện liên quan tới Javascipt. 1. JavascriptViệc đầu tiên là bạn phải chèn vào thư viện JQuery. 2. File config_db.php.File này sẽ chứa các thông tin và kết nối tới CSDL. 3. File index.phpFile này sẽ hiển thị một danh sách tất cả các bản ghi có trong bảng News của CSDL. Một số lưu ý:
Chúng ta sẽ có mã Javascript xử lý sự kiện khi người dùng tick vào checkbox. Hiển thị danh sách. Lưu ý: Chúng ta sẽ bao danh sách bằng một cái thẻ <form /> có action dẫn tới file sẽ xử lý xóa dữ liệu. Thuộc tính name của checkbox phải là một mảng có value là ID của các record. 0){ ?> 4. File delete.phpSau khi người dùng đã tick chọn một danh sách các records cần xóa và nhấn vào nút Xóa chọn. // File thực hiện chức năng xóa bản tin // Nhận vào một danh sách POST[ID] require_once(dirname(__FILE__).'/config_db.php'); // Xóa chọn nhiều record if(isset($_POST['submmit']) && $_POST['submmit']=='delete_all'){ $sql = "DELETE FROM News WHERE id IN (".implode(',',$_POST['id']).")"; if(mysqli_query($dbconn, $sql)===TRUE){ header('Location:/demo/php-mysql-delete-multiple/?t='.time().'&message=success'); exit(); }else{ echo "Lỗi :".mysqli_error($dbconn); die(); } } 5 Tổng kếtQua bài viết này bạn đã biết cách làm sao có thể xóa được nhiều bản ghi rồi nhé. Nếu có thời gian mình sẽ làm mộtbài viết Xóa nhiều bản ghi bằng PHP kết hợp với JQuery ajax. |