miniQuest: MySQL + PHP – podstawy

Poniżej jest podobny kod, ale trochę inaczej wygląda. Uruchom go, przetestuj i dodaj funkcję „Wyświetl drugi rekord”. Poczytaj o co chodzi ze zmienną $_POST[’akcja’].

<?php

$host = "localhost";
$user = "root";
$password = "";
$database = "testdb";

$conn = new mysqli($host, $user, $password);
$conn->set_charset("utf8");

?>

<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <title>PHP + MySQL</title>
</head>
<body>

<h2>PHP + MySQL - podstawy</h2>

<form method="post">
    <button name="akcja" value="utworz">Dodaj do bazy testdb tabelę osoby</button>
    <button name="akcja" value="dane">Dodaj dane testowe</button>
    <button name="akcja" value="wszystkie">Wyświetl wszystkie dane</button>
    <button name="akcja" value="pierwszy">Wyświetl pierwszy rekord</button>
    <button name="akcja" value="dodaj">Dodaj rekord</button>
    <button name="akcja" value="update">Aktualizuj rekord ID=2</button>
    <button name="akcja" value="delete">Usuń rekord ID=1</button>
</form>

<hr>

<?php
if (isset($_POST['akcja'])) {

    switch ($_POST['akcja']) {
        case "utworz":
            $sql = "CREATE DATABASE IF NOT EXISTS testdb";
            $conn->query($sql);
            $conn->select_db("testdb");
            $sql = "CREATE TABLE IF NOT EXISTS osoby (
                id INT AUTO_INCREMENT PRIMARY KEY,
                imie VARCHAR(50),
                nazwisko VARCHAR(50)
            )";
            $conn->query($sql);
            echo "Baza i tabela zostały utworzone.";
        break;

        case "dane":
            $conn->select_db("testdb");
            $osoby = [
                ['Jan', 'Kowalski'],
                ['Anna', 'Nowak'],
                ['Piotr', 'Wiśniewski'],
                ['Maria', 'Wójcik'],
                ['Tomasz', 'Kowalczyk']
            ];

            foreach ($osoby as $o) {
                $imie = $o[0];
                $nazwisko = $o[1];
                $sql = "INSERT INTO osoby (imie, nazwisko)
                        VALUES ('$imie', '$nazwisko')";
                $conn->query($sql);
            }
            echo "Dodano dane testowe.";
        break;

        case "wszystkie":
            $conn->select_db("testdb");
            $sql = "SELECT * FROM osoby";
            $result = $conn->query($sql);
            while ($row = $result->fetch_assoc()) {
                echo "ID: " . $row['id'] . "<br>";
                echo "Imię: " . $row['imie'] . "<br>";
                echo "Nazwisko: " . $row['nazwisko'] . "<br>";
                echo "<hr>";
            }
        break;

        case "pierwszy":
            $conn->select_db("testdb");
            $sql = "SELECT * FROM osoby LIMIT 1";
            $result = $conn->query($sql);
            $row = $result->fetch_assoc();
            echo "ID: " . $row['id'] . "<br>";
            echo "Imię: " . $row['imie'] . "<br>";
            echo "Nazwisko: " . $row['nazwisko'];
        break;

        case "dodaj":
            $conn->select_db("testdb");
            $sql = "INSERT INTO osoby (imie, nazwisko)
                    VALUES ('Sebastian', 'Lis')";
            $conn->query($sql);
            echo "Dodano rekord.";
        break;

        case "update":
            $conn->select_db("testdb");
            $sql = "UPDATE osoby
                    SET imie = 'Andrzej',
                        nazwisko = 'Nowicki'
                    WHERE id = 2";
            $conn->query($sql);
            echo "Rekord został zaktualizowany.";

        break;

        case "delete":
            $conn->select_db("testdb");
            $sql = "DELETE FROM osoby
                    WHERE id = 1";
            $conn->query($sql);
            echo "Rekord został usunięty.";
        break;
    }
}
$conn->close();
?>

</body>
</html>
Tagi: Brak tagów

Twój komentarz

Zapisz moje dane, adres e-mail i witrynę w przeglądarce aby wypełnić dane podczas pisania kolejnych komentarzy.