Rozwiązanie - Egzamin Praktyczny INF.03

Arkusz INF.03-01-23.06 - Czerwiec 2023 - Wersja #01

Skrypt: PHP

Baza Danych:

Przykładowe rozwiązanie
Rozwiązanie - Arkusz praktyczny INF.03-01-23.06 - Czerwiec 2023 - Wersja #01
Wymagane zdjęcia
Egzamin INF.03-01-23.06 - dodatkowe zdjęcia - promocja.png
promocja.png
Wyniki działań na bazie danych
Egzamin INF.03-01-23.06 - Operacje na bazie danych - baza.jpg
baza.jpg
Egzamin INF.03-01-23.06 - Operacje na bazie danych - baza.jpg
kwerenda1.jpg
Egzamin INF.03-01-23.06 - Operacje na bazie danych - baza.jpg
kwerenda2.jpg
Egzamin INF.03-01-23.06 - Operacje na bazie danych - baza.jpg
kwerenda3.jpg
Egzamin INF.03-01-23.06 - Operacje na bazie danych - baza.jpg
kwerenda4.jpg
Plik sklep.sql
-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: Sty 16, 2024 at 06:00 AM
-- Wersja serwera: 10.4.28-MariaDB
-- Wersja PHP: 8.2.4

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 */;

--
-- Database: `sklep`
--

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

--
-- Struktura tabeli dla tabeli `dostawcy`
--

CREATE TABLE `dostawcy` (
  `id` int(11) NOT NULL,
  `nazwa` varchar(50) NOT NULL,
  `adres` varchar(50) NOT NULL,
  `informacje` text DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;

--
-- Dumping data for table `dostawcy`
--

INSERT INTO `dostawcy` (`id`, `nazwa`, `adres`, `informacje`) VALUES
(1, 'Papiernictwo', 'ul. Boczna 12, 23-355 Bukowina', NULL),
(2, 'Art. szkolne', 'ul. Dworcowa 20, 34-565 Warszawa', NULL),
(3, 'Wszystko dla ucznia', 'ul. Towarowa 35, 88-123 Zakopane', NULL);

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

--
-- Struktura tabeli dla tabeli `towary`
--

CREATE TABLE `towary` (
  `id` int(11) NOT NULL,
  `nazwa` varchar(20) NOT NULL,
  `cena` float NOT NULL,
  `promocja` tinyint(1) NOT NULL,
  `idDostawcy` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;

--
-- Dumping data for table `towary`
--

INSERT INTO `towary` (`id`, `nazwa`, `cena`, `promocja`, `idDostawcy`) VALUES
(1, 'Zeszyt 60 kartek', 4.5, 0, 1),
(2, 'Zeszyt 32 kartki', 1.2, 0, 2),
(3, 'Cyrkiel', 12.4, 0, 1),
(4, 'Linijka 30 cm', 7.2, 0, 3),
(5, 'Ekierka', 5.5, 0, 3),
(6, 'Linijka 50 cm', 8.2, 0, 2),
(7, 'Gumka do mazania', 3.2, 1, 1),
(8, 'Cienkopis', 2.5, 1, 2),
(9, 'Pisaki 60 szt.', 55, 1, 2),
(10, 'Markery 4 szt.', 22.4, 1, 1);

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

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

--
-- Indeksy dla tabeli `towary`
--
ALTER TABLE `towary`
  ADD PRIMARY KEY (`id`),
  ADD KEY `idDostawcy` (`idDostawcy`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `dostawcy`
--
ALTER TABLE `dostawcy`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;

--
-- AUTO_INCREMENT for table `towary`
--
ALTER TABLE `towary`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;

--
-- Constraints for dumped tables
--

--
-- Constraints for table `towary`
--
ALTER TABLE `towary`
  ADD CONSTRAINT `idDostawcy` FOREIGN KEY (`idDostawcy`) REFERENCES `dostawcy` (`id`);
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 nazwa FROM towary WHERE promocja = 1;
Zapytanie 2: SELECT cena FROM towary WHERE nazwa = 'Markery 4 szt.';
Zapytanie 3: SELECT dostawcy.id, dostawcy.nazwa, COUNT(towary.id) AS liczba_towarow FROM dostawcy JOIN towary ON idDostawcy = dostawcy.id GROUP BY dostawcy.nazwa;
Zapytanie 4: ALTER TABLE dostawcy ADD COLUMN informacje TEXT;
Plik index.php
<?php
    $conn = new mysqli("localhost","root","","sklep");
?>

<!DOCTYPE html>
<html lang="pl">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Sklep dla uczniów</title>
        <link rel="stylesheet" href="styl.css">
    </head>
    <body>
        <header>
            <h1>Dzisiejsze promocje naszego sklepu</h1>
        </header>

        <div id="lewy">
            <h2>Taniej o 30%</h2>
            <ol>
                <?php
                    // Skrypt #1
                    $sql = "SELECT nazwa FROM towary WHERE promocja = 1;";
                    $result = $conn->query($sql);

                    while($row = $result -> fetch_array()) {
                        echo "<li>$row[0]</li>";
                    }
                ?>
            </ol>
        </div>

        <div id="srodkowy">
            <h2>Sprawdź cenę</h2>
            <form action="index.php" method="post">
                <select name="towar" id="towar">
                    <option value="Gumka do mazania">Gumka do mazania</option>
                    <option value="Cienkopis">Cienkopis</option>
                    <option value="Pisaki 60 szt.">Pisaki 60 szt.</option>
                    <option value="Markery 4 szt.">Markery 4 szt.</option>
                </select>
                <button type="submit" name="check" id="check">SPRAWDŹ</button>
            </form>
            <?php
                // Skrypt #2
                if(isset($_POST["check"])) {
                    echo "<div id='script'>";
                        $towar = $_POST["towar"];
                        $sql = "SELECT cena FROM towary WHERE nazwa = '$towar';";
                        $result = $conn->query($sql);

                        while($row = $result -> fetch_array()) {
                            $cena = $row[0];
                            $cenanowa = $cena - ($cena * 0.3);
                            echo "cena regularna: $cena<br>";
                            echo "cena w promocji 30%: $cenanowa";
                        }
                    echo "</div>";
                }
            ?>
        </div>

        <div id="prawy">
            <h2>Kontakt</h2>
            <p>e-mail: <a href="mailto:[email protected]">[email protected]</a></p>
            <img src="promocja.png" alt="promocja">
        </div>

        <footer>
            <h4>Autor strony: <a href="https://ee-informatyk.pl/" target="_blank" style="font-weight: bold;color: #fff;text-decoration: none;">EE-Informatyk.pl</a></h4>
        </footer>
    </body>
</html>

<?php
    $conn -> close();
?>
Plik styl.css
* {
    font-family: Garamond;
    text-align: center;
}

header,footer {
    background: #8C7B75;
    color: white;
    height: 70px;
    font-size: 150%;
}

footer {
    clear: both;
}

#lewy,#prawy {
    background: #BCAAA4;
    height: 400px;
    width: 35%;
    float: left;
}

#srodkowy {
    background: #EFDCD5;
    height: 400px;
    width: 30%;
    float: left;
}

ol {
    list-style-type: lower-alpha;
}

li {
    text-align: left;
}

img {
    border: 1px dashed #8C7B75;
    padding: 5px;
    border-radius: 10%;
}

#script {
    margin-top: 100px;
    border: 1px solid #8C7B75;
}

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ę