Rozwiązanie - Egzamin Praktyczny E.14

Arkusz E.14-03-16.08 - Sierpień 2016 - Wersja #03

Skrypt: PHP

Baza Danych:

Przykładowe rozwiązanie
Rozwiązanie - Arkusz praktyczny E.14-03-16.08 - Sierpień 2016 - Wersja #03
Wyniki działań na bazie danych
Egzamin E.14-03-16.08 - Operacje na bazie danych - import.png
import.png
Egzamin E.14-03-16.08 - Operacje na bazie danych - import.png
kw1.png
Egzamin E.14-03-16.08 - Operacje na bazie danych - import.png
kw2.png
Egzamin E.14-03-16.08 - Operacje na bazie danych - import.png
kw3.png
Egzamin E.14-03-16.08 - Operacje na bazie danych - import.png
kw4.png
Plik sportowcy.sql
-- phpMyAdmin SQL Dump
-- version 5.2.0
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Czas generowania: 13 Mar 2023, 14:24
-- 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: `sportowcy`
--

-- --------------------------------------------------------

--
-- Struktura tabeli dla tabeli `dyscyplina`
--

CREATE TABLE `dyscyplina` (
  `id` int(10) DEFAULT NULL,
  `nazwa` text DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Zrzut danych tabeli `dyscyplina`
--

INSERT INTO `dyscyplina` (`id`, `nazwa`) VALUES
(1, 'bieg na 100 m'),
(2, 'skok w dal'),
(3, 'rzut oszczepem'),
(4, 'sztafeta 4x400 m');

-- --------------------------------------------------------

--
-- Struktura tabeli dla tabeli `sportowiec`
--

CREATE TABLE `sportowiec` (
  `id` int(10) UNSIGNED NOT NULL,
  `imie` text DEFAULT NULL,
  `nazwisko` text DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;

--
-- Zrzut danych tabeli `sportowiec`
--

INSERT INTO `sportowiec` (`id`, `imie`, `nazwisko`) VALUES
(1, 'Anna', 'Kowalska'),
(2, 'Monika', 'Nowak'),
(3, 'Ewelina', 'Nowakowska'),
(4, 'Janina', 'Przybylska'),
(5, 'Maria', 'Kowal'),
(6, 'Ewa', 'Nowacka');

-- --------------------------------------------------------

--
-- Struktura tabeli dla tabeli `wyniki`
--

CREATE TABLE `wyniki` (
  `id` int(10) UNSIGNED NOT NULL,
  `dyscyplina_id` int(10) UNSIGNED NOT NULL,
  `sportowiec_id` int(10) UNSIGNED NOT NULL,
  `wynik` decimal(5,2) DEFAULT NULL,
  `dataUstanowienia` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;

--
-- Zrzut danych tabeli `wyniki`
--

INSERT INTO `wyniki` (`id`, `dyscyplina_id`, `sportowiec_id`, `wynik`, `dataUstanowienia`) VALUES
(1, 1, 1, '12.40', '2015-10-14'),
(2, 1, 1, '12.00', '2015-10-06'),
(3, 1, 2, '11.80', '2015-10-14'),
(4, 1, 2, '11.90', '2015-10-06'),
(5, 1, 3, '11.50', '2015-10-14'),
(6, 1, 3, '11.56', '2015-10-06'),
(7, 1, 4, '11.70', '2015-10-14'),
(8, 1, 4, '11.67', '2015-10-06'),
(9, 1, 5, '11.30', '2015-10-14'),
(10, 1, 5, '11.52', '2015-10-06'),
(11, 1, 6, '12.10', '2015-10-14'),
(12, 1, 6, '12.00', '2015-10-06'),
(13, 3, 1, '63.00', '2015-11-11'),
(14, 3, 1, '63.60', '2015-10-13'),
(15, 3, 2, '64.00', '2015-11-11'),
(16, 3, 2, '63.60', '2015-10-13'),
(17, 3, 3, '60.00', '2015-11-11'),
(18, 3, 3, '61.60', '2015-10-13'),
(19, 3, 4, '63.50', '2015-11-11'),
(20, 3, 4, '63.60', '2015-10-13'),
(21, 3, 5, '70.00', '2015-10-07'),
(22, 3, 6, '68.00', '2015-10-07');

--
-- Indeksy dla zrzutów tabel
--

--
-- Indeksy dla tabeli `sportowiec`
--
ALTER TABLE `sportowiec`
  ADD PRIMARY KEY (`id`);

--
-- Indeksy dla tabeli `wyniki`
--
ALTER TABLE `wyniki`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT dla zrzuconych tabel
--

--
-- AUTO_INCREMENT dla tabeli `sportowiec`
--
ALTER TABLE `sportowiec`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;

--
-- AUTO_INCREMENT dla tabeli `wyniki`
--
ALTER TABLE `wyniki`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=23;
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 COUNT(id) FROM sportowiec;
Zapytanie 2: SELECT imie, nazwisko FROM sportowiec WHERE id=1;
Zapytanie 3: SELECT AVG(wynik) FROM wyniki WHERE dyscyplina_id = 3 AND sportowiec_id = 1;
Zapytanie 4: SELECT MAX(wynik) FROM wyniki WHERE dyscyplina_id = 3;
Plik oszczep.php
<!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>Rzut oszczepem</title>
        <link rel="stylesheet" href="styl_oszczep.css">
    </head>
    <body>
        <header>
            <h1>Klub sportowy: rzut oszczepem</h1>
        </header>

        <main>
            <?php
                // Skrypt #1
                $conn = new mysqli("localhost","root","","sportowcy");

                $sql = "SELECT MAX(wynik) FROM wyniki WHERE dyscyplina_id = 3;";
                $result = $conn->query($sql);

                while($row = $result -> fetch_array()) {
                    echo "<h1>Nasz rekord: ".$row[0]." m</h1>";
                }

                $sql = "SELECT COUNT(id) FROM sportowiec;";
                $result = $conn->query($sql);

                while($row = $result -> fetch_row()) {
                    $liczba_rekordow = $row[0];
                }

                $liczba_kolumn = 2;
                $liczba_wierszy = ceil($liczba_rekordow/$liczba_kolumn);
                
                echo "<table>";

                $id = 0;
                for ($i=0; $i < $liczba_wierszy; $i++) {
                    echo "<tr>";
                    for ($j=0; $j < $liczba_kolumn; $j++) {
                        $id++;
                        if($i*$liczba_kolumn+$j < $liczba_rekordow) {
                            echo "<td>";
                            
                                $sql = "SELECT imie, nazwisko FROM sportowiec WHERE id=$id;";
                                $result = $conn->query($sql);
                                
                                while($row = $result -> fetch_array()) {
                                    echo "<h3>".$row["imie"]." ".$row["nazwisko"]."</h3>";
                                }

                                $sql = "SELECT AVG(wynik) FROM wyniki WHERE dyscyplina_id = 3 AND sportowiec_id = $id;";
                                $result = $conn->query($sql);
                                
                                while($row = $result -> fetch_array()) {
                                    echo "<p>średni wynik: ".$row[0]."</p>";
                                }

                            echo "</td>";
                        }
                    }
                    echo "</tr>";
                }

                echo "</table>";

                $conn -> close();
            ?>
        </main>

        <footer>
            <p>Klub sportowy</p>
            Stronę opracował: <a href="https://ee-informatyk.pl/" target="_blank" style="color: unset;text-decoration: none;">EE-Informatyk.pl</a>
        </footer>
    </body>
</html>
Plik styl_oszczep.css
header,
footer {
    background: #773D24;
    color: white;
    text-align: center;
    padding: 20px;
}

main {
    background: #B97E65;
    height: 600px;
}

main h1 {
    margin-top: 0;
}

table {
    width: 80%;
    border-spacing: 30px;
}

td {
    background: #DEAD98;
}

p {
    text-align: center;
}

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ę