Создайте веб-приложение продуктового магазина, используя PHP с MySQL
В этой статье мы собираемся создать веб-приложение продуктового магазина, используя PHP с MySQL. В этом приложении мы можем добавлять продукты по их названию, количеству, статусу (в ожидании, куплено, недоступно) и дате. Мы можем просматривать, удалять и обновлять эти элементы. Будет функция фильтрации по дате, где мы сможем просматривать продукты в соответствии с датами.
Предварительные требования: сервер XAMPP, базовые понятия HTML, CSS, Bootstrap, PHP и MySQL.
Мы выполним следующие шаги, чтобы создать это приложение.
Шаг 1. Откройте панель управления XAMPP и запустите службы Apache и MySQL. В папке XAMPP перейдите в папку htdocs и создайте папку с именем project1 . Мы будем хранить все файлы в папке project1 . Внутри этой папки будет пять файлов ( add.php , connect.php , delete.php , index.php , update.php ) и одна папка с именем css, внутри которой будет файл с именем style.css .
Шаг 2: Перейдите в localhost/phpMyAdmin и создайте базу данных с именем productdb . Под этим создайте таблицу с именем producttb с 5 столбцами. Столбцы: Id (первичный ключ), Item_name, Item_Quantity, Item_status и Date. Для столбца Id должен быть включен режим автоинкремента. Наконец, структура таблицы должна выглядеть так, как показано на данном изображении.

Шаг 3: Откройте редактор по вашему выбору. Создайте файл с именем connect.php и закодируйте следующие строки.
connect.php
<?php $con=mysqli_connect("localhost","root","","grocerydb"); if(!$con) { die("cannot connect to server"); } ?> |
Эта страница создана для подключения нашей PHP-страницы к базе данных «grocerydb». После подключения к этой базе данных объект подключения возвращается в переменную $con. Если соединение не установлено, появится сообщение «невозможно подключиться к серверу».
Шаг 4: Создайте еще один файл с именем add.php и введите следующие строки.
add.php
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Add List</title> <link rel="stylesheet" href= <link rel="stylesheet" href="css/style.css"></head> <body> <div class="container mt-5"> <h1>Add Grocery List</h1> <form action="add.php" method="POST"> <div class="form-group"> <label>Item name</label> <input type="text" class="form-control" placeholder="Item name" name="iname" /> </div> <div class="form-group"> <label>Item quantity</label> <input type="text" class="form-control" placeholder="Item quantity" name="iqty" /> </div> <div class="form-group"> <label>Item status</label> <select class="form-control" name="istatus"> <option value="0"> PENDING </option> <option value="1"> BOUGHT </option> <option value="2"> NOT AVAILABLE </option> </select> </div> <div class="form-group"> <label>Date</label> <input type="date" class="form-control" placeholder="Date" name="idate"> </div> <div class="form-group"> <input type="submit" value="Add" class="btn btn-danger" name="btn"> </div> </form> </div> <?php if(isset($_POST["btn"])) { include("connect.php"); $item_name=$_POST["iname"]; $item_qty=$_POST["iqty"]; $item_status=$_POST["istatus"]; $date=$_POST["idate"]; $q="insert into grocerytb(Item_name, Item_Quantity,Item_status,Date) values("$item_name",$item_qty, "$item_status","$date")"; mysqli_query($con,$q); header("location:index.php"); } // if(!mysqli_query($con,$q)) // { // echo "Value Not Inserted"; // } // else // { // echo "Value Inserted"; // } ?></body> </html> |
Эта страница предназначена для вставки данных продуктовых товаров из HTML-формы в таблицу «grocerytb» в базе данных «grocerydb». HTML-форма содержит значения «Имя товара», «Количество товара», «Статус товара» и «Дата», которые должны быть введены пользователем. Мы установили значение параметра как 0, 1 и 2 для «Ожидание», «Куплено» и «Недоступно» (для статуса товара) соответственно. Когда кнопка нажата, мы подключаем файл «connect.php», чтобы связать страницу с базой данных. Затем мы извлекаем все данные, введенные пользователем, и вставляем их в таблицу «grocerytb». Если значения успешно введены в таблицу, страница переместится на «index.php», что позволит пользователю просмотреть элементы, введенные до сих пор (или элементы, которые находятся в таблице на данный момент). Создайте файл «style.css» внутри папки css и напишите следующий код.
style.css
@import url( body { font-family: "Poppins", sans-serif; font-weight: 300; background-color: beige;} h1, h2, h3, h4, h5 { font-family: "Poppins", sans-serif; font-weight: 700;} |
Файл «add.php» должен выглядеть так, как показано на данном изображении.

Шаг 5: Создайте еще один файл с именем index.php и введите следующие строки.
index.php
<?php include("connect.php"); if (isset($_POST["btn"])) { $date=$_POST["idate"]; $q="select * from grocerytb where Date="$date""; $query=mysqli_query($con,$q); } else { $q= "select * from grocerytb"; $query=mysqli_query($con,$q); }?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>View List</title> <link rel="stylesheet" href= <link rel="stylesheet" href="css/style.css"></head> <body> <div class="container mt-5"> <!-- top --> <div class="row"> <div class="col-lg-8"> <h1>View Grocery List</h1> <a href="add.php">Add Item</a> </div> <div class="col-lg-4"> <div class="row"> <div class="col-lg-8"> <!-- Date Filtering--> <form method="post" action=""> <input type="date" class="form-control" name="idate"> <div class="col-lg-4" method="post"> <input type="submit" class="btn btn-danger float-right" name="btn" value="filter"> </div> </form> </div> </div> </div> </div> <!-- Grocery Cards --> <div class="row mt-4"> <?php while ($qq=mysqli_fetch_array($query)) { ?> <div class="col-lg-4"> <div class="card"> <div class="card-body"> <h5 class="card-title"> <?php echo $qq["Item_name"]; ?> </h5> <h6 class="card-subtitle mb-2 text-muted"> <?php echo $qq["Item_Quantity"]; ?> </h6> <?php if($qq["Item_status"] == 0) { ?> <p class="text-info">PENDING</p> <?php } else if($qq["Item_status"] == 1) { ?> <p class="text-success">BOUGHT</p> <?php } else { ?> <p class="text-danger">NOT AVAILABLE</p> <?php } ?> <a href= "delete.php?id=<?php echo $qq["Id"]; ?>" class="card-link"> Delete </a> <a href= "update.php?id=<?php echo $qq["Id"]; ?>" class="card-link"> Update </a> </div> </div><br> </div> <?php } ?> </div> </div></body> </html> |