En enkel att göra-lista-applikation som tar uppgifter som skickats av användare i ett formulär och sparar dem i en MySQL-databas. Uppgifterna hämtas också från databasen och visas på webbsidan med en raderingsknapp bredvid varje uppgift. När du klickar på raderingsknappen tas uppgiften bort från databasen.
Det är vad vi kommer att bygga i den här handledningen.
Låt oss som vanligt skapa vår databas. Skapa en databas som heter todo och i den skapar du en tabell som heter uppgifter. Tabellen Tasks har bara två fält nämligen:
- id - int(10)
- uppgift - varchar(255)
Skapa nu två filer:
- index.php
- style.css
Öppna dem i en textredigerare och klistra in följande kod i index.php-filen:
<!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>
Om du tittar på din sida nu i webbläsaren ser den ut ungefär så här:
Låt oss lägga till stylingen. Direkt under taggen
<link rel="stylesheet" type="text/css" href="style.css">
Öppna filen style.css som vi skapade tidigare och klistra in denna stilkod i den:
.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;
}
Om vi uppdaterar vår webbläsare nu får vi detta:
Nu skriver vi koden för att spara inlämnad uppgift till databasen.
Längst upp i filen index.php, före den allra första raden, lägg till denna kod:
<?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');
}
}
// ...
Vad detta gör är att om användaren klickar på knappen Skicka sparas uppgiften i databasen. Men om ingen uppgift fylldes i formuläret är värdet för variabeln $errors satt till 'du måste fylla i uppgiften'. Men det visas inte. Låt oss visa det.
Låt oss klistra in den här koden i formuläret. Direkt under taggen
-tagg://...
// </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>
Om vi anger en uppgift i formuläret och trycker på knappen Skicka får vi detta:
Bra!
Låt oss få vår radera-knapp att fungera. Överst på sidan, efter if-blocket som sparar uppgiften i databasen, lägg till denna kod:
// delete task
if (isset($_GET['del_task'])) {
$id = $_GET['del_task'];
mysqli_query($db, "DELETE FROM tasks WHERE id=".$id);
header('location: index.php');
}
?>
Det är allt. Om vi klickar på den lilla "x"-knappen nu mot en uppgift, raderas den uppgiften i databasen.
Slutsats
Hoppas detta hjälper dig. En funktion som jag skulle rekommendera att du lägger till i den här appen bara för att ytterligare träna dina färdigheter är att lägga till redigeringsfunktionen där ett inlägg kan uppdateras även efter att det har skapats. Tips:Följ min handledning om CRUD: Skapa, redigera, uppdatera och ta bort inlägg med MySQL-databasen
Tack :D