Rozwiązanie - Egzamin Praktyczny EE.09
Arkusz EE.09-01-23.01-SG - Styczeń 2023 - Wersja #01
Skrypt: PHP
Baza Danych:
Powiązana zawartość
Plik baza.sql
-- phpMyAdmin SQL Dump
-- version 5.0.2
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Czas generowania: 18 Sty 2021, 09:05
-- Wersja serwera: 10.4.14-MariaDB
-- Wersja PHP: 7.4.9
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: `firma`
--
-- --------------------------------------------------------
--
-- Struktura tabeli dla tabeli `pracownicy`
--
CREATE TABLE `pracownicy` (
`id` int(10) UNSIGNED NOT NULL,
`stanowiska_id` int(10) UNSIGNED NOT NULL,
`imie` varchar(20) DEFAULT NULL,
`nazwisko` varchar(50) DEFAULT NULL,
`adres` text DEFAULT NULL,
`miasto` varchar(20) DEFAULT NULL,
`czyRODO` tinyint(1) DEFAULT NULL,
`czyBadania` tinyint(1) DEFAULT NULL,
`dataUr` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Zrzut danych tabeli `pracownicy`
--
INSERT INTO `pracownicy` (`id`, `stanowiska_id`, `imie`, `nazwisko`, `adres`, `miasto`, `czyRODO`, `czyBadania`, `dataUr`) VALUES
(1, 1, 'Jan', 'Nowak', 'ul. Grottgera 5', 'Bytom', 1, 1, '1975-06-09'),
(2, 1, 'Anna', 'Nowak', 'ul. Piekarska 6', 'Bytom', 1, 1, '1977-07-09'),
(3, 2, 'Katarzyna', 'Kowalska', 'ul. Klonowa 1', 'Bytom', 0, 1, '1966-06-20'),
(4, 3, 'Ewelina', 'Rak', 'ul. Musialika 20', 'Bytom', 1, 0, '1985-01-29'),
(5, 3, 'Joanna', 'Nowakowska', 'ul. Stawowa 6', 'Bytom', 1, 1, '1976-12-24'),
(6, 4, 'Krzysztof', 'Rostecki', 'ul. Piekarska 33', 'Bytom', 0, 0, '1982-06-09'),
(7, 4, 'Robert', 'Marcinkowski', 'ul. Szkolna 2', 'Bytom', 0, 1, '1975-06-09'),
(8, 4, 'Ewa', 'Maj', 'ul. Szkolna 4', 'Bytom', 1, 0, '1979-02-28'),
(9, 4, 'Piotr', 'Biernacki', 'ul. Jaworowa 10', 'Bytom', 1, 1, '1980-10-01');
-- --------------------------------------------------------
--
-- Struktura tabeli dla tabeli `stanowiska`
--
CREATE TABLE `stanowiska` (
`id` int(10) UNSIGNED NOT NULL,
`nazwa` varchar(20) DEFAULT NULL,
`opis` text DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Zrzut danych tabeli `stanowiska`
--
INSERT INTO `stanowiska` (`id`, `nazwa`, `opis`) VALUES
(1, 'kierownik', 'kierownik grupy programistow'),
(2, 'prezes', 'prezes firmy'),
(3, 'sekretarka', 'prace biurowe i kadry'),
(4, 'programista', 'programowanie aplikacji');
--
-- Indeksy dla zrzutów tabel
--
--
-- Indeksy dla tabeli `pracownicy`
--
ALTER TABLE `pracownicy`
ADD PRIMARY KEY (`id`);
--
-- Indeksy dla tabeli `stanowiska`
--
ALTER TABLE `stanowiska`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT dla tabeli `pracownicy`
--
ALTER TABLE `pracownicy`
MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;
--
-- AUTO_INCREMENT dla tabeli `stanowiska`
--
ALTER TABLE `stanowiska`
MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
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,imie,nazwisko,adres,miasto,czyRODO,czyBadania FROM pracownicy WHERE id=2;
Zapytanie 2: SELECT COUNT(*) FROM pracownicy;
Zapytanie 3: SELECT id,imie,nazwisko FROM pracownicy WHERE id=2;
Zapytanie 4: SELECT pracownicy.id, stanowiska.nazwa, stanowiska.opis FROM pracownicy, stanowiska WHERE pracownicy.stanowiska_id = stanowiska.id AND pracownicy.id = 2;
Plik index.php
<?php
$conn = new mysqli("localhost", "root", "", "firma");
?>
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sekretariat</title>
<link rel="stylesheet" href="styl.css">
</head>
<body>
<div class="lewy">
<h1>Akta Pracownicze</h1>
<?php
// Skrypt #1
$query1 = "SELECT id, imie, nazwisko, adres, miasto, czyRODO, czyBadania FROM pracownicy WHERE id=2";
$result1 = $conn->query($query1);
if ($result1->num_rows > 0) {
while ($row = $result1->fetch_assoc()) {
echo "<h3>dane</h3>";
echo "<p>{$row['imie']} {$row['nazwisko']}</p>";
echo "<hr>";
echo "<h3>adres</h3>";
echo "<p>{$row['adres']}</p>";
echo "<p>{$row['miasto']}</p>";
echo "<hr>";
echo "<p>RODO: " . ($row['czyRODO'] ? 'podpisano' : 'niepodpisano') . "</p>";
echo "<p>Badania: " . ($row['czyBadania'] ? 'aktualne' : 'nieaktualne') . "</p>";
}
}
?>
<hr>
<h3>Dokumenty pracownika</h3>
<a href="cv.txt">Pobierz</a>
<h1>Liczba zatrudnionych pracowników</h1>
<?php
// Skrypt #2
$query2 = "SELECT COUNT(*) FROM pracownicy";
$result2 = $conn->query($query2);
if ($result2->num_rows > 0) {
$row = $result2->fetch_assoc();
echo "Liczba pracowników: " . $row['COUNT(*)'];
}
?>
</div>
<div class="prawy">
<?php
// Skrypt #3
$query3 = "SELECT id, imie, nazwisko FROM pracownicy WHERE id=2";
$result3 = $conn->query($query3);
if ($result3->num_rows > 0) {
$row = $result3->fetch_assoc();
$imageName = "{$row['id']}.jpg";
echo "<img src='$imageName' alt='pracownik'>";
echo "<h2>{$row['imie']} {$row['nazwisko']}</h2>";
$query4 = "SELECT pracownicy.id, stanowiska.nazwa, stanowiska.opis FROM pracownicy, stanowiska WHERE pracownicy.stanowiska_id = stanowiska.id AND pracownicy.id = 2";
$result4 = $conn->query($query4);
if ($result4->num_rows > 0) {
$row4 = $result4->fetch_assoc();
echo "<h4>{$row4['nazwa']}</h4>";
echo "<h5>{$row4['opis']}</h5>";
}
}
?>
</div>
<footer>
Autorem aplikacji jest: <a href="https://ee-informatyk.pl/" target="_blank" style="text-decoration: none;color: #fff;">EE-Informatyk.pl</a>
<ul>
<li>skontaktuj się</li>
<li>poznaj naszą firmę</li>
</ul>
</footer>
</body>
</html>
<?php
$conn->close();
?>
Plik styl.css
body {
font-family: Helvetica;
background: #DDD;
color: #546E7A;
}
.lewy,
.prawy {
background: #fff;
height: 600px;
margin: 20px;
box-shadow: 0 0 20px grey;
}
.lewy {
width: 50%;
float: left;
}
.prawy {
width: 30%;
float: left;
}
footer {
clear: both;
background: #5C6BC0;
color: #fff;
padding: 30px;
}
img {
width: 100%;
}
h1 {
background: #5C6BC0;
color: #fff;
padding: 10px;
margin: 0;
font-weight: 300;
}
h3,p {
padding-left: 30px;
}
h2,h4 {
text-align: center;
}
Plik cv.txt
plik z CV pracownika
Powiązana zawartość
Autorem arkusza jest CKE.GOV.PL