Загрузка данных


Да. Раз ты работаешь через Open Server Panel, то XAMPP тебе вообще не нужен. С этого момента делай так.

Сначала уточню важное: у Open Server Panel 5 и 6 немного разная организация проектов. В старой 5-й версии сайты обычно лежат в папке domains, а в 6-й версии проекты могут лежать в разных местах и настраиваться через .osp/project.ini. 

Если у тебя интерфейс похож на тот, где в трее есть привычное меню «Запустить / Домены / Настройки», скорее всего у тебя Open Server 5.x. Для твоей учебной практики это самый простой сценарий.

1. Запусти Open Server Panel

Запусти Open Server Panel, желательно от имени администратора.

После запуска в системном трее Windows появится значок Open Server.

Нажми по нему и выбери:

Запустить

Подожди, пока сервер запустится.

⸻

2. Найди папку domains

Открой папку, куда установлен Open Server.

Например это может быть:

C:\OSPanel\

или:

D:\OSPanel\

Внутри должна быть папка:

domains

То есть примерно:

C:\OSPanel\domains\

Для Open Server 5 проекты действительно должны находиться внутри настроенной корневой папки доменов. 

⸻

3. Создай там наш проект

Внутри domains создай папку:

project-history

Получится:

C:\OSPanel\domains\project-history

Теперь внутри создай структуру из PDF:

project-history/
│
├── index.php
├── project.php
│
├── admin/
│   ├── index.php
│   ├── create.php
│   ├── edit.php
│   └── delete.php
│
├── includes/
│   ├── db.php
│   ├── functions.php
│   ├── header.php
│   └── footer.php
│
├── assets/
│   └── style.css
│
└── images/

Именно такую структуру требует твоя практическая работа. Практическое задание 1. Методы автоматизации разработки веб-приложения.pdf

⸻

4. Открой эту папку в VS Code

В VS Code:

File → Open Folder

выбираешь:

C:\OSPanel\domains\project-history

или тот путь, где у тебя установлен Open Server.

Старый malyshev-project пока не трогай.

⸻

5. Создай файлы

В VS Code через Explorer создай:

index.php
project.php

Папку:

admin

В ней:

index.php
create.php
edit.php
delete.php

Папку:

includes

В ней:

db.php
functions.php
header.php
footer.php

Папку:

assets

В ней:

style.css

И пустую папку:

images

⸻

6. Перезапусти Open Server

После создания новой папки проекта лучше нажать по значку Open Server:

Перезапустить

После этого Open Server должен увидеть новый локальный домен.

В Open Server 5 имя папки часто становится именем локального домена.

Попробуй открыть в браузере:

http://project-history/

Если не откроется, попробуй:

http://project-history.local/

или посмотри через меню Open Server:

Мои проекты / Домены

и выбери project-history.

Не переживай, если пока там будет пустая белая страница — index.php ещё пустой.

⸻

7. Теперь создаём базу данных

В Open Server обычно есть phpMyAdmin.

Нажми на значок Open Server в трее и найди примерно:

Дополнительно → phpMyAdmin

или:

Мои проекты / Инструменты → phpMyAdmin

Можно также попробовать открыть:

http://localhost/openserver/phpmyadmin/

но путь зависит от версии Open Server, поэтому удобнее запускать phpMyAdmin прямо из меню панели.

Когда откроется phpMyAdmin, увидишь страницу входа.

В большинстве локальных конфигураций Open Server:

Логин: root
Пароль: пустой

Если у тебя Open Server уже настроен преподавателем и там другой пароль — используем тот.

⸻

8. В phpMyAdmin открой вкладку SQL

После входа в phpMyAdmin сверху будет вкладка:

SQL

Нажми её.

Теперь вставь весь этот код:

CREATE DATABASE project_history
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
USE project_history;
CREATE TABLE categories (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL
);
CREATE TABLE projects (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    short_description VARCHAR(500) NOT NULL,
    description TEXT NOT NULL,
    project_date DATE NOT NULL,
    category_id INT NOT NULL,
    image VARCHAR(255) NOT NULL,
    status VARCHAR(20) NOT NULL DEFAULT 'draft',
    client VARCHAR(255) NULL,
    technologies VARCHAR(500) NULL,
    project_url VARCHAR(500) NULL,
    created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (category_id)
        REFERENCES categories(id)
);
INSERT INTO categories (name) VALUES
('Web'),
('Mobile'),
('Desktop'),
('Other');
INSERT INTO projects
(
    title,
    short_description,
    description,
    project_date,
    category_id,
    image,
    status,
    client,
    technologies,
    project_url
)
VALUES
(
    'Интернет-магазин электроники',
    'Современный интернет-магазин для продажи электроники.',
    'Проект интернет-магазина с каталогом товаров, корзиной и системой оформления заказов.',
    '2026-02-15',
    1,
    'images/project-1.jpg',
    'published',
    'TechStore',
    'PHP, MySQL, HTML, CSS',
    'https://example.com'
),
(
    'Мобильное приложение доставки',
    'Приложение для заказа и доставки еды.',
    'Мобильное приложение позволяет выбирать ресторан, оформлять заказ и отслеживать его статус.',
    '2026-03-10',
    2,
    'images/project-2.jpg',
    'published',
    'Food Delivery',
    'Flutter, PHP, MySQL',
    'https://example.com'
),
(
    'Система учёта сотрудников',
    'Desktop-программа для ведения базы сотрудников.',
    'Приложение позволяет хранить данные сотрудников, подразделений и должностей.',
    '2026-04-20',
    3,
    'images/project-3.jpg',
    'draft',
    'CompanySoft',
    'C#, MySQL',
    NULL
),
(
    'Корпоративный сайт',
    'Сайт компании с информацией об услугах.',
    'Корпоративный сайт содержит страницы компании, услуг, проектов и контактной информации.',
    '2026-05-05',
    1,
    'images/project-4.jpg',
    'published',
    'Digital Company',
    'PHP, HTML, CSS, JavaScript',
    'https://example.com'
),
(
    'Учебный портал',
    'Веб-платформа для публикации учебных материалов.',
    'Портал предназначен для хранения курсов, лекций и практических материалов студентов.',
    '2026-06-12',
    4,
    'images/project-5.jpg',
    'draft',
    NULL,
    'PHP, MySQL',
    NULL
);

Нажми кнопку выполнения запроса.

После этого слева должна появиться:

project_history

Раскрой её.

Там должны быть:

categories
projects

По заданию нужны именно эти две таблицы и минимум пять тестовых проектов. 

⸻

9. Сначала сделаем соединение PHP с Open Server MySQL

Теперь возвращайся в VS Code.

Открой:

includes/db.php

и вставь:

<?php
$host = 'localhost';
$dbname = 'project_history';
$user = 'root';
$password = '';
try {
    $pdo = new PDO(
        "mysql:host=$host;dbname=$dbname;charset=utf8mb4",
        $user,
        $password
    );
    $pdo->setAttribute(
        PDO::ATTR_ERRMODE,
        PDO::ERRMODE_EXCEPTION
    );
    $pdo->setAttribute(
        PDO::ATTR_DEFAULT_FETCH_MODE,
        PDO::FETCH_ASSOC
    );
} catch (PDOException $e) {
    die('Ошибка подключения к базе данных: ' . $e->getMessage());
}

Если у тебя в Open Server MySQL для root задан пароль, тогда:

$password = 'твой_пароль';

⸻

10. Проверим подключение ДО того, как писать весь сайт

Это очень важно. Не надо сразу копировать десять файлов и потом искать ошибку.

Временно в корневой:

index.php

вставь:

<?php
require_once 'includes/db.php';
echo 'Подключение к базе данных работает!';

Сохрани.

Теперь в браузере открой свой проект.

Например:

http://project-history/

Если увидишь:

Подключение к базе данных работает!

— всё отлично.

Останавливайся на этом этапе.

То есть твоя ближайшая задача сейчас:

1. запустить Open Server;
2. создать project-history;
3. сделать структуру папок;
4. создать БД через phpMyAdmin;
5. вставить includes/db.php;
6. открыть index.php;
7. добиться надписи «Подключение к базе данных работает!».

Когда это заработает, дальше уже будем по порядку делать главную страницу → страницу проекта → админку → добавление → изменение → удаление.

Если на каком-то шаге у тебя будет не так, скинь скрин Open Server/ошибки, и я скажу прямо, куда нажать и что исправить.