Работа с CRUD операциями на языке PHP и базой данных MySQL - Студенческий научный форум

XIV Международная студенческая научная конференция Студенческий научный форум - 2022

Работа с CRUD операциями на языке PHP и базой данных MySQL

 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

CRUD — акроним, обозначающий четыре базовые функции, используемые при работе с базами данных: создание (create), чтение (read), модификация (update), удаление (delete).

В SQL этим функциям, операциям соответствуют операторы Insert (создание записей), Select (чтение записей), Update (редактирование записей), Delete (удаление записей).

PHP (рекурсивный акроним словосочетания PHP: Hypertext Preprocessor) - это распространённый язык программирования общего назначения с открытым исходным кодом. PHP специально сконструирован для веб-разработок и его код Основная задача PHP — это «оживление» HTML страниц.

Обычные HTML-страницы статичны. Статичность (или неизменность) означает, что после того, как страницу создали и загрузили на сайт, при каждом обращении к этой странице браузер покажет её любому пользователю в неизменном виде.

SQL или Structured Query Language (язык структурированных запросов) — язык программирования, предназначенный для управления данными в СУБД. Все современные СУБД поддерживают SQL.

На языке SQL выражаются все действия, которые можно провести с данными: от записи и чтения данных, до администрирования самого сервера СУБД. Для повседневной работы совсем не обязательно знать весь этот язык; достаточно ознакомиться лишь с основными понятиями синтаксиса и ключевыми словами. Кроме того, SQL очень простой язык по своей структуре, поэтому его освоение не составит большого труда.

Главный инструмент оптимизации и обслуживания базы данных — вот, для чего нужен SQL, хотя он и не ограничен этими целями. Возможности обработки охватывают команды определения представлений, указания прав доступа, схем отношений (в том числе, их удаления и изменения), взаимодействие с другими языками программирования, проверку целостности, задание начала и завершения транзакций.

MAMP — это бесплатная локальная серверная среда, которую можно установить в macOS и Windows всего за несколько щелчков мышью. Вы даже можете легко протестировать свои проекты на мобильных устройствах. Неважно какой веб-сервер Apache или Nginx используется в дополнение к MySQL в качестве сервера баз данных, или PHP, Python, Perl и Ruby.

Основная часть

Откроем MAMP на компьютере. Интерфейс программы представлен на рис. 1.

Рисунок 1 – интерфейс ПО MAMP

Открываем в браузере localhost/phpMyAdmin, выбираем раздел SQL и вводим код, написанный ниже. После его выполнения у нас создастся база данных:

CREATE DATABASE students; - созданиеБД.

Далее создаем таблицу баз практик студентов:

CREATE TABLE `bases` (

`id` int(11) NOT NULL,

`name` varchar(60) DEFAULT NULL COMMENT 'Название предприятия',

`studentsCount` int(10) DEFAULT NULL COMMENT 'Количество студентов',

`city` varchar(60) DEFAULT NULL COMMENT 'Город',

`directorName` varchar(60) DEFAULT NULL COMMENT 'ФИО руководителя',

`contractNumber` int(10) DEFAULT NULL COMMENT 'Номер договора',

`phone` varchar(11) DEFAULT NULL COMMENT 'Телефон',

`endDate` varchar(10) DEFAULT NULL COMMENT 'Дата окончания'

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Мы создали базу данных «Базы практик студентов», с ней в дальнейшем будем производить CRUD операции.

Заполняем таблицу исходными данными. Пример SQL кода для вставления строки в таблицу:

INSERT INTO `bases` (`id`, `name`, `studentsCount`, `city`, `directorName`, `contractNumber`, `phone`, `endDate`) VALUES

(1, 'ООО КЗ «Ростсельмаш', 23, 'Волгодонск', 'Аксёнов Александр Максимович', '1111', 8988129823, '01.01.2021');

В итоге получаем таблицу с некоторыми данными по базам практик:

Рисунок 2 – Таблица: `bases`

Реализация интерфейса.

Интерфейс должен предоставлять пользователю возможность выполнять функции создания, поиска, удаления и редактирования баз практик. Вся внутренняя логика программы и интерфейс будут написаны на языке PHP и HTML.

Рисунок 3 – интерфейс web-приложения

Реализация программного кода.

Осуществляем подключение к базе данных из php кода. Для этого создаем константы в которые поместим логин от бд, пароль от бд, и адрес сервера с названием таблицы:

$servername = "localhost"; // Адрес сервера

$username = "root"; // Имя пользователя

$password = "root"; // Пароль

$BDname = "students_practice"; // Название БД

// Подключение к БД

$mysqli = new mysqli($servername, $username, $password, $BDname);

// Проверка на ошибку

if ($mysqli->connect_error) {

printf("Соединение не удалось: %s\n", $mysqli->connect_error);

exit();

}

Реализация CRUD операций.

Реализуем операцию create (создание). В соответствующую форму заполняем все имеющиеся поля и отправляем SQL запрос. Если какое то поле будет пустым в него автоматически запишется 0, дабы избежать каких либо ошибок при записи:

if (isset($_POST['add'])) {

$name = $_POST['name'] ?? '0';

$studentsCount = intval($_POST['studentsCount']) ?? 0;

$city = $_POST['city'] ?? '0';

$directorName = $_POST['directorName'] ?? '0';

$contractNumber = intval($_POST['contractNumber']) ?? 0;

$phone = $_POST['phone'] ?? '0';

$endDate = $_POST['endDate'] ?? '0';

$sql = "INSERT INTO `bases` (`id`,`name`, `studentsCount`, `city`, `directorName`, `contractNumber`, `phone`, `endDate`) VALUES ('$lastId', '$name', '$studentsCount', '$city', '$directorName', '$contractNumber', '$phone', '$endDate')";

$mysqli->query($sql);

header("Location: /students/index.php");

}

Тестируем операцию:

Рисунок 4 – добавление базы

Рисунок 5 – вывод добавленной базы

Далее напишем код для операции read (чтение из базы). Если поле input было пусто, либо если пользователь хочет найти базу по определенному названию, то проверяем значение поля, и в php коде выполняем sql запрос в базу данных с условием:

$bases = "SELECT * FROM `bases`";

if (isset($_POST['sorting'])) {

$baseName = $_POST['baseName'] ?? '0';

if ($baseName) {

$bases = "SELECT * FROM `bases` WHERE `name` = '$baseName'";

}

}

$sql = $bases;

$result = $mysqli->query($sql);

for ($base = array(); $row = $result->fetch_assoc(); $base[] = $row);function bordfell($film)

Так-же напишем функцию, которая будет выводить на экран найденные базы при помощи языка разметки HTML:

function showBases($result)

{

// Проверка на то, что строк больше нуля

if ($result->num_rows > 0) {

// Цикл для вывода данных

while ($row = $result->fetch_assoc()) {

// Вывод данных

echo "<div style='text-align:center;font-size:13px;'>Название предприятия : " . $row['name'] . "<br>

ID: " . $row['id'] . "<br>

Количество студентов: " . $row['studentsCount'] . "<br>

Город: " . $row['city'] . "<br>

ФИО руководителя: " . $row['directorName'] . "<br>

Номер договора: " . $row['contractNumber'] . "<br>

Телефон: " . $row['phone'] . "<br>

Дата окончания: " . $row['endDate'] . "

<a href='?change=" . $row['id'] . "' >Изменить</a>

<hr></div>

";

}

// Если данных нет

} else {

echo "<div style='text-align: center;'>Базы с таким именем не найдены</div>";

}

}

Тестируем операцию:

Рисунок 6 – показать все

Рисунок 7 – успешный поиск

Пишем код для update – обновление и delete – удаление данных. Для начала пользователь вводит в форму поиска название нужной ему базы, либо нажимает на кнопку «Показать все» и выводит все, что имеется в базе данных.

if (isset($_POST['all'])) {

$bases = "SELECT * FROM `bases`";

$result = $mysqli->query($bases);

showBases($result);

}

Далее возле нужной базы жмет на кнопку «Изменить» и все поля автоматически заполняются данными выбранной базы. После этого пользователь может либо удалить выбранную базу, либо отредактировать нужные ему поля и нажать на кнопку «Редактировать». В обоих случаях будет отправляться sql запрос в базу данных. Все операции производятся по id базы практики, это поле отвечает за уникальность данных, во избежание ошибок.

if (isset($_GET['change'])) {

$id = $_GET['change'] ?? '';

$ind = intval($id) - 1;

$name = $base[$ind]['name'] ?? '';

$studentsCount = $base[$ind]['studentsCount'] ?? '';

$city = $base[$ind]['city'] ?? '';

$directorName = $base[$ind]['directorName'] ?? '';

$contractNumber = $base[$ind]['contractNumber'] ?? '';

$phone = $base[$ind]['phone'] ?? '';

$endDate = $base[$ind]['endDate'] ?? '';

$id_base = $base[$ind]['id'] ?? '';

}

if (isset($_POST['Edit'])) {

$name = $_POST['name'] ?? '0';

$studentsCount = intval($_POST['studentsCount']) ?? 0;

$city = $_POST['city'] ?? '0';

$directorName = $_POST['directorName'] ?? '0';

$contractNumber = intval($_POST['contractNumber']) ?? 0;

$phone = $_POST['phone'] ?? '0';

$endDate = $_POST['endDate'] ?? '0';

$sql = "UPDATE `bases` SET `name` = '$name', `studentsCount` = '$studentsCount', `city` = '$city', `directorName` = '$directorName', `contractNumber` = '$contractNumber', `phone` = '$phone', `endDate` = '$endDate' WHERE `bases`.`id` = '$id'";

$mysqli->query($sql);

header("Location: /students/index.php");

}

if (isset($_POST['Delete'])) {

$sql = "DELETE FROM `bases` WHERE `bases`.`id` = '$id'";

$mysqli->query($sql);

header("Location: /students/index.php");

}

Тестируем функционал операций по изменению строк в SQL таблице.

Ищем нужную нам базу, выбираем её, заполняем поля нужными нам данными и жмем кнопку «Изменить».

Рисунок 8 – редактирование строки из БД

Рисунок 9 – редактирование базы

ЗАКЛЮЧЕНИЕ

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

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1. Материал из Википедии — свободной энциклопедии. Высокоуровневый язык программирования // Википедия. 2020. URL: https://ru.wikipedia.org/wiki/PHP (дата обращения: 23.11.2021).

2. Новая большая книга CSS. Книга, Дэвид Сойер Мак-Фарленд и Макфарланд Дэвид 2018. 720с (дата обращения: 24.11.2021).

3. Колисниченко Денис PHP и MySQL. Разработка Web-приложений; БХВ-Петербург - М., 2017. - 560 c. (дата обращения: 24.11.2021).

4. Харрис Энди PHP/MySQL для начинающих; КУДИЦ-Образ - М., 2016. - 384 c (дата обращения: 27.11.2021).

5. Дунаев В.В. HTML, скрипты и стили; БХВ-Петербург - М., 2017. - 527 c. (дата обращения: 25.11.2021).

6. Локхарт Джош Современный PHP. Новые возможности и передовой опыт; ДМК Пресс - М., 2016. - 304 c. (дата обращения: 26.11.2021).

7. Гизберт Дамашке PHP и MySQL; НТ Пресс - М., 2016. - 569 c. (дата обращения: 05.11.2021).

8. Никсон Робин Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript и CSS; Питер - М., 2017. - 204 c. (дата обращения: 27.11.2021).

9. . Кузнецов Максим Самоучитель PHP 5/6; БХВ-Петербург - М., 2017. - 972 c. (дата обращения: 28.11.2021).

Просмотров работы: 56