Tạo trang sửa, xóa thông tin

Để Sửa, Xóa thông tin, bạn viết trang Hiển thị thông tin (ví dụ SuaXoanv.php). Trong trang này bạn sẽ đọc dữ liệu từ database ra theo dòng và bổ sung thêm nút Sửa (ví dụ edit.php) và nút Xóa (ví dụ delete.php). Khi thông tin hiển thị ra, bấm chọn dòng nào thì thực hiện ở dòng tương ứng.

Ở đây, sẽ sử dụng 3 trang và có kết nối database nên ta viết thêm 1 trang connection.php để code đỡ lặp lại nhiều lần và thực hiện gọi code thông qua include “connection.php”

Dưới đây là hướng dẫn tạo trang Sửa và Xóa thông tin nhân viên, bao gồm cả trang connection.php để kết nối đến cơ sở dữ liệu:

connection.php

Trang này được sử dụng để kết nối đến cơ sở dữ liệu. Nó sẽ chứa các thông tin về máy chủ cơ sở dữ liệu như tên máy chủ, tên người dùng, mật khẩu và tên cơ sở dữ liệu.

<?php 
// Thực hiện kết nối đến cơ sở dữ liệu
$servername = "localhost";
$username = "root";
$password = "";
$database = "quanlynhanvien";
// Tạo kết nối
$conn = new mysqli($servername, $username, $password, $database);
// Kiểm tra kết nối
if ($conn->connect_error) {
die("Kết nối không thành công: " . $conn->connect_error);
}
?>/* Your code... */

Tạo trang để hiển thị thông tin SuaXoanv.php cho phép hiển thị nội dung và chọn nút Sửa, Xóa:

<!DOCTYPE html>
<html>
<head>
<title>Quản lý nhân viên</title>
</head>
<body>
<?php
// Thực hiện kết nối đến cơ sở dữ liệu
include "connection.php";
// Truy vấn để lấy danh sách nhân viên
$sql = "SELECT * FROM nhanvien";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
   echo "<h2>Danh sách nhân viên:</h2>";
echo "<table border='1'>
<tr>
   <th>Họ Tên</th>
   <th>Giới tính</th>
   <th>Lương</th>
   <th>Sửa</th>
   <th>Xóa</th>
</tr>";
while($row = $result->fetch_assoc()) {
   echo "<tr>";
   echo "<td>" . $row["HoTen"] . "</td>";
   echo "<td>" . ($row["GioiTinh"] == 1 ? "Nam" : "Nữ") . "</td>";
   echo "<td>" . $row["Luong"] . "</td>";
   echo "<td><a href='edit.php?id=".$row["id"]."'>Sửa</a></td>"; // Điều hướng đến trang sửa với ID tương ứng
   echo "<td><a href='delete.php?id=".$row["id"]."'>Xóa</a></td>"; // Điều hướng đến trang xóa với ID tương ứng
   echo "</tr>";
}
echo "</table>";
} else {
   echo "Không có nhân viên nào trong cơ sở dữ liệu.";
}
?>
</body>
</html>
<?php
// Đóng kết nối
$conn->close();
?>

edit.php

Trang này cho phép người dùng sửa thông tin của nhân viên dựa trên ID của họ.

<!DOCTYPE html>
<html>
<head>
<title>Sửa thông tin nhân viên</title>
</head>
<body>
<h2>Sửa thông tin nhân viên</h2>
<?php
// Thực hiện kết nối đến cơ sở dữ liệu
include "connection.php";
// Xử lý khi nhận ID của nhân viên cần sửa
if(isset($_GET["id"])) {
$id = $_GET["id"];
// Truy vấn để lấy thông tin của nhân viên
$sql = "SELECT * FROM nhanvien WHERE id = '$id'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
$hoten = $row["HoTen"];
$gioitinh = ($row["GioiTinh"] == 1 ? "Nam" : "Nữ");
$luong = $row["Luong"];
} else {
echo "Không tìm thấy nhân viên có ID: " . $id;
exit();
}
}
// Xử lý khi form sửa được gửi đi
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if(isset($_POST["submit"])) {
$hoten = $_POST["hoten"];
$gioitinh = $_POST["gioitinh"];
$luong = $_POST["luong"];
// Chuyển đổi giới tính thành số (1 hoặc 0)
if ($gioitinh == "Nam") {
$gioitinh = 1;
} else {
$gioitinh = 0;
}
// Cập nhật dữ liệu nhân viên
$sql_update = "UPDATE nhanvien SET HoTen='$hoten', GioiTinh='$gioitinh', Luong='$luong' WHERE id='$id'";
if ($conn->query($sql_update) === TRUE) {
echo "Cập nhật thông tin nhân viên thành công!";
} else {
echo "Lỗi: " . $sql_update . "<br>" . $conn->error;
}
}
}
?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"] . "?id=" . $id);?>">
Họ Tên: <input type="text" name="hoten" value="<?php echo $hoten; ?>"><br><br>
Giới tính: 
<input type="radio" name="gioitinh" value="Nam" <?php if($gioitinh == "Nam") echo "checked"; ?>> Nam
<input type="radio" name="gioitinh" value="Nữ" <?php if($gioitinh == "Nữ") echo "checked"; ?>> Nữ<br><br>
Lương: <input type="text" name="luong" value="<?php echo $luong; ?>"><br><br>
<input type="submit" name="submit" value="Cập nhật thông tin">
</form>
</body>
</html>
<?php
// Đóng kết nối
$conn->close();
?>

delete.php

Trang này cho phép người dùng xóa một nhân viên khỏi cơ sở dữ liệu dựa trên ID của họ.

<!DOCTYPE html>
<html>
<head>
<title>Xóa nhân viên</title>
</head>
<body>
<h2>Xóa nhân viên</h2>
<?php
// Thực hiện kết nối đến cơ sở dữ liệu
include "connection.php";
// Xử lý khi nhận ID của nhân viên cần xóa
if(isset($_GET["id"])) {
$id = $_GET["id"];
// Xóa nhân viên từ cơ sở dữ liệu
$sql_delete = "DELETE FROM nhanvien WHERE id='$id'";
if ($conn->query($sql_delete) === TRUE) {
echo "Xóa nhân viên thành công!";
} else {
echo "Lỗi: " . $sql_delete . "<br>" . $conn->error;
}
}
?>
<p>Nhân viên đã được xóa. <a href="SuaXoanv.php">Quay lại danh sách nhân viên</a></p>
</body>
</html>
<?php
// Đóng kết nối
$conn->close();
?>

Kết quả khi chạy file SuaXoanv.php có thể như sau

Sửa xóa nhân viên

Ví dụ khi bấm vào nút Sửa tại dòng 1, kết quả trang edit.php như sau:

Sửa thông tin

Giao diện sau khi bấm nút xóa thông tin, kết quả trang delete.php như sau:

Xóa thông tin

 

Như vậy bạn đã biết cách viết code để hiển thị liên kết giúp sửa xóa thông tin trong php và việc sửa và xóa thông tin nhân viên trong trang web cần một vài lưu ý sau:

  1. Sửa Thông Tin Nhân Viên (edit.php):
    • Trang edit.php cho phép người dùng sửa thông tin của một nhân viên dựa trên ID của họ.
    • Biểu mẫu hiển thị thông tin hiện tại của nhân viên và cho phép người dùng cập nhật thông tin mới.
    • Thông tin được truyền qua phương thức GET và cập nhật bởi phương thức POST tại trang
    • Sau khi cập nhật, thông tin mới được cập nhật trong cơ sở dữ liệu.
  2. Xóa Thông Tin Nhân Viên (delete.php):
    • Trang delete.php cho phép người dùng xóa một nhân viên khỏi cơ sở dữ liệu dựa trên ID của họ.
    • ID của nhân viên được truyền qua URL.
    • Sau khi xác nhận xóa, thông tin nhân viên được xóa khỏi cơ sở dữ liệu.
  3. Bảo mật:
    • Cả hai trang đều cần kiểm tra tính hợp lệ của dữ liệu đầu vào để tránh các loại tấn công như SQL Injection.
    • Cần xác thực người dùng và đảm bảo chỉ có quản trị viên hoặc người có quyền mới có thể truy cập và sửa đổi thông tin nhân viên.
  4. Phản hồi cho người dùng:
    • Cần cung cấp các thông báo phản hồi rõ ràng sau khi sửa hoặc xóa thành công hoặc nếu có lỗi xảy ra.
    • Đảm bảo cung cấp thông báo xác nhận trước khi xóa nhân viên để tránh xóa thông tin một cách vô tình.