🎯 Mục tiêu bài học
Sau bài này bạn sẽ biết:
✅ Xóa dữ liệu trong MySQL bằng PHP
✅ Sử dụng câu lệnh DELETE
✅ Truyền ID cần xóa từ URL
✅ Kiểm tra dữ liệu trước khi xóa
✅ Tránh lỗi xóa nhầm dữ liệu
1️⃣ DELETE trong MySQL là gì?
DELETE dùng để xóa một hoặc nhiều dòng dữ liệu trong bảng.
Cú pháp:
DELETE FROM ten_bang
WHERE dieu_kien;
Ví dụ:
Bảng posts
| id | title |
|---|---|
| 1 | Học PHP |
| 2 | Học MySQL |
| 3 | Học Laravel |
Xóa bài viết có id = 2:
DELETE FROM posts
WHERE id = 2;
Kết quả:
| id | title |
|---|---|
| 1 | Học PHP |
| 3 | Học Laravel |
2️⃣ Kết nối database
Tạo file:
connect.php
Nội dung:
<?php
$conn = mysqli_connect(
"localhost",
"root",
"",
"php_basic"
);
if(!$conn){
die("Kết nối thất bại");
}
?>
3️⃣ Tạo nút Xóa dữ liệu
Ví dụ trang:
index.php
Hiển thị danh sách:
<?php
$sql = "SELECT * FROM posts";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_assoc($result)){
?>
<h3>
<?= $row['title']; ?>
</h3>
<a href="delete.php?id=<?= $row['id']; ?>">
🗑️ Xóa
</a>
<?php
}
?>
Khi click:
delete.php?id=2
PHP sẽ nhận được:
id = 2
4️⃣ Nhận ID cần xóa
File:
delete.php
Lấy dữ liệu:
<?php
$id = $_GET['id'];
echo $id;
?>
Nếu truy cập:
delete.php?id=5
Kết quả:
5
5️⃣ Thực hiện DELETE bằng PHP
Ví dụ:
<?php
include "connect.php";
$id = $_GET['id'];
$sql = "
DELETE FROM posts
WHERE id = $id
";
$result = mysqli_query(
$conn,
$sql
);
if($result){
echo "Xóa thành công";
}else{
echo "Xóa thất bại";
}
?>
6️⃣ Quay lại trang danh sách
Sau khi xóa xong:
header("location:index.php");
Code hoàn chỉnh:
<?php
include "connect.php";
$id = $_GET['id'];
$sql = "
DELETE FROM posts
WHERE id = $id
";
if(mysqli_query($conn,$sql)){
header("location:index.php");
}else{
echo "Có lỗi xảy ra";
}
?>
7️⃣ Kiểm tra ID trước khi xóa
Không nên xóa trực tiếp:
❌
$id = $_GET['id'];
Nên kiểm tra:
if(isset($_GET['id'])){
$id = $_GET['id'];
}
8️⃣ Ép kiểu dữ liệu ID
ID trong database thường là số.
Dùng:
$id = intval($_GET['id']);
Ví dụ:
abc123
sẽ thành:
0
Giúp hạn chế lỗi.
9️⃣ Tránh SQL Injection
Cách tốt hơn:
Dùng Prepared Statement.
Ví dụ:
<?php
include "connect.php";
$id = intval($_GET['id']);
$stmt = $conn->prepare(
"DELETE FROM posts WHERE id=?"
);
$stmt->bind_param(
"i",
$id
);
$stmt->execute();
echo "Đã xóa";
?>
🔟 Xóa có xác nhận bằng JavaScript
Tránh bấm nhầm:
<a
href="delete.php?id=5"
onclick="return confirm('Bạn có chắc muốn xóa?')">
🗑️ Xóa
</a>
Hiển thị:
Bạn có chắc muốn xóa?
🧠 Quy trình DELETE thực tế
Danh sách bài viết
↓
Click nút Xóa
↓
Gửi ID
↓
delete.php
↓
DELETE FROM table
↓
Quay lại danh sách
📌 Lỗi thường gặp
❌ Quên WHERE
DELETE FROM posts;
⚠️ Xóa toàn bộ dữ liệu!
❌ Không lấy đúng ID
Sai:
$_POST['id']
trong khi gửi bằng URL:
?id=5
Phải dùng:
$_GET['id']
❌ Xóa nhưng không quay lại trang
Thêm:
header("location:index.php");
🎯 Sau bài 26 bạn đã biết CRUD:
C = CREATE
INSERT dữ liệu
R = READ
SELECT dữ liệu
U = UPDATE
Sửa dữ liệu
D = DELETE
Xóa dữ liệu
Bài tiếp theo:
🚀 Bài 27 — CRUD hoàn chỉnh
Tạo hệ thống quản lý bài viết:
✅ Danh sách
✅ Thêm bài viết
✅ Sửa bài viết
✅ Xóa bài viết
✅ Kết nối MySQL hoàn chỉnh
x0




Không có nhận xét nào:
Đăng nhận xét