Rozwiązanie - Egzamin Praktyczny INF.03
Arkusz INF.03-01-22.06-SG - Czerwiec 2022 - Wersja #01
Skrypt: PHP
Baza Danych:
Powiązana zawartość
Plik wedkowanie.sql
-- phpMyAdmin SQL Dump
-- version 5.2.0
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Czas generowania: 15 Mar 2023, 06:28
-- 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: `wedkowanie`
--
-- --------------------------------------------------------
--
-- 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 `okres_ochronny`
--
CREATE TABLE `okres_ochronny` (
`id` int(10) UNSIGNED NOT NULL,
`Ryby_id` int(10) UNSIGNED NOT NULL,
`od_miesiaca` int(10) UNSIGNED DEFAULT NULL,
`do_miesiaca` int(10) UNSIGNED DEFAULT NULL,
`wymiar_ochronny` int(10) UNSIGNED DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
--
-- Zrzut danych tabeli `okres_ochronny`
--
INSERT INTO `okres_ochronny` (`id`, `Ryby_id`, `od_miesiaca`, `do_miesiaca`, `wymiar_ochronny`) VALUES
(1, 1, 1, 4, 50),
(2, 2, 0, 0, 30),
(3, 3, 1, 5, 50),
(4, 4, 0, 0, 15),
(5, 5, 11, 6, 70),
(6, 6, 0, 0, 0),
(7, 7, 0, 0, 0),
(8, 8, 0, 0, 25);
-- --------------------------------------------------------
--
-- Struktura tabeli dla tabeli `ryby`
--
CREATE TABLE `ryby` (
`id` int(10) UNSIGNED NOT NULL,
`nazwa` text DEFAULT NULL,
`wystepowanie` text DEFAULT NULL,
`styl_zycia` int(11) DEFAULT NULL,
`dobowy_limit` tinyint(3) UNSIGNED DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
--
-- Zrzut danych tabeli `ryby`
--
INSERT INTO `ryby` (`id`, `nazwa`, `wystepowanie`, `styl_zycia`, `dobowy_limit`) VALUES
(1, 'Szczupak', 'stawy, rzeki', 1, NULL),
(2, 'Karp', 'stawy, jeziora', 2, NULL),
(3, 'Sandacz', 'stawy, jeziora, rzeki', 1, NULL),
(4, 'Okon', 'rzeki', 1, NULL),
(5, 'Sum', 'jeziora, rzeki', 1, NULL),
(6, 'Dorsz', 'morza, oceany', 1, NULL),
(7, 'Leszcz', 'jeziora', 2, NULL),
(8, 'Lin', 'jeziora', 2, NULL);
--
-- Indeksy dla zrzutów tabel
--
--
-- Indeksy dla tabeli `lowisko`
--
ALTER TABLE `lowisko`
ADD PRIMARY KEY (`id`);
--
-- Indeksy dla tabeli `okres_ochronny`
--
ALTER TABLE `okres_ochronny`
ADD PRIMARY KEY (`id`);
--
-- Indeksy dla tabeli `ryby`
--
ALTER TABLE `ryby`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT dla zrzuconych tabel
--
--
-- AUTO_INCREMENT dla tabeli `lowisko`
--
ALTER TABLE `lowisko`
MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;
--
-- AUTO_INCREMENT dla tabeli `okres_ochronny`
--
ALTER TABLE `okres_ochronny`
MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;
--
-- AUTO_INCREMENT dla tabeli `ryby`
--
ALTER TABLE `ryby`
MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;
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 id, nazwa, wystepowanie FROM ryby WHERE styl_zycia = 1;
Zapytanie 2: SELECT Ryby_id, wymiar_ochronny FROM okres_ochronny WHERE wymiar_ochronny < 30;
Zapytanie 3: SELECT ryby.nazwa, lowisko.akwen, lowisko.wojewodztwo FROM ryby INNER JOIN lowisko ON ryby.id = lowisko.Ryby_id WHERE lowisko.rodzaj = 3;
Zapytanie 4: ALTER TABLE ryby ADD COLUMN dobowy_limit TINYINT UNSIGNED;
Plik wedkuj.php
<?php
$conn = new mysqli("localhost","root","","wedkowanie");
?>
<!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>Wędkowanie</title>
<link rel="stylesheet" href="styl_1.css">
</head>
<body>
<header>
<h1>Portal dla wędkarzy</h1>
</header>
<div id="lewy1">
<h3>Ryby zamieszkujące rzeki</h3>
<ol>
<?php
// Skrypt #1
$sql = "SELECT ryby.nazwa, lowisko.akwen, lowisko.wojewodztwo FROM ryby INNER JOIN lowisko ON ryby.id = lowisko.Ryby_id WHERE lowisko.rodzaj = 3;";
$result = $conn->query($sql);
while($row = $result -> fetch_array()) {
echo "<li>".$row[0]." pływa w rzece ".$row[1].", ".$row[2]."</li>";
}
?>
</ol>
</div>
<div id="prawy">
<img src="ryba1.jpg" alt="Sum"><br>
<a href="kwerendy.txt">Pobierz kwerendy</a>
</div>
<div id="lewy2">
<h3>Ryby drapieżne naszych wód</h3>
<table>
<tr>
<th>L.P.</th>
<th>Gatunek</th>
<th>Występowanie</th>
</tr>
<?php
// Skrypt #2
$sql = "SELECT id, nazwa, wystepowanie FROM ryby WHERE styl_zycia = 1;";
$result = $conn->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 "</tr>";
}
?>
</table>
</div>
<footer>
<p>Stronę wykonał: <a href="https://ee-informatyk.pl/" target="_blank" style="color: unset;text-decoration: none;">EE-Informatyk.pl</a></p>
</footer>
</body>
</html>
<?php
$conn -> close();
?>
Plik styl_1.css
body {
font-family: Helvetica;
}
header,footer {
background: #00838F;
color: white;
padding: 5px;
font-size: 130%;
text-align: center;
clear: both;
}
#lewy1,#lewy2 {
background: #EFEFEF;
width: 55%;
float: left;
}
#lewy1 {
height: 150px;
}
#lewy2 {
height: 300px;
}
#prawy {
background: #4FB3BF;
width: 45%;
height: 450px;
text-align: center;
float: right;
}
img {
box-shadow: 10px 10px 7px 0px dimgrey;
margin: 20px;
}
table,td,th {
border: 1px solid #4Fb3BF;
border-collapse: collapse;
}
table {
margin: auto;
width: 80%;
}
td,th {
padding: 4px;
}
tr:hover {
background: #4FB3BF;
}
Powiązana zawartość
Autorem arkusza jest CKE.GOV.PL