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."; } } ?>