/SlashHuman","проект МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное бюджетное образовательное учреждение высшего образования «Алтайский государственный университет» Международный институт экономики, менеджмента и информационных систем Кафедра международной экономики, математических методов и бизнес-информатики КУРСОВАЯ РАБОТА на тему Разработка веб-приложения для управления товарами с использованием PHP, SQL Server и форматов JSON/XML Выполнил обучающийся  2 курса, группы 2.409-1  Исаев Э.Н _____________________ (подпись) Научный руководитель: Доцент кафедры цифровых Технологи и бизнес аналитики МИЭМИС АлтГУ А.Ю. Юдинцев «_16__» ___06_____2026__ г. Оценка_____________ ____________________ (подпись)   Барнаул 2026 г. Содержание Введение Создание структуры БД -- Таблица категорий CREATE TABLE Categories ( Id INT PRIMARY KEY IDENTITY(1,1), Name NVARCHAR(100) NOT NULL ); -- Таблица товаров CREATE TABLE Products ( Id INT PRIMARY KEY IDENTITY(1,1), Name NVARCHAR(200) NOT NULL, Price DECIMAL(10,2) NOT NULL, Quantity INT NOT NULL, CategoryId INT FOREIGN KEY REFERENCES Categories(Id) ); -- Заполняем категории INSERT INTO Categories (Name) VALUES ('Электроника'), ('Одежда'), ('Книги'), ('Игрушки'); -- Заполняем товары (50 штук - достаточно) INSERT INTO Products (Name, Price, Quantity, CategoryId) VALUES ('Смартфон', 15000, 25, 1), ('Ноутбук', 45000, 10, 1), ('Наушники', 2000, 50, 1), ('Футболка', 800, 100, 2), ('Джинсы', 2500, 40, 2), ('Куртка', 5000, 15, 2), ('Python учебник', 1200, 30, 3), ('JavaScript книга', 1500, 25, 3), ('Конструктор Lego', 3500, 20, 4), ('Мяч', 500, 60, 4); -- Добавьте еще 40 товаров через копирование (для простоты повторяем) INSERT INTO Products (Name, Price, Quantity, CategoryId) SELECT Name + ' ' + CAST(ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) AS NVARCHAR), Price, Quantity, CategoryId FROM Products GO 4 -- Это повторит вставку 4 раза, получится ~50 записей Создание Web-приложения Первый файл setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { die(\"Ошибка подключения: \" . $e->getMessage()); } ?> Второй файл query(\"SELECT p.*, c.Name as CategoryName FROM Products p LEFT JOIN Categories c ON p.CategoryId = c.Id\"); $products = $stmt->fetchAll(PDO::FETCH_ASSOC); echo json_encode($products); break; case 'get_categories': // Возвращаем категории $stmt = $pdo->query(\"SELECT * FROM Categories\"); $categories = $stmt->fetchAll(PDO::FETCH_ASSOC); echo json_encode($categories); break; case 'add_product': // Добавление нового товара (данные приходят в JSON) $data = json_decode(file_get_contents('php://input'), true); $sql = \"INSERT INTO Products (Name, Price, Quantity, CategoryId) VALUES (?, ?, ?, ?)\"; $stmt = $pdo->prepare($sql); $stmt->execute([ $data['name'], $data['price'], $data['quantity'], $data['categoryId'] ]); echo json_encode(['success' => true, 'id' => $pdo->lastInsertId()]); break; default: echo json_encode(['error' => 'Неизвестное действие']); } ?> Третий файл Моя база данных на somee.com

Работа с базой данных на somee.com

Добавить товар

IDНазваниеЦенаКол-воКатегория
Нажмите \"Загрузить\"

Данные в формате XML:

 
/SlashHuman","готовый проект","проект нейросетью"],"url":"https://konspektgpt.io/proekt/razrabotka-veb-prilozheniya-dlya-upravleniya-tovarami-s-ispolzovaniem-php-sql-server-i-89382/","mainEntityOfPage":{"@type":"WebPage","@id":"https://konspektgpt.io/proekt/razrabotka-veb-prilozheniya-dlya-upravleniya-tovarami-s-ispolzovaniem-php-sql-server-i-89382/"},"datePublished":"2026-06-18T20:25:35+03:00","dateModified":"2026-09-01T04:21:04+03:00","author":{"@type":"Organization","name":"КонспектGPT"},"publisher":{"@type":"Organization","name":"КонспектGPT","url":"https://konspektgpt.io","logo":{"@type":"ImageObject","url":"https://konspektgpt.io/favicon.svg"}}}
КонспектGPT КонспектGPT
Проект

Разработка веб-приложения для управления товарами с использованием PHP, SQL Server и форматов JSON/XML

15 стр.18 июня 2026

Цель проекта

Создать функциональное веб-приложение, позволяющее управлять товарами через базу данных SQL Server с использованием PHP и обеспечивающее обмен данными в форматах JSON и XML.

Ключевая идея

Проект направлен на разработку системы управления товарами, включающей создание структуры базы данных с таблицами категорий и товаров, реализацию API на PHP для взаимодействия с базой данных и создание веб-интерфейса для отображения, добавления и обновления товаров. Особое внимание уделено работе с форматами JSON и XML для обмена данными, что обеспечивает гибкость и совместимость приложения.

Наименование образовательного учреждения
ПРОЕКТ
на тему
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное бюджетное образовательное учреждение высшего образования «Алтайский государственный университет» Международный институт экономики, менеджмента и информационных систем Кафедра международной экономики, математических методов и бизнес-информатики КУРСОВАЯ РАБОТА на тему Разработка веб-приложения для управления товарами с использованием PHP, SQL Server и форматов JSON/XML Выполнил обучающийся  2 курса, группы 2.409-1  Исаев Э.Н _____________________ (подпись) Научный руководитель: Доцент кафедры цифровых Технологи и бизнес аналитики МИЭМИС АлтГУ А.Ю. Юдинцев «_16__» ___06_____2026__ г. Оценка_____________ ____________________ (подпись)   Барнаул 2026 г. Содержание Введение Создание структуры БД -- Таблица категорий CREATE TABLE Categories ( Id INT PRIMARY KEY IDENTITY(1,1), Name NVARCHAR(100) NOT NULL ); -- Таблица товаров CREATE TABLE Products ( Id INT PRIMARY KEY IDENTITY(1,1), Name NVARCHAR(200) NOT NULL, Price DECIMAL(10,2) NOT NULL, Quantity INT NOT NULL, CategoryId INT FOREIGN KEY REFERENCES Categories(Id) ); -- Заполняем категории INSERT INTO Categories (Name) VALUES ('Электроника'), ('Одежда'), ('Книги'), ('Игрушки'); -- Заполняем товары (50 штук - достаточно) INSERT INTO Products (Name, Price, Quantity, CategoryId) VALUES ('Смартфон', 15000, 25, 1), ('Ноутбук', 45000, 10, 1), ('Наушники', 2000, 50, 1), ('Футболка', 800, 100, 2), ('Джинсы', 2500, 40, 2), ('Куртка', 5000, 15, 2), ('Python учебник', 1200, 30, 3), ('JavaScript книга', 1500, 25, 3), ('Конструктор Lego', 3500, 20, 4), ('Мяч', 500, 60, 4); -- Добавьте еще 40 товаров через копирование (для простоты повторяем) INSERT INTO Products (Name, Price, Quantity, CategoryId) SELECT Name + ' ' + CAST(ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) AS NVARCHAR), Price, Quantity, CategoryId FROM Products GO 4 -- Это повторит вставку 4 раза, получится ~50 записей Создание Web-приложения Первый файл <?php // config.php - простейшее подключение $host = "SQL5003.site4now.net"; // Ваш сервер из somee.com $dbname = "ваша_база"; // Имя вашей БД $user = "ваш_логин"; // Ваш логин $pass = "ваш_пароль"; // Ваш пароль try { $pdo = new PDO("sqlsrv:Server=$host;Database=$dbname", $user, $pass); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { die("Ошибка подключения: " . $e->getMessage()); } ?> Второй файл <?php // api.php - API для работы с БД header('Content-Type: application/json'); header('Access-Control-Allow-Origin: *'); // Разрешаем запросы с любых страниц require_once 'config.php'; // Получаем, что запросил пользователь $action = isset($_GET['action']) ? $_GET['action'] : ''; switch($action) { case 'get_products': // Возвращаем все товары в JSON $stmt = $pdo->query("SELECT p.*, c.Name as CategoryName FROM Products p LEFT JOIN Categories c ON p.CategoryId = c.Id"); $products = $stmt->fetchAll(PDO::FETCH_ASSOC); echo json_encode($products); break; case 'get_categories': // Возвращаем категории $stmt = $pdo->query("SELECT * FROM Categories"); $categories = $stmt->fetchAll(PDO::FETCH_ASSOC); echo json_encode($categories); break; case 'add_product': // Добавление нового товара (данные приходят в JSON) $data = json_decode(file_get_contents('php://input'), true); $sql = "INSERT INTO Products (Name, Price, Quantity, CategoryId) VALUES (?, ?, ?, ?)"; $stmt = $pdo->prepare($sql); $stmt->execute([ $data['name'], $data['price'], $data['quantity'], $data['categoryId'] ]); echo json_encode(['success' => true, 'id' => $pdo->lastInsertId()]); break; default: echo json_encode(['error' => 'Неизвестное действие']); } ?> Третий файл <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Моя база данных на somee.com</title> <style> body { font-family: Arial; margin: 20px; } table { border-collapse: collapse; width: 100%; margin-top: 20px; } th, td { border: 1px solid #ddd; padding: 8px; text-align: left; } th { background-color: #4CAF50; color: white; } form { margin: 20px 0; padding: 20px; background: #f0f0f0; } input, button { margin: 5px; padding: 8px; } button { background: #4CAF50; color: white; border: none; cursor: pointer; } .xml-data { margin-top: 20px; padding: 10px; background: #ffe; display: none; } </style> </head> <body> <h1>Работа с базой данных на somee.com</h1> <!-- Форма для добавления товара --> <form id="addForm"> <h3>Добавить товар</h3> <input type="text" id="name" placeholder="Название" required> <input type="number" id="price" placeholder="Цена" required> <input type="number" id="quantity" placeholder="Количество" required> <select id="categoryId"> <option value="1">Электроника</option> <option value="2">Одежда</option> <option value="3">Книги</option> <option value="4">Игрушки</option> </select> <button type="submit">Добавить</button> </form> <!-- Кнопки для разных форматов данных --> <button onclick="loadProductsJSON()">Загрузить в JSON</button> <button onclick="loadProductsXML()">Загрузить в XML</button> <button onclick="refreshTable()">Обновить таблицу</button> <!-- Таблица для отображения данных --> <table id="productsTable"> <thead> <tr><th>ID</th><th>Название</th><th>Цена</th><th>Кол-во</th><th>Категория</th></tr> </thead> <tbody id="tableBody"> <tr><td colspan="5">Нажмите "Загрузить"</td></tr> </tbody> </table> <!-- Блок для отображения XML --> <div id="xmlBlock" class="xml-data"> <h3>Данные в формате XML:</h3> <pre id="xmlContent"></pre> </div> <script> // Асинхронная загрузка данных в формате JSON (основной формат) async function loadProductsJSON() { try { const response = await fetch('api.php?action=get_products'); const products = await response.json(); displayTable(products); document.getElementById('xmlBlock').style.display = 'none'; console.log('Данные загружены в JSON, количество записей:', products.length); } catch(error) { console.error('Ошибка:', error); alert('Ошибка загрузки данных'); } } // Функция для преобразования JSON в XML (демонстрация работы с XML) async function loadProductsXML() { try { const response = await fetch('api.php?action=get_products'); const products = await response.json(); // Преобразуем JSON в XML вручную (простой пример) let xml = '<?xml version="1.0" encoding="UTF-8"?>\n'; xml += '<products>\n'; products.forEach(product => { xml += ' <product>\n'; xml += ` <id>${product.Id}</id>\n`; xml += ` <name>${escapeXml(product.Name)}</name>\n`; xml += ` <price>${product.Price}</price>\n`; xml += ` <quantity>${product.Quantity}</quantity>\n`; xml += ` <category>${escapeXml(product.CategoryName)}</category>\n`; xml += ' </product>\n'; }); xml += '</products>'; // Показываем XML document.getElementById('xmlContent').textContent = xml; document.getElementById('xmlBlock').style.display = 'block'; // И таблицу тоже покажем displayTable(products); } catch(error) { console.error('Ошибка:', error); } } // Функция для отображения таблицы function displayTable(products) { const tbody = document.getElementById('tableBody'); tbody.innerHTML = ''; if(products.length === 0) { tbody.innerHTML = '<tr><td colspan="5">Нет данных</td></tr>'; return; } products.forEach(product => { const row = tbody.insertRow(); row.insertCell(0).textContent = product.Id; row.insertCell(1).textContent = product.Name; row.insertCell(2).textContent = product.Price + ' руб.'; row.insertCell(3).textContent = product.Quantity; row.insertCell(4).textContent = product.CategoryName || 'Без категории'; }); } // Добавление товара через POST запрос (асинхронно) document.getElementById('addForm').addEventListener('submit', async (e) => { e.preventDefault(); const newProduct = { name: document.getElementById('name').value, price: parseFloat(document.getElementById('price').value), quantity: parseInt(document.getElementById('quantity').value), categoryId: parseInt(document.getElementById('categoryId').value) }; try { const response = await fetch('api.php?action=add_product', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(newProduct) }); const result = await response.json(); if(result.success) { alert('Товар успешно добавлен!'); document.getElementById('addForm').reset(); loadProductsJSON(); // Обновляем таблицу } else { alert('Ошибка добавления'); } } catch(error) { console.error('Ошибка:', error); alert('Ошибка при добавлении'); } }); // Обновление таблицы function refreshTable() { loadProductsJSON(); } // Защита от XSS при выводе в XML function escapeXml(unsafe) { if(!unsafe) return ''; return unsafe.replace(/[<>&'"]/g, function(c) { switch(c) { case '<': return '&lt;'; case '>': return '&gt;'; case '&': return '&amp;'; case '\'': return '&apos;'; case '"': return '&quot;'; } return c; }); } // Автоматическая загрузка при открытии страницы loadProductsJSON(); </script> </body> </html> /SlashHuman
Содержание
1.
Введение
3
2.
Анализ требований и проектирование базы данных
4
3.
Разработка API на PHP для взаимодействия с базой данных
6
4.
Обеспечение обмена данными в форматах JSON и XML
8
5.
Разработка веб-интерфейса для управления товарами
10
6.
Заключение
12
7.
Список литературы
13

Нужен такой же проект?

КонспектGPT напишет проект на любую тему за 10–30 минут: оригинальность больше 90%, оформление по ГОСТу, реальные источники, обход ИИ-детекторов. Просто введи тему — нейросеть сама подберёт структуру, наполнит главы и оформит библиографию.

Создать такую же работу

Частые вопросы

Могу ли я скачать эту работу целиком?

Нет, полный текст этой работы доступен только её автору. Но вы можете за пару минут сгенерировать свой проект на эту или любую другую тему — с уникальной формулировкой, своей структурой и по вашим требованиям к объёму.

Какая оригинальность у сгенерированных работ?

В среднем 85–95% по Антиплагиат.ру. Каждая работа генерируется с нуля под вашу тему, а не собирается из готовых шаблонов. Дополнительно доступны режимы «обход ИИ-детекта» (GPTZero, ZeroGPT) и «уникализация» под конкретную систему антиплагиата.

Сколько это стоит?

Бесплатно доступно только создание содержания работы — структуры с главами и подпунктами, которую можно отредактировать под свои требования. Саму работу можно сгенерировать в PRO-версии за 289 ₽: полный текст, оформление по ГОСТу, список литературы и экспорт в Word. Это в десятки раз дешевле заказа у автора на бирже.

В каком формате доступна работа после генерации?

Готовая работа скачивается в формате Word (DOCX) с уже применённым оформлением по ГОСТу: титульный лист, содержание с нумерацией страниц, сноски и список литературы. Файл открывается и свободно редактируется в Microsoft Word, Google Документах, LibreOffice и «Р7-Офис» — можно дописать свои примеры, поправить формулировки и подстроить работу под требования преподавателя.

Можно ли использовать свои материалы и источники?

Да. При создании работы загрузите файлы в блок «свои доп. материалы» — методичку от преподавателя, конспекты лекций, нужные главы учебника или научные статьи. Нейросеть учтёт их как контекст и напишет работу на основе именно этого материала, а не только общих знаний. Совет: загружайте самые релевантные фрагменты, а не весь учебник целиком — так текст получится точнее.

Сколько времени занимает генерация?

Реферат или доклад — 5–10 минут. Курсовая — 15–20 минут. Дипломная или ВКР — 25–40 минут (генерация по главам с проверкой на связность).

Можно ли отредактировать структуру перед генерацией?

Да, обязательно. Сначала нейросеть предлагает содержание (список глав и подпунктов), вы можете его изменить, добавить/убрать пункты, поменять формулировки — и только потом запускать генерацию полного текста.

Похожие проекты

Все проекты →