End of Day

This commit is contained in:
Kilian Kurt Hofmann 2024-04-26 13:17:24 +02:00
parent 09ad98ba14
commit 7eb0302faa
4 changed files with 154 additions and 12 deletions

35
action.php Normal file
View File

@ -0,0 +1,35 @@
<?php
include_once "errors.php";
include_once "headers.php";
include_once "database.php";
$act = $_POST["act"];
switch ($act) {
case "add": {
$db = DB::openConnection();
$insert = "INSERT INTO users(Name) VALUES(:NAME)";
$stmt = $db->prepare($insert);
$stmt->bindParam(":NAME", $_POST["name"]);
$stmt->execute();
DB::closeConnection($db);
}
case "rem": {
$db = DB::openConnection();
$insert = "DELETE FROM users WHERE ID = :ID";
$stmt = $db->prepare($insert);
$stmt->bindParam(":ID", $_POST["ID"]);
$stmt->execute();
DB::closeConnection($db);
}
default:
break;
}
Headers::redirect(".");

View File

@ -3,6 +3,19 @@ class Headers
{
static function json()
{
header('Content-Type: text/html; charset=utf-8');
header("Content-Type: text/json");
}
static function html()
{
header('Content-Type: text/html; charset=utf-8');
}
static function redirect(string $newUrl, bool $permanent = FALSE)
{
header('Location: ' . $newUrl, true, $permanent ? 301 : 302);
exit();
}
}

56
index.css Normal file
View File

@ -0,0 +1,56 @@
*, ::after, ::before {
box-sizing: border-box;
}
body {
margin: 0;
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
text-align: left;
background-color: #fff;
}
.col {
display: flex;
flex-direction: column;
gap: 5px;
height: 100vh;
}
.list {
margin: 10px;
overflow: scroll;
display: flex;
flex-direction: column;
gap: 5px;
flex-grow: 1;
}
.list .item {
display: flex;
justify-content: space-between;
gap: 5px;
}
.list .item .marker {
width: 40px;
text-align: end;
}
.list .item .content {
width: 100%;
text-align: start;
}
.add {
margin: 10px;
display: flex;
gap: 5px;
}
.add input[name="name"] {
width: 100%
}

View File

@ -1,17 +1,55 @@
<?php
include_once "errors.php";
include_once "headers.php";
Headers::json();
include_once "database.php";
<!DOCTYPE html>
<html lang="de">
$db = DB::openConnection();
<head>
<link href="index.css" rel="stylesheet" />
$query = "SELECT * FROM users";
<meta charset="utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
$stmt = $db->prepare($query);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
<title>PHP Course</title>
</head>
DB::closeConnection($db);
<body>
<?php
include_once "errors.php";
include_once "headers.php";
Headers::html();
include_once "database.php";
echo json_encode($result);
$db = DB::openConnection();
$query = "SELECT * FROM users ORDER BY ID";
$stmt = $db->prepare($query);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
DB::closeConnection($db);
?>
<div class="col">
<div class="list">
<?php
foreach ($result as $index => $item) {
?>
<div class="item">
<span class="marker"><?= $index + 1 ?></span>
<span class="content"><?= $item["Name"] ?></span>
<form action="action.php" method="post">
<input type="hidden" name="ID" value="<?= $index + 1 ?>" />
<button name="act" value="rem">Entfernen</button>
</form>
</div>
<?php
}
?>
</div>
<form action="action.php" method="post" class="add">
<label >Name:</label>
<input name="name" placeholder="Name" required />
<button name="act" value="add">Hinzufügen</button>
</form>
</div>
</body>
</html>