Rozwiązanie - Egzamin Praktyczny E.14

Arkusz E.14-01-23.01-SG - Styczeń 2023 - Wersja #01

Skrypt: PHP

Baza Danych:

Przykładowe rozwiązanie
Rozwiązanie - Arkusz praktyczny E.14-01-23.01-SG - Styczeń 2023 - Wersja #01
Wymagane zdjęcia
Egzamin E.14-01-23.01-SG - dodatkowe zdjęcia - zawody.jpg
zawody.jpg
Wyniki działań na bazie danych
Egzamin E.14-01-23.01-SG - Operacje na bazie danych - import.png
import.png
Egzamin E.14-01-23.01-SG - Operacje na bazie danych - import.png
kw1.jpeg
Egzamin E.14-01-23.01-SG - Operacje na bazie danych - import.png
kw2.jpeg
Egzamin E.14-01-23.01-SG - Operacje na bazie danych - import.png
kw3.jpeg
Egzamin E.14-01-23.01-SG - Operacje na bazie danych - import.png
kw4.jpeg
Plik wedkarstwo.sql
-- phpMyAdmin SQL Dump
-- version 5.2.0
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Czas generowania: 15 Mar 2023, 08:01
-- Wersja serwera: 10.4.27-MariaDB
-- Wersja PHP: 8.2.0

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Baza danych: `wedkarstwo`
--

-- --------------------------------------------------------

--
-- Struktura tabeli dla tabeli `karty_wedkarskie`
--

CREATE TABLE `karty_wedkarskie` (
  `id` int(10) UNSIGNED NOT NULL,
  `imie` text DEFAULT NULL,
  `nazwisko` text DEFAULT NULL,
  `adres` text DEFAULT NULL,
  `data_zezwolenia` date DEFAULT NULL,
  `punkty` int(10) UNSIGNED DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;

--
-- Zrzut danych tabeli `karty_wedkarskie`
--

INSERT INTO `karty_wedkarskie` (`id`, `imie`, `nazwisko`, `adres`, `data_zezwolenia`, `punkty`) VALUES
(1, 'Jan', 'Kowalski', 'Warszawa, Aleje Jerozolimskie 65/4', '2018-02-15', 25),
(2, 'Andrzej', 'Nowak', 'Poznan, Dabowskiego 16/4', '2018-03-12', 3);

-- --------------------------------------------------------

--
-- Struktura tabeli dla tabeli `lowisko`
--

CREATE TABLE `lowisko` (
  `id` int(10) UNSIGNED NOT NULL,
  `Ryby_id` int(10) UNSIGNED NOT NULL,
  `akwen` text DEFAULT NULL,
  `wojewodztwo` text DEFAULT NULL,
  `rodzaj` int(10) UNSIGNED DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;

--
-- Zrzut danych tabeli `lowisko`
--

INSERT INTO `lowisko` (`id`, `Ryby_id`, `akwen`, `wojewodztwo`, `rodzaj`) VALUES
(1, 2, 'Zalew Wegrowski', 'Mazowieckie', 4),
(2, 3, 'Zbiornik Bukowka', 'Dolnoslaskie', 2),
(3, 2, 'Jeziorko Bartbetowskie', 'Warminsko-Mazurskie', 2),
(4, 1, 'Warta-Obrzycko', 'Wielkopolskie', 3),
(5, 2, 'Stawy Milkow', 'Podkarpackie', 5),
(6, 7, 'Przemsza k. Okradzinowa', 'Slaskie', 3);

-- --------------------------------------------------------

--
-- Struktura tabeli dla tabeli `zawody_wedkarskie`
--

CREATE TABLE `zawody_wedkarskie` (
  `id` int(10) UNSIGNED NOT NULL,
  `Karty_wedkarskie_id` int(10) UNSIGNED NOT NULL,
  `Lowisko_id` int(10) UNSIGNED NOT NULL,
  `data_zawodow` date DEFAULT NULL,
  `sedzia` text DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;

--
-- Zrzut danych tabeli `zawody_wedkarskie`
--

INSERT INTO `zawody_wedkarskie` (`id`, `Karty_wedkarskie_id`, `Lowisko_id`, `data_zawodow`, `sedzia`) VALUES
(1, 1, 3, '2018-04-12', 'Jan Kowalewski'),
(2, 1, 5, '2018-05-01', 'Jan Kowalewski'),
(3, 1, 2, '2018-06-01', 'Jan Kowalewski'),
(4, 2, 1, '2018-06-21', 'Krzysztof Dobrowolski'),
(5, 2, 4, '2021-09-28', 'Andrzej Nowak');

--
-- Indeksy dla zrzutów tabel
--

--
-- Indeksy dla tabeli `karty_wedkarskie`
--
ALTER TABLE `karty_wedkarskie`
  ADD PRIMARY KEY (`id`);

--
-- Indeksy dla tabeli `lowisko`
--
ALTER TABLE `lowisko`
  ADD PRIMARY KEY (`id`);

--
-- Indeksy dla tabeli `zawody_wedkarskie`
--
ALTER TABLE `zawody_wedkarskie`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT dla zrzuconych tabel
--

--
-- AUTO_INCREMENT dla tabeli `karty_wedkarskie`
--
ALTER TABLE `karty_wedkarskie`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

--
-- AUTO_INCREMENT dla tabeli `lowisko`
--
ALTER TABLE `lowisko`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;

--
-- AUTO_INCREMENT dla tabeli `zawody_wedkarskie`
--
ALTER TABLE `zawody_wedkarskie`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Plik kwerendy.txt
Zapytanie 1: INSERT INTO zawody_wedkarskie VALUES (NULL, 2, 4, '2021-09-28', 'Andrzej Nowak');
Zapytanie 2: SELECT id, data_zawodow FROM zawody_wedkarskie WHERE sedzia = 'Andrzej Nowak';
Zapytanie 3: SELECT karty_wedkarskie.imie, karty_wedkarskie.nazwisko, karty_wedkarskie.punkty FROM karty_wedkarskie INNER JOIN zawody_wedkarskie ON karty_wedkarskie.id = zawody_wedkarskie.Karty_wedkarskie_id WHERE zawody_wedkarskie.id = 4;
Zapytanie 4: UPDATE karty_wedkarskie SET punkty = punkty + 2 WHERE id = 1;
Plik zawody.html
<!DOCTYPE html>
<html lang="pl">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Zawody wędkarskie</title>
        <link rel="stylesheet" href="styl3.css">
    </head>
    <body>
        <div id="lewy">
            <h1>Zawody polskich wędkarzy</h1>
        </div>

        <div id="prawy">
            <img src="zawody.jpg" alt="wędkowanie">
        </div>

        <div id="glowny">
            <h3>Łowiska</h3>
            <ul>
                <li>Zalew Węgrowski</li>
                <li>Zbiornik Bukówka</li>
                <li>Jeziorko Bartbetowskie</li>
                <li>Warta-Obrzycko</li>
            </ul>
            <h3>Dodaj zawody wędkarskie</h3>
            <form action="zgloszenie.php" method="post">
                <label for="lowisko">Łowisko:</label> <input type="number" name="lowisko" id="lowisko"><br>
                <label for="data">Data:</label> <input type="date" name="data" id="data"><br>
                <label for="sedzia">Sędzia:</label> <input type="text" name="sedzia" id="sedzia"><br>
                <button type="reset">CZYŚĆ</button>
                <button type="submit">DODAJ</button>
            </form>
        </div>

        <div id="stopka1">
            <a href="kwerendy.txt">Pobierz</a>
        </div>

        <div id="stopka2">
            <p>Stronę przygotował: <a href="https://ee-informatyk.pl/" target="_blank" style="background: transparent;color: unset;padding: unset;line-height: unset;">EE-Informatyk.pl</a></p>
        </div>
    </body>
</html>
Plik zgloszenie.php
<?php
    if(isset($_POST["lowisko"]) && isset($_POST["data"]) && isset($_POST["sedzia"])) {
        $lowisko = $_POST["lowisko"];
        $data = $_POST["data"];
        $sedzia = $_POST["sedzia"];

        $conn = new mysqli("localhost","root","","wedkarstwo");

        $sql = "INSERT INTO zawody_wedkarskie VALUES (NULL, 2, $lowisko, '$data', '$sedzia');";
        $result = $conn->query($sql);

        $conn -> close();

        echo "Zawody wędkarskie zostały dodane";
    }
?>
Plik styl3.css
body {
    font-family: Verdana;
}

#lewy,#prawy {
    background: seagreen;
    color: white;
    line-height: 150px;
    height: 260px;
    font-size: 160%;
    float: left;
}

#lewy {
    width: 75%;
}

#prawy {
    width: 25%;
    text-align: right;
}

#glowny {
    background: mintcream;
    padding: 80px;
    clear: both;
}

#stopka1,#stopka2 {
    background: seagreen;
    color: white;
    width: 50%;
    height: 70px;
    text-align: center;
    float: left;
}

input,button {
    margin-bottom: 20px;
}

img {
    box-shadow: 15px 15px 10px dimgray;
}

a {
    text-decoration: none;
    background: mintcream;
    color: seagreen;
    padding: 15px;
    line-height: 70px;
}

Strona używa plików cookies

Serwis wykorzystuje ciasteczka głównie w celu prowadzenia systemu formularzy oraz zbierania danych dotyczących ruchu na stronie.

Więcej informacji znajdziesz w Polityce Prywatności

Akceptuję