Практична робота №3
Метою даної практичної роботи буде створення інтерфейсу на додання товарів до каталогу. Отже розділимо процес на дві частини. Першою частиною буде форма для вводу інформації, а друга – безпосередньо буде завантажувати малюнок на сервер та додавати запис в БД про новий товар.
Форма для вводу може виглядати так:
.html код який її створює, виглядає таким чином:
<!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>
<p><h2 align=center>Додати новий товар</h2></p><br />
<table style="width: 100%;font-size: 20px">
<tr><td align="right" style="vertical-align: top">Імя товару: <br />
Розмір: <br />Вага: <br />Виробник: <br />
Опис: <br />Ціна: <br />Малюнок: </td>
<td><form name="add_prod" method="post" action="compeate_add.php" enctype="multipart/form-data">
<input name="name_db" type="text" style="width: 450px" /><br/>
<input name="size_db" type="text" style="width: 450px" /><br/>
<input name="weight_db" type="text" style="width: 450px" /><br/>
<input name="manufacturer_db" type="text" style="width: 450px" /><br/>
<input name="description_db" type="text" style="width: 450px" /><br/>
<input name="price_db" type="text" style="width: 450px" /><br />
<input name="picture_db" type="file" style="width: 450px" /><br /><br />
<input name="dodatu" type="submit" value="Додати" style="width: 450px" />
</form></td></tr></table>
</body>
</html>
Тепер потрібно для цієї форми написати обробник, який буде завантажувати малюнок на сервер, додавати в БД новий рядок, та контролювати і виводити помилки (якщо вони мали місце).
Також було б не зайвим в кінці стрінки розмістити два посилання, перше для додання іще однієї одиніці товару, друге для переходу в каталог товарів, щоб користувач міг переглянути тільки що додані товари.
Один з можливих варіантів реалізації даного обробника:
<!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>
<p>
<?php
$uploaddir="pics/";
$db = mysql_connect("localhost", "root", "");
mysql_select_db("labu");
mysql_query ("set names 'utf8'") ;
$name_db=$_POST['name_db'];
$size_db=$_POST['size_db'];
$weight_db=$_POST['weight_db'];
$manufacturer_db=$_POST['manufacturer_db'];
$description_db=$_POST['description_db'];
$price_db=$_POST['price_db'];
$dest=$uploaddir.$_FILES['picture_db']['name'];
$img_db=$_FILES['picture_db']['name'];
echo "<h2>Малюнок</h2> ".$dest;
if (move_uploaded_file($_FILES['picture_db']['tmp_name'],$dest))
{echo " <b>успішно</b> завантажений <br />";}
else
{echo " <b>помилка</b> при завантаженні файлу.<br />";}
echo "<br /><h2>Товар</h2> ".$name_db."/".$manufacturer_db."/".$description_db."/".$size_db."/".$weight_db."/".$price_db."<br />";
$res = mysql_query("insert into `products` values(NULL,'".$name_db."','".$size_db."','".$weight_db."','".$manufacturer_db."','".$description_db."','".$price_db."','".$img_db."');");
if ($res)
{echo "<b>успішно</b> доданий.<br /><br />";}
else
{echo "<b>помилка</b> при доданні товару.<br /><br />";}
mysql_close($db);
?>
</p>
<p><a href="products_add.html">Додати наступний</a> - <a href="products.php">Переглянути каталог</a></p>
</body>
</html>
Після закінчення роботи, обробник, при успішних діях, виведе твку сторінку:
Вигляд новоствореного товару, в каталозі