От автора: бабушка-соседка, узнав, что я программирую потихоньку, попросила разработать для ее смартфона (подарили внуки) приложение, которое умело бы торговаться за нее на базаре. Зимой она частенько продает различные солености из овощей, выращенных на собственной даче. В общем, загнала меня бабуля в тупик. Поэтом я культурно «съехал», сказав, что разрабатываю PHP скрипты магазина.
Обманывать нехорошо!
Знаю, что нельзя обманывать стариков. Но от этой продвинутой старушки лучше держаться подальше. Ее даже в «ЖЭКе» боятся, а там еще те «прохвосты». В общем, лучше я расскажу вам, как создать какой-нибудь полезный функционал для торгового ресурса. Как говорится, чтоб ложь была «в тему» :).
Сегодня я покажу, как создать модуль для сбора и вывода отзыва покупателей о товарах, расставленных на полках интернет-магазина. Все мнения пользователей будут записываться в одну таблицу. Для идентификации конкретного продукта используем отдельное поле.
Разрабатываемый модуль рассчитан на традиционную структуру построения магазинов. В ней под каждый товар из ассортимента отводится отдельная веб-страница. Это важно, поскольку остальные PHP скрипты для интернет магазина также будут придерживаться данной структуры.
Форма
Создайте новый файл и назовите его index.php. В реальных проектах имя файла будет другое. Но нам важно, чтобы сначала отображалась форма комментирования. Вставьте в созданный файл следующий код HTML:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<form name="otziv" action="enter_comment.php" method="post"> <p> <label>Укажите ваше имя:</label> <input type="text" name="user_name" /> </p> <p> <label>Поделитесь своим мнением о товаре:</label> <br/> <textarea name=" otziv_text " cols="40" rows="20"></textarea> </p> <p> <input type="hidden" name="id_tovar" value="15" /> <input type="submit" value="Опубликовать отзыв" /> </p> </form> |
Как всегда, стилевые решения я не привожу – оформите по своему вкусу. Вот как форма выглядит в браузере:
Создаем таблицу и сохраняем отзыв
Для хранения введенных через форму комментариев покупателей создадим таблицу, состоящую из 4 столбцов. Один из них будет хранить в себе идентификатор товара, который прописан в скрытом поле id_tovar. Значение идентификатора задано в атрибуте value.
Вот структура таблицы, которую я создал в phpMyAdmin и куда будут записываться все комментарии:
Теперь займемся PHP скриптом для обработки отзывов о магазине. Вот его код:
1 2 3 4 5 6 7 |
<?php $user = htmlspecialchars($_POST["user_name"]); $otziv= htmlspecialchars($_POST["otziv_text"]); $tovar = $_POST["id_tovar"]; $mysqli = new mysqli('localhost', 'root', '', 'db1'); $mysqli->query("INSERT INTO `tovar_otziv` (`user_name`,`otziv_text`,`id_tovar`) VALUES ('$user','$otziv','$tovar')"); ?> |
Выводим мнения покупателей
Для вывода отзывов можно создать отдельную страницу, но лучше все данные о товаре отображать в одном разделе. Так как при реализации данного модуля мы опираемся на определенную структуру. Об этом сказано выше. После добавления комментариев нам нужно вернуться на страницу с формой. В предыдущем файле добавьте строку редиректа:
1 2 3 |
<?php header("Location: ".$_SERVER["HTTP_REFERER"]); ?> |
Теперь возвращаемся в index.php и под разметкой формы вставляем следующий код. С его помощью мы осуществляем выборку данных и выводим все мнения покупателей о товаре:
1 2 3 4 5 6 7 8 9 |
<?php $tovar = 15; $m2 = new mysqli('localhost', 'root', '', 'db1');// Подключается к базе данных $res = $m2->query("SELECT user_name,otziv_text FROM `tovar_otziv` WHERE `id_tovar`='$tovar'"); while ($r = $res->fetch_assoc()) { echo "<b>".$r['user_name']."</b><br/>"; echo $r['otziv_text']."<br/>"; } ?> |
Кстати, с помощью кода примеров этого материала легко создать скрипт корзины для интернет- магазина на PHP. Но это уже тема одной из следующих статей. А пока посмотрим, как работает разработанный нами модуль.
После добавления отзыва через форму в таблицу происходит редирект (перенаправление) пользователя на основную страницу. После чего делам выборку и выводим все мнения о товаре с указанным идентификатором.
P.S. Как старушка поживает? Говорят, на курсы программирования записалась! Теперь мне точно «курдюк-хана». Или переезжать надо, или всю жизнь прятаться от нее придется :).
Комментарии (1)