Rozwiązanie - Egzamin Praktyczny INF.03

Arkusz INF.03-03-24.06-SG - Czerwiec 2024 - Wersja #03

Skrypt: PHP

Baza Danych:

Przykładowe rozwiązanie
Rozwiązanie - Arkusz praktyczny INF.03-03-24.06-SG - Czerwiec 2024 - Wersja #03
Rozwiązanie - Arkusz praktyczny INF.03-03-24.06-SG - Czerwiec 2024 - Wersja #03
Rozwiązanie - Arkusz praktyczny INF.03-03-24.06-SG - Czerwiec 2024 - Wersja #03
Wymagane zdjęcia
Egzamin INF.03-03-24.06-SG - dodatkowe zdjęcia - obraz1.png
obraz1.png
Egzamin INF.03-03-24.06-SG - dodatkowe zdjęcia - obraz2.jpg
obraz2.jpg
Wyniki działań na bazie danych
Egzamin INF.03-03-24.06-SG - Operacje na bazie danych - import.png
import.png
Egzamin INF.03-03-24.06-SG - Operacje na bazie danych - import.png
kw1.jpeg
Egzamin INF.03-03-24.06-SG - Operacje na bazie danych - import.png
kw2.jpeg
Egzamin INF.03-03-24.06-SG - Operacje na bazie danych - import.png
kw3.jpeg
Egzamin INF.03-03-24.06-SG - Operacje na bazie danych - import.png
kw4.jpeg
Plik rzeki.sql
-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: Paź 11, 2024 at 06:12 PM
-- Wersja serwera: 10.4.32-MariaDB
-- Wersja PHP: 8.2.12

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 */;

--
-- Database: `rzeki`
--

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

--
-- Struktura tabeli dla tabeli `pomiary`
--

CREATE TABLE `pomiary` (
  `id` int(10) UNSIGNED NOT NULL,
  `wodowskazy_id` int(10) UNSIGNED NOT NULL,
  `dataPomiaru` date DEFAULT NULL,
  `stanWody` int(10) UNSIGNED DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Dumping data for table `pomiary`
--

INSERT INTO `pomiary` (`id`, `wodowskazy_id`, `dataPomiaru`, `stanWody`) VALUES
(1, 1, '2022-05-05', 100),
(2, 1, '2022-05-06', 120),
(3, 2, '2022-05-05', 240),
(4, 2, '2022-05-06', 240),
(5, 3, '2022-05-05', 300),
(6, 3, '2022-05-06', 300),
(7, 4, '2022-05-05', 120),
(8, 4, '2022-05-06', 130),
(9, 5, '2022-05-05', 100),
(10, 5, '2022-05-06', 100),
(11, 6, '2022-05-05', 200),
(12, 6, '2022-05-06', 250),
(13, 7, '2022-05-05', 90),
(14, 7, '2022-05-06', 93),
(15, 8, '2022-05-05', 100),
(16, 8, '2022-05-06', 60),
(17, 9, '2022-05-05', 170),
(18, 9, '2022-05-06', 200),
(19, 10, '2022-05-05', 100),
(20, 10, '2022-05-06', 100),
(21, 11, '2022-05-05', 200),
(22, 11, '2022-05-06', 250),
(23, 12, '2022-05-05', 340),
(24, 12, '2022-05-06', 360),
(25, 13, '2022-05-05', 200),
(26, 13, '2022-05-06', 230),
(27, 14, '2022-05-05', 100),
(28, 14, '2022-05-06', 90),
(29, 15, '2022-05-05', 100),
(30, 15, '2022-05-06', 150),
(31, 16, '2022-05-05', 190),
(32, 16, '2022-05-06', 190),
(33, 17, '2022-05-05', 200),
(34, 17, '2022-05-06', 190);

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

--
-- Struktura tabeli dla tabeli `wodowskazy`
--

CREATE TABLE `wodowskazy` (
  `id` int(10) UNSIGNED NOT NULL,
  `nazwa` varchar(100) DEFAULT NULL,
  `rzeka` varchar(30) DEFAULT NULL,
  `stanOstrzegawczy` int(10) UNSIGNED DEFAULT NULL,
  `stanAlarmowy` int(10) UNSIGNED DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Dumping data for table `wodowskazy`
--

INSERT INTO `wodowskazy` (`id`, `nazwa`, `rzeka`, `stanOstrzegawczy`, `stanAlarmowy`) VALUES
(1, 'Lubachów', 'Bystrzyca', 190, 210),
(2, 'Jarnołtów', 'Bystrzyca', 230, 270),
(3, 'Łazany', 'Strzegomka', 200, 240),
(4, 'Krzyżanowice', 'Widawa', 150, 200),
(5, 'Świerzawa', 'Kaczawa', 150, 200),
(6, 'Piątnica', 'Kaczawa', 300, 370),
(7, 'Jawor', 'Nysa Szalona', 100, 150),
(8, 'Osetno', 'Barycz', 260, 330),
(9, 'Jelenia Góra', 'Bóbr', 160, 220),
(10, 'Dąbrowa Bolesławicka', 'Bóbr', 300, 350),
(11, 'Mirsk', 'Kwisa', 420, 470),
(12, 'Nowogrodziec', 'Kwisa', 330, 380),
(13, 'Zgorzelec', 'Nysa Łużycka', 340, 400),
(14, 'Trestno', 'Odra', 380, 450),
(15, 'Głogów', 'Odra', 400, 450),
(16, 'Bardo', 'Nysa Kłodzka', 180, 250),
(17, 'Ślęza', 'Ślęza', 270, 300);

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

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

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

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `pomiary`
--
ALTER TABLE `pomiary`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=35;

--
-- AUTO_INCREMENT for table `wodowskazy`
--
ALTER TABLE `wodowskazy`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=18;
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: SELECT nazwa, rzeka, stanAlarmowy FROM wodowskazy;
Zapytanie 2: SELECT nazwa, rzeka, stanOstrzegawczy, stanAlarmowy, stanWody FROM wodowskazy JOIN pomiary ON wodowskazy.id = wodowskazy_id WHERE dataPomiaru='2022-05-05';
Zapytanie 3: SELECT nazwa, rzeka, stanOstrzegawczy, stanAlarmowy, stanWody FROM wodowskazy JOIN pomiary ON wodowskazy.id = wodowskazy_id WHERE dataPomiaru='2022-05-05' AND stanWody > stanOstrzegawczy;
Zapytanie 4: SELECT dataPomiaru, AVG(stanWody) FROM pomiary GROUP BY dataPomiaru; 
Plik poziomRzek.php
<?php
    $conn = new mysqli(hostname: "localhost",username: "root",password: "",database: "rzeki");
?>

<!DOCTYPE html>
<html lang="pl">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Poziomy rzek</title>
        <link rel="stylesheet" href="styl.css">
    </head>
    <body>
        <div id="header1">
            <img src="obraz1.png" alt="Mapa Polski">
        </div>

        <div id="header2">
            <h1>Rzeki w województwie dolnośląskim</h1>
        </div>

        <nav>
            <form action="poziomRzek.php" method="post">
                <input type="radio" name="stan" id="wszystkie" value="wszystkie">
                <label for="wszystkie">Wszystkie</label>

                <input type="radio" name="stan" id="ostrzegawczy" value="ostrzegawczy">
                <label for="ostrzegawczy">Ponad stan ostrzegawczy</label>

                <input type="radio" name="stan" id="alarmowy" value="alarmowy">
                <label for="alarmowy">Ponad stan alarmowy</label>

                <button type="submit" name="pokaz">Pokaż</button>
            </form>
        </nav>

        <div id="lewy">
            <h3>Stany na dzień 2022-05-05</h3>
            <table>
                <tr>
                    <th>Wodomierz</th>
                    <th>Rzeka</th>
                    <th>ostrzegawczy</th>
                    <th>Alarmowy</th>
                    <th>Aktualny</th>
                </tr>

                <?php
                    // Skrypt #1

                    if(isset($_POST['stan'])) {
                        $stan = $_POST['stan'];
                        if($stan == 'wszystkie') {
                            $sql = "SELECT nazwa, rzeka, stanOstrzegawczy, stanAlarmowy, stanWody FROM wodowskazy JOIN pomiary ON wodowskazy.id = wodowskazy_id WHERE dataPomiaru='2022-05-05';";
                        }
                        else if($stan == 'ostrzegawczy') {
                            $sql = "SELECT nazwa, rzeka, stanOstrzegawczy, stanAlarmowy, stanWody FROM wodowskazy JOIN pomiary ON wodowskazy.id = wodowskazy_id WHERE dataPomiaru='2022-05-05' AND stanWody > stanOstrzegawczy;";
                        }
                        else if($stan == 'alarmowy') {
                            $sql = "SELECT nazwa, rzeka, stanOstrzegawczy, stanAlarmowy, stanWody FROM wodowskazy JOIN pomiary ON wodowskazy.id = wodowskazy_id WHERE dataPomiaru='2022-05-05' AND stanWody > stanAlarmowy;";
                        }
                        $result = $conn->query(query: $sql);
                        while($row = $result -> fetch_array()) {
                            echo "<tr>";
                                echo "<td>$row[0]</td>";
                                echo "<td>$row[1]</td>";
                                echo "<td>$row[2]</td>";
                                echo "<td>$row[3]</td>";
                                echo "<td>$row[4]</td>";
                            echo "</tr>";
                        }
                    }
                ?>

            </table>
        </div>

        <div id="prawy">
            <h3>informacje</h3>
            <ul>
                <li>Brak ostrzeżeń o burzach z gradem</li>
                <li>Smog w mieście Wrocław</li>
                <li>Silny wiatr w Karkonoszach</li>
            </ul>
            <h3>Średnie stany wód</h3>
            
            <?php
                // Skrypt #2
                $sql = "SELECT dataPomiaru, AVG(stanWody) FROM pomiary GROUP BY dataPomiaru; ";
                $result = $conn->query(query: $sql);
                while($row = $result -> fetch_array()) {
                    echo "<p>$row[0]: $row[1]</p>";
                }
            ?>

            <a href="https://komunikaty.pl">Dowiedz się więcej</a>

            <img src="obraz2.jpg" alt="rzeka">
        </div>

        <footer>
            <p>Stronę wykonał: <a href="https://ee-informatyk.pl/" target="_blank" style="text-decoration: none;color: unset;">EE-Informatyk.pl</a></p>
        </footer>
    </body>
</html>

<?php
    $conn -> close();
?>
Plik styl.css
* {
    font-family: 'Georgia';
}

#header1,
#header2 {
    float: left;
    background-color: Navy;
    color: white;
    text-align: center;
    height: 100px;
    width: 50%;
}

nav {
    clear: both;
    background-color: Navy;
    padding: 20px;
}

label {
    color: Silver;
    margin: 20px;
}

label:hover {
    color: white;
    text-decoration: underline;
}

#lewy,
#prawy {
    background-color: Azure;
    height: 550px;
    float: left;
}

#lewy {
    width: 70%;
}

#prawy {
    width: 30%;
}

footer {
    clear: both;
    background-color: Navy;
    color: white;
}

table {
    border: 1px solid Navy;
    margin: auto;
    width: 70%;
}

tr:hover {
    background-color: SkyBlue;
}

#prawy > img {
    width: 90%;
}

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ę