Готовые проекты — страница 231
Уже сгенерировано 14161 проекта на разные темы. Каждая работа — с уникальной структурой, оригинальностью больше 90% по Антиплагиат.ру, оформлением по ГОСТу и списком реальных источников. Не нашёл подходящую тему? Введи свою — нейросеть напишет проект за 10–30 минут.
Написать проект
Оригинальность > 90% · ГОСТ · 10–30 минут
Проект
СЛЕСАРЬ МОЯ ПРОФЕССИЯ
ПроектСпециалист по П. О. Заключительный тест по всём вопросам
Проектхимия декоративная штукатурка
ПроектФормулу ньютона легенца
ПроектФормула ньютона легенда
ПроектПроект на тему "Создание собственной компьютерной игры"
ПроектТребования к клафикации и подготовке помощников машинистов
Проект"Философская глубина лирики Б.Л. Пастернака"
Проектвирус спид и человек динамика борьбы проект 1 курс опд
ПроектОсновная судовая техническая документация
Проектмировые информационные войны
Проекттема оригами на 25 страниц со списком литературы и титульным листом
Проектробот пылесос с автаномной навигацией
Проект«Искусственный интеллект; сущность, развитие и перспективы»
ПроектПравила поведения на водоёмах
Проектрадиация среди нас
ПроектМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное бюджетное образовательное учреждение высшего образования «Алтайский государственный университет» Международный институт экономики, менеджмента и информационных систем Кафедра международной экономики, математических методов и бизнес-информатики КУРСОВАЯ РАБОТА на тему Разработка веб-приложения для управления товарами с использованием 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 '<'; case '>': return '>'; case '&': return '&'; case '\'': return '''; case '"': return '"'; } return c; }); } // Автоматическая загрузка при открытии страницы loadProductsJSON(); </script> </body> </html> /SlashHuman
Проектправила при пожарной эвакуации
ПроектВыпекания торта "Молочная девочка"
Проектдиспансеризация детей старшего и школьного возраста
Проектвитамина С
Проектлогарифмы как ключ к решению задач и их прим енение в различых областях науки и техники
ПроектИспользование программного обеспечения по специальности прикладная геодезия
Проектпроблема цифрового неравенства в современном мире
Другие типы работ
Нужен такой же проект?
КонспектGPT напишет проект на любую тему за 10–30 минут: оригинальность больше 90%, оформление по ГОСТу, реальные источники, обход ИИ-детекторов. Просто введи тему — нейросеть сама подберёт структуру, наполнит главы и оформит библиографию.
Написать проект