Một ứng dụng danh sách việc cần làm đơn giản nhận các nhiệm vụ do người dùng gửi trong một biểu mẫu và lưu chúng trong cơ sở dữ liệu MySQL. Các nhiệm vụ cũng được truy xuất từ cơ sở dữ liệu và hiển thị trên trang web bằng nút xóa bên cạnh mỗi tác vụ. Khi nhấp vào nút xóa, tác vụ sẽ bị xóa khỏi cơ sở dữ liệu.
Đó là những gì chúng tôi sẽ xây dựng trong hướng dẫn này.
Như thường lệ, hãy tạo cơ sở dữ liệu của chúng tôi. Tạo cơ sở dữ liệu có tên việc làm và trong đó, tạo một bảng được gọi là nhiệm vụ. Bảng nhiệm vụ chỉ có hai trường:
- id - int (10)
- tác vụ - varchar (255)
Bây giờ, hãy tạo hai tệp:
- index.php
- style.css
Mở chúng trong trình soạn thảo văn bản và dán đoạn mã sau vào trong tệp index.php:
<!DOCTYPE html>
<html>
<head>
<title>ToDo List Application PHP and MySQL</title>
</head>
<body>
<div class="heading">
<h2 style="font-style: 'Hervetica';">ToDo List Application PHP and MySQL database</h2>
</div>
<form method="post" action="index.php" class="input_form">
<input type="text" name="task" class="task_input">
<button type="submit" name="submit" id="add_btn" class="add_btn">Add Task</button>
</form>
</body>
</html>
Nếu bạn xem trang của mình ngay bây giờ trong trình duyệt, nó sẽ giống như sau:
Hãy thêm kiểu dáng. Trực tiếp bên dưới thẻ
<link rel="stylesheet" type="text/css" href="style.css">
Mở tệp style.css mà chúng tôi đã tạo trước đó và dán mã kiểu này vào đó:
.heading{
width: 50%;
margin: 30px auto;
text-align: center;
color: #6B8E23;
background: #FFF8DC;
border: 2px solid #6B8E23;
border-radius: 20px;
}
form {
width: 50%;
margin: 30px auto;
border-radius: 5px;
padding: 10px;
background: #FFF8DC;
border: 1px solid #6B8E23;
}
form p {
color: red;
margin: 0px;
}
.task_input {
width: 75%;
height: 15px;
padding: 10px;
border: 2px solid #6B8E23;
}
.add_btn {
height: 39px;
background: #FFF8DC;
color: #6B8E23;
border: 2px solid #6B8E23;
border-radius: 5px;
padding: 5px 20px;
}
table {
width: 50%;
margin: 30px auto;
border-collapse: collapse;
}
tr {
border-bottom: 1px solid #cbcbcb;
}
th {
font-size: 19px;
color: #6B8E23;
}
th, td{
border: none;
height: 30px;
padding: 2px;
}
tr:hover {
background: #E9E9E9;
}
.task {
text-align: left;
}
.delete{
text-align: center;
}
.delete a{
color: white;
background: #a52a2a;
padding: 1px 6px;
border-radius: 3px;
text-decoration: none;
}
Nếu chúng tôi làm mới trình duyệt của mình ngay bây giờ, chúng tôi nhận được điều này:
Bây giờ chúng ta viết mã để lưu tác vụ đã gửi vào cơ sở dữ liệu.
Ở đầu tệp index.php, trước dòng đầu tiên, hãy thêm mã này:
<?php
// initialize errors variable
$errors = "";
// connect to database
$db = mysqli_connect("localhost", "root", "", "todo");
// insert a quote if submit button is clicked
if (isset($_POST['submit'])) {
if (empty($_POST['task'])) {
$errors = "You must fill in the task";
}else{
$task = $_POST['task'];
$sql = "INSERT INTO tasks (task) VALUES ('$task')";
mysqli_query($db, $sql);
header('location: index.php');
}
}
// ...
Điều này có nghĩa là, nếu người dùng nhấp vào nút gửi, tác vụ sẽ được lưu trong cơ sở dữ liệu. Tuy nhiên, nếu không có nhiệm vụ nào được điền vào biểu mẫu, giá trị của biến $ error được đặt thành 'bạn phải điền vào nhiệm vụ'. Nhưng điều đó không được hiển thị. Hãy trưng bày nó.
Hãy dán mã này vào bên trong biểu mẫu. Trực tiếp dưới thẻ
của biểu mẫu://...
// </form>
<table>
<thead>
<tr>
<th>N</th>
<th>Tasks</th>
<th style="width: 60px;">Action</th>
</tr>
</thead>
<tbody>
<?php
// select all tasks if page is visited or refreshed
$tasks = mysqli_query($db, "SELECT * FROM tasks");
$i = 1; while ($row = mysqli_fetch_array($tasks)) { ?>
<tr>
<td> <?php echo $i; ?> </td>
<td class="task"> <?php echo $row['task']; ?> </td>
<td class="delete">
<a href="index.php?del_task=<?php echo $row['id'] ?>">x</a>
</td>
</tr>
<?php $i++; } ?>
</tbody>
</table>
Nếu chúng tôi nhập một nhiệm vụ vào biểu mẫu và nhấn nút gửi, chúng tôi nhận được điều này:
Tốt!
Hãy làm cho nút xóa của chúng tôi hoạt động. Ở đầu trang, sau khối if lưu tác vụ trong cơ sở dữ liệu, hãy thêm mã này:
// delete task
if (isset($_GET['del_task'])) {
$id = $_GET['del_task'];
mysqli_query($db, "DELETE FROM tasks WHERE id=".$id);
header('location: index.php');
}
?>
Đó là tất cả. Nếu chúng ta nhấp vào nút nhỏ 'x' ngay bây giờ đối với một nhiệm vụ, tác vụ đó sẽ bị xóa trong cơ sở dữ liệu.
Kết luận
Hy vọng điều này sẽ giúp bạn. Một tính năng mà tôi khuyên bạn nên thêm vào ứng dụng này chỉ để rèn luyện thêm kỹ năng của bạn là thêm tính năng chỉnh sửa nơi một bài đăng có thể được cập nhật ngay cả sau khi nó đã được tạo. Gợi ý:Làm theo hướng dẫn của tôi về CRUD:Tạo, chỉnh sửa, cập nhật và xóa bài đăng với cơ sở dữ liệu MySQL
Cảm ơn:D