Практична робота 2
Потрібно організувати виведення каталогу продукції. Нижчеописаний приклад ілюструє на прикладі магазину квітів в якому вигляді потрібно вивести в такому виді:
Зверніть увагу, що повинна бути реалізована зручна навігація
Тобто старінка має відображати по N товарів за раз, і, якщо потрібно переходити до наступних N, або попередніх.
Далі детально описується етапи створення сторінки із прикладу.
Дана така таблиця:
CREATE TABLE `products` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(128) NOT NULL ,
`size` VARCHAR(45) NULL ,
`weight` VARCHAR(45) NULL ,
`manufacturer` VARCHAR(45) NULL ,
`description` VARCHAR(45) NULL ,
`price` VARCHAR(45) NULL ,
`picture` VARCHAR(128) NULL ,
PRIMARY KEY (`id`) ,
UNIQUE INDEX `id_UNIQUE` (`id` ASC) );
Яка містить записи:
INSERT INTO `products` (`name`, `size`, `weight`, `manufacturer`, `description`, `price`, `picture`) VALUES ('Корзина цветов - Очаровашка', '70 см', '0,5 кг', 'Салон РУСЛАНА', 'Подойдет для дней рождений', '155 грн', 'img1.jpg');
INSERT INTO `products` (`name`, `size`, `weight`, `manufacturer`, `description`, `price`, `picture`) VALUES ('Корзина цветов - Незнакомка', '45 см', '1 кг', 'Салон ЛЮДМИЛА', 'Подойдет для романтических встреч', '102 грн', 'img2.jpg');
INSERT INTO `products` (`name`, `size`, `weight`, `manufacturer`, `description`, `price`, `picture`) VALUES ('Корзина цветов - Романтика', '120 см', '1,2 кг', 'Салон РУСЛАНА', 'Подойдет для неожиданого поздравления', '100 грн', 'img3.jpg');
INSERT INTO `products` (`name`, `size`, `weight`, `manufacturer`, `description`, `price`, `picture`) VALUES ('Корзина цветов - Влечение', '75 см', '1,5 кг', 'Салон ЛЮДМИЛА', 'Подойдет для женского дня', '220 грн', 'img4.jpg');
INSERT INTO `products` (`name`, `size`, `weight`, `manufacturer`, `description`, `price`, `picture`) VALUES ('Корзина цветов - Страсть', '62 см', '0,8 кг', 'Салон ЛЮДМИЛА', 'Подойдет для неординарных людей', '256 грн', 'img5.jpg');
INSERT INTO `labu`.`products` (`name`, `size`, `weight`, `manufacturer`, `description`, `price`, `picture`) VALUES ('Корзина цветов - Интрига', '65 см', '0,6 кг', 'Салон РУСЛАНА', 'Подойдет для ежедневного подарка', '280 грн', 'img6.jpg');
INSERT INTO `products` (`name`, `size`, `weight`, `manufacturer`, `description`, `price`, `picture`) VALUES ('Корзина цветов - Щедрость', '105 см', '1,3 кг', 'Салон ЛЮДМИЛА', 'Подойдет для деловых отношений', '130 грн', 'img7.jpg');
INSERT INTO `labu`.`products` (`name`, `size`, `weight`, `manufacturer`, `description`, `price`, `picture`) VALUES ('Корзина цветов - Доброта', '45 см', '1,1 кг', 'Салон РУСЛАНА', 'Подойдет для легкого заигрования', '80 грн', 'img8.jpg');
INSERT INTO `products` (`name`, `size`, `weight`, `manufacturer`, `description`, `price`, `picture`) VALUES ('Корзина цветов - Наслаждение', '90 см', '1,7 кг', 'Салон ЛЮДМИЛА', 'Подойдет для жены', '200 грн', 'img9.jpg');
Візуалізація даної таблиці може бути описана даним кодом
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Каталог продукції</title>
</head>
<body>
<?php
$img_dir="pics/";
$img_w=220;
$pg=5;
if (isset($_GET['p'])) $p=$_GET['p']; else $p=0;
echo "<p><h2 align=center>Каталог <b>Живі квіти</b></h2></p>";
$db = mysql_connect("localhost", "root", "");
mysql_select_db("labu");
mysql_query ("set names 'utf8'") ;
echo "<table style=\"width: 100%\">";
$res = mysql_query("select * from `products` order by `id` limit ".($p*$pg).",".($p*$pg+$pg).";");
while($row = mysql_fetch_array($res))
{
echo "<tr><td><img width=\"".$img_w."\" src=\"".$img_dir.$row['picture']."\"></td><td><table style=\"width: 100%\">";
echo "<tr style=\"background-color: #E0E0E0;\"><td><b>Назва</b></td><td>".$row['name']."</td></tr>";
echo "<tr><td><b>Опис</b></td><td>".$row['description']."</td></tr>";
echo "<tr style=\"background-color: #E0E0E0;\"><td><b>Виробник</b></td><td>".$row['manufacturer']."</td></tr>";
echo "<tr><td><b>Розмір</b></td><td>".$row['size']."</td></tr>";
echo "<tr style=\"background-color: #E0E0E0;\"><td><b>Вага</b></td><td>".$row['weight']."</td></tr>";
echo "<tr><td><b>Ціна</b></td><td>".$row['price']."</td></tr></table></td></tr>";
}
echo "</table>";
$res = mysql_query("select count(*) as 'cnt' from `products`;");
$row = mysql_fetch_array($res);
$cnt=$row['cnt'];
echo "<p align=center>Товарів в каталозі <b>".$cnt."</b><br>";
if (!($p==0))
echo "<a href=\"products.php?p=".($p-1)."\">Назад</a> - ";
if (($cnt/(++$p*$pg))>1)
echo "<a href=\"products.php?p=".($p--)."\">Далі</a></p>";
mysql_close($db);
?>
</body>
</html>