Rozwiązanie - Egzamin Praktyczny E.14
Arkusz E.14-08-19.01 - Styczeń 2019 - Wersja #08
Skrypt: PHP
Baza Danych:
Powiązana zawartość
Plik sklep.sql
-- phpMyAdmin SQL Dump
-- version 5.2.0
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Czas generowania: 09 Mar 2023, 20:47
-- 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: `sklep`
--
-- --------------------------------------------------------
--
-- Struktura tabeli dla tabeli `podzespoly`
--
CREATE TABLE `podzespoly` (
`id` int(10) UNSIGNED NOT NULL,
`typy_id` int(10) UNSIGNED NOT NULL,
`producenci_id` int(10) UNSIGNED NOT NULL,
`nazwa` text DEFAULT NULL,
`opis` text DEFAULT NULL,
`dostepnosc` tinyint(1) DEFAULT NULL,
`cena` float NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
--
-- Zrzut danych tabeli `podzespoly`
--
INSERT INTO `podzespoly` (`id`, `typy_id`, `producenci_id`, `nazwa`, `opis`, `dostepnosc`, `cena`) VALUES
(1, 1, 1, 'Core i5-7640X', 'Procesor Intel Core i5-7640X 4,2 GHz LGA 2066 Box', 1, 1000),
(2, 1, 1, 'Core i3-6300', 'Procesor Intel Core i3-6300 3,8 GHz 4MB cache s. 1151 Box', 1, 575),
(3, 1, 1, 'Core i7-6700K', 'Procesor Intel Core i7-6700K 4,0 GHz 8MB cache s. 1151 Box', 0, 1400),
(4, 1, 2, 'X6 FX-6350', 'Procesor AMD X6 FX-6350 s.AM3+ BOX', 1, 380),
(5, 2, 7, 'Savage', 'RAM HyperX 16GB (2x8GB) DDR3-1866 Dual Chanel Kit Non-ECC CL9 XMP Savage Series HX318C9SRK2/16', 1, 535),
(6, 2, 7, 'Savage', 'HyperX 4GB DDR3-1600 Non-ECC CL9 XMP Savage Series HX316C9SR/4', 0, 150),
(7, 2, 8, 'Signature', 'RAM Patriot Signature DDR3 8GB (2x4GB) 1600 CL9 PSD38G1600KH', 0, 250),
(8, 5, 9, 'GTX 1060', 'Karta graficzna Asus DUAL NVIDIA GeForce GTX 1060 3072MB GDDR5 192b PCI-E x16 v. 3.0 (1594MHz/8008MHz) OC Edition', 1, 1189),
(9, 5, 9, 'GeForce 210', 'Karta graficzna ASUS GeForce 210 1024MB 64bit PCI-E', 0, 145),
(10, 6, 6, 'WD Black', 'Dysk WD Black WD1003FZEX 1TB sATA III 64MB', 0, 315),
(11, 6, 6, 'WD Blue', 'Dysk WD Blue WD10EZEX 1TB sATA III 64MB', 1, 195),
(12, 6, 5, 'AHD650-1TU3-CBK', 'Dysk USB ADATA AHD650-1TU3-CBK 1TB 2.5\' HD650 USB 3.0 Czarny', 1, 210);
-- --------------------------------------------------------
--
-- Struktura tabeli dla tabeli `producenci`
--
CREATE TABLE `producenci` (
`id` int(10) UNSIGNED NOT NULL,
`nazwa` text DEFAULT NULL,
`opis` text DEFAULT NULL,
`priorytet` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
--
-- Zrzut danych tabeli `producenci`
--
INSERT INTO `producenci` (`id`, `nazwa`, `opis`, `priorytet`) VALUES
(1, 'Intel', NULL, NULL),
(2, 'AMD', NULL, NULL),
(5, 'ADATA', NULL, NULL),
(6, 'WD', NULL, NULL),
(7, 'Kingstone', NULL, NULL),
(8, 'Patriot', NULL, NULL),
(9, 'ASUS', NULL, NULL);
-- --------------------------------------------------------
--
-- Struktura tabeli dla tabeli `typy`
--
CREATE TABLE `typy` (
`id` int(10) UNSIGNED NOT NULL,
`kategoria` text DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
--
-- Zrzut danych tabeli `typy`
--
INSERT INTO `typy` (`id`, `kategoria`) VALUES
(1, 'Procesor'),
(2, 'RAM'),
(5, 'karta graficzna'),
(6, 'HDD');
--
-- Indeksy dla zrzutów tabel
--
--
-- Indeksy dla tabeli `podzespoly`
--
ALTER TABLE `podzespoly`
ADD PRIMARY KEY (`id`);
--
-- Indeksy dla tabeli `producenci`
--
ALTER TABLE `producenci`
ADD PRIMARY KEY (`id`);
--
-- Indeksy dla tabeli `typy`
--
ALTER TABLE `typy`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT dla zrzuconych tabel
--
--
-- AUTO_INCREMENT dla tabeli `podzespoly`
--
ALTER TABLE `podzespoly`
MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13;
--
-- AUTO_INCREMENT dla tabeli `producenci`
--
ALTER TABLE `producenci`
MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;
--
-- AUTO_INCREMENT dla tabeli `typy`
--
ALTER TABLE `typy`
MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;
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 podzespoly.nazwa, podzespoly.dostepnosc, podzespoly.cena FROM podzespoly, producenci WHERE podzespoly.producenci_id = producenci.id AND producenci.nazwa = 'ADATA';
Zapytanie 2: SELECT podzespoly.id, podzespoly.opis FROM podzespoly, producenci WHERE podzespoly.producenci_id = producenci.id AND dostepnosc = 0 AND producenci.nazwa IN ('Intel', 'AMD');
Zapytanie 3: SELECT podzespoly.opis, podzespoly.cena, producenci.nazwa FROM podzespoly, producenci WHERE podzespoly.producenci_id = producenci.id;
Zapytanie 4: ALTER TABLE producenci ADD COLUMN (priorytet INT);
Plik hurtownia.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>Hurtownia komputerowa</title>
<link rel="stylesheet" href="styl2.css">
</head>
<body>
<div id="lista">
<ul>
<li>Producenci</li>
<ol>
<li>Intel</li>
<li>AMD</li>
<li>Motorola</li>
<li>Corsair</li>
<li>ADATA</li>
<li>WD</li>
<li>Kingstone</li>
<li>Patriot</li>
<li>Asus</li>
</ol>
</ul>
</div>
<div id="formularz">
<h1>Dystrybucja sprzętu komputerowego</h1>
<form action="hurtownia.php" method="post">
Wybierz producenta<br>
<input type="number" name="id" id="id"> <button type="submit">WYŚWIETL</button>
</form>
</div>
<div id="logo">
<img src="sprzet.png" alt="Sprzedajemy komputery">
</div>
<div id="glowny">
<h2>Podzespoły wybranego producenta</h2>
<?php
// Skrypt #1
if(isset($_POST["id"])) {
$id = $_POST["id"];
$conn = new mysqli("localhost","root","","sklep");
$sql = "SELECT podzespoly.nazwa, podzespoly.dostepnosc, podzespoly.cena FROM podzespoly, producenci WHERE podzespoly.producenci_id = producenci.id AND producenci_id = $id;";
$result = $conn->query($sql);
while($row = $result -> fetch_array()) {
if($row[1] > 0) {
$dostepnosc = "DOSTĘPNY";
}
else {
$dostepnosc = "NIEDOSTĘPNY";
}
echo "<p>".$row[0]." Cena: ".$row[2]." ".$dostepnosc."</p>";
}
$conn -> close();
}
else {
echo "<p>Wybierz producenta</p>";
}
?>
</div>
<footer>
<h4>Zapraszamy od poniedziałku do soboty w godzinach 7<sup>30</sup>-16<sup>30</sup></h4>
Strony partnerów: <a href="http://adata.pl/" target="_blank">ADATA</a> <a href="http://patrio.pl/" target="_blank">Patriot</a> <a href="mailto:[email protected]">Napisz</a><br><br>
<p>Stronę wykonał: <a href="https://ee-informatyk.pl/" target="_blank">EE-Informatyk.pl</a></p>
</footer>
</body>
</html>
Plik styl2.css
body {
font-family: Helvetica;
}
#lista,
#logo {
background: #6FACE3;
color: blue;
height: 300px;
width: 30%;
float: left;
}
#formularz {
background: #6FACE3;
color: blue;
height: 300px;
width: 40%;
float: left;
}
#glowny {
background: #4C93D2;
height: 350px;
padding: 20px;
text-align: center;
clear: both;
}
footer {
background: #2D77BA;
color: white;
height: 170px;
padding: 15px;
}
a {
background: lightskyblue;
margin: 5px;
padding: 10px;
}
a:visited {
background: lightsteelblue;
}
Powiązana zawartość
Autorem arkusza jest CKE.GOV.PL