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;
|
||||
}
|
||||