Rozwiązanie - Egzamin Praktyczny EE.09

Arkusz EE.09-01-23.01-SG - Styczeń 2023 - Wersja #01

Skrypt: PHP

Baza Danych:

Przykładowe rozwiązanie
Rozwiązanie - Arkusz praktyczny EE.09-01-23.01-SG - Styczeń 2023 - Wersja #01
Wymagane zdjęcia
Egzamin EE.09-01-23.01-SG - dodatkowe zdjęcia - 2.jpg
2.jpg
Wyniki działań na bazie danych
Egzamin EE.09-01-23.01-SG - Operacje na bazie danych - import.jpg
import.jpg
Egzamin EE.09-01-23.01-SG - Operacje na bazie danych - import.jpg
kw1.png
Egzamin EE.09-01-23.01-SG - Operacje na bazie danych - import.jpg
kw2.png
Egzamin EE.09-01-23.01-SG - Operacje na bazie danych - import.jpg
kw3.png
Egzamin EE.09-01-23.01-SG - Operacje na bazie danych - import.jpg
kw4.png
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

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ę