17.12
149
Egzamin/37 inf_03_2024_06_03_php_rzeki/baza.sql
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
-- phpMyAdmin SQL Dump
|
||||||
|
-- version 5.1.1
|
||||||
|
-- https://www.phpmyadmin.net/
|
||||||
|
--
|
||||||
|
-- Host: 127.0.0.1
|
||||||
|
-- Czas generowania: 05 Maj 2022, 11:02
|
||||||
|
-- Wersja serwera: 10.4.22-MariaDB
|
||||||
|
-- Wersja PHP: 8.1.2
|
||||||
|
|
||||||
|
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: `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;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Zrzut danych tabeli `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) COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||||
|
`rzeka` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||||
|
`stanOstrzegawczy` int(10) UNSIGNED DEFAULT NULL,
|
||||||
|
`stanAlarmowy` int(10) UNSIGNED DEFAULT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Zrzut danych tabeli `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 dla zrzuconych tabel
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- AUTO_INCREMENT dla tabeli `pomiary`
|
||||||
|
--
|
||||||
|
ALTER TABLE `pomiary`
|
||||||
|
MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=35;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- AUTO_INCREMENT dla tabeli `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 */;
|
||||||
BIN
Egzamin/37 inf_03_2024_06_03_php_rzeki/import.png
Normal file
|
After Width: | Height: | Size: 417 KiB |
BIN
Egzamin/37 inf_03_2024_06_03_php_rzeki/kw1.jpeg
Normal file
|
After Width: | Height: | Size: 295 KiB |
BIN
Egzamin/37 inf_03_2024_06_03_php_rzeki/kw2.jpeg
Normal file
|
After Width: | Height: | Size: 296 KiB |
BIN
Egzamin/37 inf_03_2024_06_03_php_rzeki/kw3.jpeg
Normal file
|
After Width: | Height: | Size: 308 KiB |
BIN
Egzamin/37 inf_03_2024_06_03_php_rzeki/kw4.jpeg
Normal file
|
After Width: | Height: | Size: 254 KiB |
4
Egzamin/37 inf_03_2024_06_03_php_rzeki/kwerendy.txt
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
SELECT nazwa,rzeka,stanAlarmowy FROM wodowskazy;
|
||||||
|
SELECT nazwa,rzeka,stanOstrzegawczy,stanAlarmowy FROM wodowskazy JOIN pomiary ON wodowskazy.id = wodowskazy_id WHERE dataPomiaru='2022-05-05';
|
||||||
|
SELECT nazwa,rzeka,stanOstrzegawczy,stanAlarmowy FROM wodowskazy JOIN pomiary ON wodowskazy.id = wodowskazy_id WHERE dataPomiaru='2022-05-05'AND stanWody > stanOstrzegawczy;
|
||||||
|
SELECT dataPomiaru, AVG(stanWody) FROM pomiary GROUP BY dataPomiaru;
|
||||||
BIN
Egzamin/37 inf_03_2024_06_03_php_rzeki/obraz1.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
Egzamin/37 inf_03_2024_06_03_php_rzeki/obraz1_edited.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
Egzamin/37 inf_03_2024_06_03_php_rzeki/obraz2.jpg
Normal file
|
After Width: | Height: | Size: 65 KiB |
113
Egzamin/37 inf_03_2024_06_03_php_rzeki/poziomRzek.php
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
<?php
|
||||||
|
$db = mysqli_connect('localhost', 'root', '', 'rzeki');
|
||||||
|
?>
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="pl">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport"
|
||||||
|
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||||
|
<link rel="stylesheet" href="styl.css">
|
||||||
|
<title>Poziomy Rzek</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header id="headers">
|
||||||
|
<div id="header-left">
|
||||||
|
<img src="obraz1.png" alt="Mapa Polski">
|
||||||
|
</div>
|
||||||
|
<div id="header-right">
|
||||||
|
<h1>Rzeki w województwie dolnośląskim</h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<section id="menu">
|
||||||
|
<form action="poziomRzek.php" method="post">
|
||||||
|
<span class="radios">
|
||||||
|
<input type="radio" name="options" id="radio1" value="all">
|
||||||
|
<label for="radio1">Wszystkie</label>
|
||||||
|
</span>
|
||||||
|
<span class="radios">
|
||||||
|
<input type="radio" name="options" id="radio2" value="warning">
|
||||||
|
<label for="radio2">Ponad stan ostrzegawczy</label>
|
||||||
|
</span>
|
||||||
|
<span class="radios">
|
||||||
|
<input type="radio" name="options" id="radio3" value="alarm">
|
||||||
|
<label for="radio3">Pokaż stan alarmowy</label>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<button type="submit">Pokaż</button>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
<section id="sections">
|
||||||
|
<div id="section-left">
|
||||||
|
<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
|
||||||
|
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||||
|
$poziom = $_POST['options'];
|
||||||
|
$sql = '';
|
||||||
|
switch ($poziom) {
|
||||||
|
case 'all':
|
||||||
|
$sql = "SELECT wodowskazy.nazwa,wodowskazy.rzeka,wodowskazy.stanOstrzegawczy,wodowskazy.stanAlarmowy,pomiary.stanWody AS aktualny FROM wodowskazy JOIN pomiary ON wodowskazy.id = pomiary.wodowskazy_id WHERE pomiary.dataPomiaru = '2022-05-05';";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'warning':
|
||||||
|
$sql = "SELECT wodowskazy.nazwa,wodowskazy.rzeka,wodowskazy.stanOstrzegawczy,wodowskazy.stanAlarmowy,pomiary.stanWody AS aktualny FROM wodowskazy JOIN pomiary ON wodowskazy.id = pomiary.wodowskazy_id WHERE pomiary.dataPomiaru = '2022-05-05' AND pomiary.stanWody > wodowskazy.stanOstrzegawczy;";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'alarm':
|
||||||
|
$sql = "SELECT wodowskazy.nazwa, wodowskazy.rzeka, wodowskazy.stanOstrzegawczy, wodowskazy.stanAlarmowy, pomiary.stanWody AS aktualny FROM wodowskazy JOIN pomiary ON wodowskazy.id = pomiary.wodowskazy_id WHERE pomiary.dataPomiaru = '2022-05-05' AND pomiary.stanWody > wodowskazy.stanAlarmowy;";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mysqli_errno($db)) {
|
||||||
|
$result = mysqli_query($db, $sql);
|
||||||
|
for ($i = 0; $i < mysqli_num_rows($result); $i++) {
|
||||||
|
echo "<tr>";
|
||||||
|
$row = mysqli_fetch_assoc($result);
|
||||||
|
echo "<td>" . $row['nazwa'] . "</td>";
|
||||||
|
echo "<td>" . $row['rzeka'] . "</td>";
|
||||||
|
echo "<td>" . $row['stanOstrzegawczy'] . "</td>";
|
||||||
|
echo "<td>" . $row['stanAlarmowy'] . "</td>";
|
||||||
|
echo "<td>" . $row['aktualny'] . "</td>";
|
||||||
|
echo "</tr>";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo "Błąd zapytania lub połączenie z bazą danych";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div id="section-right">
|
||||||
|
<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
|
||||||
|
$sql2 = 'SELECT dataPomiaru, AVG(stanWody) FROM pomiary GROUP BY dataPomiaru;';
|
||||||
|
$result2 = mysqli_query($db, $sql2);
|
||||||
|
while ($row2 = mysqli_fetch_assoc($result2)) {
|
||||||
|
echo "<p>" . $row2['dataPomiaru'] . ": " . $row2['AVG(stanWody)'] . "</p>";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<a href="https://komunikaty.pl">Dowiedz się więcej</a>
|
||||||
|
<img src="obraz2.jpg" alt="rzeka">
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<footer><p>Stronę wykonał: Jakub Grzegorczyk</p></footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
<?php
|
||||||
|
mysqli_close($db);
|
||||||
|
?>
|
||||||
1
Egzamin/37 inf_03_2024_06_03_php_rzeki/przegladarka.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Google Chrome
|
||||||
68
Egzamin/37 inf_03_2024_06_03_php_rzeki/styl.css
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
* {
|
||||||
|
font-family: Georgia, serif;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
#headers {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sections {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
|
||||||
|
#header-left, #header-right {
|
||||||
|
background: navy;
|
||||||
|
color: white;
|
||||||
|
text-align: center;
|
||||||
|
height: 100px;
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
#menu {
|
||||||
|
background: navy;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
.radios {
|
||||||
|
color: silver;
|
||||||
|
margin: 50px;
|
||||||
|
}
|
||||||
|
.radios:hover {
|
||||||
|
color: white;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
#section-left, #section-right {
|
||||||
|
background: azure;
|
||||||
|
height: 550px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
#section-left {
|
||||||
|
width: 70%;
|
||||||
|
}
|
||||||
|
#section-right {
|
||||||
|
width: 30%;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
background: navy;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#section-right > img {
|
||||||
|
width: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
border: 1px solid navy;
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 70%;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||