W serii ćwiczeń stworzysz prostą aplikację zarządzania projektami i zadaniami w PHP oraz MySQL, zdobywając przydatne kompetencje z bazy danych i programowania.
Stwórz bazę danych todo oraz tabelę zadania:
CREATE DATABASE IF NOT EXISTS todo;
USE todo;
CREATE TABLE IF NOT EXISTS zadania (
id INT AUTO_INCREMENT PRIMARY KEY,
tytul VARCHAR(128) NOT NULL,
opis TEXT,
status ENUM('nowe','w trakcie','zakończone') DEFAULT 'nowe',
deadline DATE
);
INSERT INTO zadania (tytul, opis, deadline) VALUES
('Wdrożenie projektu', 'Ustalenie środowiska produkcyjnego', '2025-11-01'),
('Testy jednostkowe', 'Przygotowanie testów PHP', '2025-10-25'),
('Front-end', 'Implementacja widoków i UX', '2025-10-28');
Utwórz plik db.php z połączeniem:
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'todo';
$conn = new mysqli($host, $user, $pass, $db);
if ($conn->connect_error) {
die("Błąd połączenia: " . $conn->connect_error);
}
?>
W pliku index.php pobierz i wyświetl zadania:
<?php include('db.php'); ?>
<html>
<head><title>Lista zadań</title></head>
<body>
<h1>Zadania do wykonania</h1>
<?php
$sql = "SELECT * FROM zadania ORDER BY deadline";
$res = $conn->query($sql);
if ($res->num_rows > 0) {
while($row = $res->fetch_assoc()) {
echo "<div>";
echo "<b>" . $row['tytul'] . "</b>";
echo " (" . $row['status'] . ", deadline: " . $row['deadline'] . ")";
echo "<br>" . $row['opis'];
echo "</div><hr>";
}
} else {
echo "Brak zadań.";
}
$conn->close();
?>
</body></html>
Zaprojektuj formularz umożliwiający dodanie zadania:
<form method="POST">
Tytuł: <input type="text" name="tytul"><br>
Opis: <textarea name="opis"></textarea><br>
Deadline: <input type="date" name="deadline"><br>
<input type="submit" name="dodaj" value="Dodaj">
</form>
<?php
if (isset($_POST['dodaj'])) {
$tytul = $_POST['tytul'];
$opis = $_POST['opis'];
$deadline = $_POST['deadline'];
$conn->query("INSERT INTO zadania (tytul, opis, deadline) VALUES ('$tytul', '$opis', '$deadline')");
echo "Dodano zadanie.";
}
?>
Dodaj przyciski umożliwiające zmianę statusu (nowe / w trakcie / zakończone):
<?php
// ... wypisując zadania:
echo '<form method="POST" style="display:inline">';
echo '<input type="hidden" name="id" value="' . $row['id'] . '">';
echo '<select name="status">
<option>nowe</option>
<option>w trakcie</option>
<option>zakończone</option>
</select>';
echo '<input type="submit" name="zmien_status" value="Aktualizuj">';
echo '</form>';
// ...
if (isset($_POST['zmien_status'])) {
$id = $_POST['id'];
$status = $_POST['status'];
$conn->query("UPDATE zadania SET status='$status' WHERE id=$id");
}
?>
password_hash()).Autor: Tomasz Puchała – INF.03 © 2025 – www.toloki.pl