Utwórz bazę danych o nazwie `firma`.
CREATE DATABASE firma;
Utwórz tabelę `pracownicy` z kolumnami: `id`, `imie`, `nazwisko`, `stanowisko`.
CREATE TABLE pracownicy (
id INT AUTO_INCREMENT PRIMARY KEY,
imie VARCHAR(50),
nazwisko VARCHAR(50),
stanowisko VARCHAR(50)
);
Dodaj dwóch pracowników do tabeli `pracownicy`.
INSERT INTO pracownicy (imie, nazwisko, stanowisko)
VALUES ('Jan', 'Kowalski', 'Programista'),
('Anna', 'Nowak', 'Administrator');
Załóżmy, że masz dwie tabele: `pracownicy` i `dzialy`. Wybierz imiona pracowników oraz nazwy działów, do których należą, zakładając, że tabela `dzialy` ma kolumny: `id`, `nazwa`.
SELECT pracownicy.imie, dzialy.nazwa
FROM pracownicy
JOIN dzialy ON pracownicy.dzial_id = dzialy.id;
Wybierz wszystkich pracowników na stanowisku 'Programista'.
SELECT * FROM pracownicy WHERE stanowisko = 'Programista';
Stwórz procedurę, która zwróci wszystkich pracowników o określonym stanowisku.
DELIMITER //
CREATE PROCEDURE GetEmployeesByPosition(IN pos VARCHAR(50))
BEGIN
SELECT * FROM pracownicy WHERE stanowisko = pos;
END //
DELIMITER ;
Stwórz wyzwalacz, który automatycznie zaktualizuje datę modyfikacji, kiedy rekord w tabeli `pracownicy` zostanie zaktualizowany.
CREATE TRIGGER UpdateTimestamp BEFORE UPDATE ON pracownicy
FOR EACH ROW
SET NEW.updated_at = NOW();
Stwórz indeks na kolumnie `nazwisko` w tabeli `pracownicy`, aby przyspieszyć zapytania wyszukujące po nazwisku.
CREATE INDEX idx_nazwisko ON pracownicy (nazwisko);
Napisz kod PHP, który łączy się z bazą `firma`.
<?php
$host = "localhost";
$user = "root";
$pass = "";
$db = "firma";
$conn = new mysqli($host, $user, $pass, $db);
if ($conn->connect_error) {
die("Błąd połączenia: " . $conn->connect_error);
}
echo "Połączono z bazą danych";
?>
Stwórz formularz rejestracji, który zapisuje dane użytkownika (imie, nazwisko, email) do bazy danych.
<form method="POST" action="register.php">
Imię: <input type="text" name="imie"><br>
Nazwisko: <input type="text" name="nazwisko"><br>
Email: <input type="email" name="email"><br>
<input type="submit" value="Zarejestruj">
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$imie = $_POST['imie'];
$nazwisko = $_POST['nazwisko'];
$email = $_POST['email'];
$conn = new mysqli($host, $user, $pass, $db);
$stmt = $conn->prepare("INSERT INTO uzytkownicy (imie, nazwisko, email) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $imie, $nazwisko, $email);
$stmt->execute();
echo "Rejestracja zakończona sukcesem!";
}
?>
Stwórz skrypt logowania, który sprawdza, czy użytkownik istnieje w bazie i weryfikuje hasło.
<form method="POST" action="login.php">
Email: <input type="email" name="email"><br>
Hasło: <input type="password" name="haslo"><br>
<input type="submit" value="Zaloguj">
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$email = $_POST['email'];
$haslo = $_POST['haslo'];
$conn = new mysqli($host, $user, $pass, $db);
$stmt = $conn->prepare("SELECT * FROM uzytkownicy WHERE email = ?");
$stmt->bind_param("s", $email);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
if (password_verify($haslo, $row['haslo'])) {
echo "Zalogowano pomyślnie!";
} else {
echo "Niepoprawne hasło.";
}
} else {
echo "Użytkownik nie istnieje.";
}
}
?>