От автора: недавно поспорил со знакомым программистом. Я ему «талдычу», что не все товары можно продавать через интернет. Например, горячие пирожки или свежее молоко. Потому что выпечка к моменту приобретения остынет, а молоко скиснет. Но разработчик настаивает на своем: мол, главное правильный магазин «построить». Вот так в споре и родилась тема этой статьи – создание магазина PHP.
Немного «опалим» крылья
Для тех читателей, который ожидают, что в одной статье можно описать весь процесс разработки интернет-магазина, спешу разочаровать: это просто невозможно. Настоящий (полноценный) коммерческий ресурс включает в себя множество модулей, для рассмотрения реализации каждого из которых нужно посвятить отдельный материал.
Тем не менее, я постараюсь показать на практическом примере основные принципы создания динамического ресурса с уклоном на коммерческую специализацию. Сегодня мы рассмотрим, как создать слайдер товаров. При этом загрузка всех данных о товаре будет происходить из базы данных.
Данный функционал является основным средством для отображения ассортимента товаров, поэтому создание интернет магазина на языке PHP немыслимо без его «присутствия». Кроме этого рассматриваемый сегодня пример иллюстрирует на практике принцип реализации взаимосвязи MySQL и PHP. Именно тут чаще всего «оступаются» начинающие программисты.
Что будем создавать
Мы создадим с вами слайдер товаров для фруктовой интернет-лавки. Конечно, я сомневаюсь в успешности такого проекта, но нас интересует другая сторона процесса – реализация. При наведении на изображение товара выводится его краткое описание. А при нажатии по «фрукту» мышей его изображение увеличивается.
Сразу попрошу дорогих профессионалов не судить строго «топорность» данного примера. Главное – это познакомить новичков с принципами создания интернет-магазина. На основе приведенного примера можно реализовать и другие составные части ресурса: корзину, динамичность сайта, создание формы обратной связи на PHP и т.п.
Код примера с пояснениями
Всего в нашем проекте будет 4 файла и папка, в которой мы сохраним изображения товаров.
Основным файлом является index.php. В нем все части проекта соединяются между собой с помощью функций include и require.
1 2 3 4 5 |
<?php header('Content-Type: text/html; charset=utf-8'); require("funct.php"); include("gallery.php"); ?> |
В файле funct.php находится определение пользовательской функции tovar(). Она отвечает за соединение с БД, а также за выгрузку из таблицы tovari описания фруктов, которыми торгует наш интернет-магазин.
1 2 3 4 5 6 7 8 9 10 |
<?php function tovar($value) { $con_str= mysqli_connect('localhost', 'root', '', 'market'); $result_q= mysqli_query($con_str, "SELECT opis_tovar FROM `tovari` WHERE name_tovar='$value'"); while ($res= mysqli_fetch_array($result_q)) { echo $res['opis_tovar']; } } ?> |
Пояснение разметки
Вся разметка слайдера находится в gallery.php. В значении каждого атрибута title тега выгружается выборка из БД (описание товара), которая осуществляется с помощью tovar(). В качестве аргумента функция принимает название фрукта (переменная $value). Она используется в качестве условия для выборки данных из таблицы tovari.
Код файла:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<html> <head> <title>Market</title> <link href="style.css" rel="stylesheet"> </head> <body> <div id="slider"> <img src="im/orange.jpg" tabindex="0" border="3" title="<?php tovar("orange")?>"/> <img src="im/bananas.jpg" tabindex="0" border="3" title="<?php tovar("bananas")?>"/> <img src="im/apple.jpg" tabindex="0" border="3" title="<?php tovar("apple")?>"/> <img src="im/pears.jpg" tabindex="0" border="3" title="<?php tovar("pears")?>"/> </div> </body> </html> |
Дальнейшее пошаговое создание интернет магазина продолжим с описания таблицы в БД, откуда мы «черпаем» описание фруктов. На следующем снимке приведены структура таблицы и типы данных столбцов. Обратите внимание, что для столбца opis_tovar используется тип данных text, а не char или varchar.
Немного о CSS
При рассмотрении данного примера мы уделили внимание использованию PHP и MySQL при создании функционала для магазина. В рамках этой статьи я не буду вдаваться в подробности описания принципа работы галереи. Хочу только отметить, что для этого применяются только свойства CSS. Все файлы проекта можно скачать одним архивом здесь.
Желательно было бы рассмотреть создание корзины для интернет магазина на PHP, но это уже будет слишком. Надеюсь, что наша лавка сможет быстро реализовывать свои товары, иначе вместо свежих фруктов придется торговать сухофруктами :). До новый встреч!