Rozwiązanie - Egzamin Praktyczny INF.03
Arkusz INF.03-02-23.06 - Czerwiec 2023 - Wersja #02
Skrypt: PHP
Baza Danych:
Powiązana zawartość
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:50 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
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
--
-- Dumping data for table `dostawcy`
--
INSERT INTO `dostawcy` (`id`, `nazwa`, `adres`) VALUES
(1, 'Papiernictwo', 'ul. Boczna 12, 23-355 Bukowina'),
(2, 'Artykuly szkolne', 'ul. Dworcowa 20, 34-565 Warszawa'),
(3, 'Wszystko dla ucznia', 'ul. Towarowa 35, 88-123 Zakopane');
-- --------------------------------------------------------
--
-- 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, cena FROM towary LIMIT 4;
Zapytanie 2: SELECT cena FROM towary WHERE nazwa = 'Ekierka';
Zapytanie 3: UPDATE dostawcy SET nazwa = "Artykuly szkolne" WHERE id = 2;
Zapytanie 4: SELECT promocja, COUNT(*) AS podsumowanie FROM towary GROUP BY promocja;
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>Hurtownia szkolna</title>
<link rel="stylesheet" href="styl.css">
</head>
<body>
<header>
<h1>Hurtownia z najlepszymi cenami</h1>
</header>
<div id="lewy">
<h2>Nasze ceny</h2>
<table>
<?php
// Skrypt #1
$sql = "SELECT nazwa, cena FROM towary LIMIT 4;";
$result = $conn->query($sql);
while($row = $result -> fetch_array()) {
echo "<tr>";
echo "<td>$row[0]</td>";
echo "<td>$row[1]</td>";
echo "</tr>";
}
?>
</table>
</div>
<div id="srodkowy">
<h2>Koszt zakupów</h2>
<form action="index.php" method="post">
<label for="towar">wybierz atrykuł: </label>
<select name="towar" id="towar">
<option value="Zeszyt 60 kartek">Zeszyt 60 kartek</option>
<option value="Zeszyt 32 kartki">Zeszyt 32 kartki</option>
<option value="Cyrkiel">Cyrkiel</option>
<option value="Linijka 30 cm">Linijka 30 cm</option>
</select><br>
<label for="liczba">liczba sztuk: </label>
<input type="number" name="liczba" id="liczba"><br>
<button type="submit" name="oblicz" id="oblicz">OBLICZ</button>
</form>
<?php
// Skrypt #2
if(isset($_POST["oblicz"])) {
$towar = $_POST["towar"];
$liczba = $_POST["liczba"];
$sql = "SELECT cena FROM towary WHERE nazwa = '$towar';";
$result = $conn->query($sql);
while($row = $result -> fetch_array()) {
$cena = $row[0] * $liczba;
}
echo "wartość zakupów: $cena";
}
?>
</div>
<div id="prawy">
<h2>Kontakt</h2>
<img src="zakupy.png" alt="hurtownia">
<p>e-mail: <a href="mailto:[email protected]">[email protected]</a></p>
</div>
<footer>
<h4>Witrynę wykonał: <a href="https://ee-informatyk.pl/" target="_blank" style="color: #fff;text-decoration: none;font-weight: bold;">EE-Informatyk.pl</a></h4>
</footer>
</body>
</html>
<?php
$conn -> close();
?>
Plik styl.css
* {
font-family: Georgia;
text-align: center;
}
header,footer {
background: #4BA3C7;
color: white;
height: 80px;
font-size: 120%;
}
footer {
clear: both;
}
#lewy,#prawy {
background: #EFEFEF;
height: 400px;
width: 25%;
float: left;
}
#srodkowy {
background: #90CAF9;
height: 400px;
width: 50%;
float: left;
}
table {
margin-left: 10px;
width: 90%;
border: 1px solid #90CAF9;
}
td {
padding: 5px;
border: 1px solid #90CAF9;
}
tr:hover {
color: #90CAF9;
}
input {
margin-top: 15px;
margin-bottom: 15px;
}
Powiązana zawartość
Autorem arkusza jest CKE.GOV.PL