Практична робота 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>

Файл: