diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0cfe994 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.env +.idea +.DS_Store diff --git a/App/docker/.env.axample b/App/docker/.env.axample new file mode 100644 index 0000000..5152ef9 --- /dev/null +++ b/App/docker/.env.axample @@ -0,0 +1,3 @@ +MARIADB_USER=restuser +MARIADB_PASSWORD= +MARIADB_DATABASE=restdb diff --git a/App/docker/db/Dockerfile b/App/docker/db/Dockerfile new file mode 100644 index 0000000..688db0d --- /dev/null +++ b/App/docker/db/Dockerfile @@ -0,0 +1,2 @@ +FROM mariadb:10.6.0-focal +COPY users.sql /docker-entrypoint-initdb.d/ diff --git a/App/docker/db/build.sh b/App/docker/db/build.sh new file mode 100755 index 0000000..c1bc410 --- /dev/null +++ b/App/docker/db/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +docker build -t vasyakrg/php-db . && docker push vasyakrg/php-db diff --git a/App/docker/db/users.sql b/App/docker/db/users.sql new file mode 100644 index 0000000..9863574 --- /dev/null +++ b/App/docker/db/users.sql @@ -0,0 +1,72 @@ +-- phpMyAdmin SQL Dump +-- version 4.8.5 +-- https://www.phpmyadmin.net/ +-- +-- Хост: 127.0.0.1:3306 +-- Время создания: Дек 09 2019 г., 21:42 +-- Версия сервера: 10.3.13-MariaDB +-- Версия PHP: 7.1.22 + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- База данных: `test` +-- + +-- -------------------------------------------------------- + +-- +-- Структура таблицы `users` +-- + +CREATE TABLE `users` ( + `id` int(11) NOT NULL, + `name` varchar(50) NOT NULL, + `last_name` varchar(50) NOT NULL, + `pos` varchar(50) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Дамп данных таблицы `users` +-- + +INSERT INTO `users` (`id`, `name`, `last_name`, `pos`) VALUES +(1, 'Иван', 'Иванов', 'Менеджер'), +(2, 'Петр', 'Петров', 'Сисадмин'), +(3, 'Сара', 'Конор', 'Бухгалтер'), +(4, 'Федор', 'Федоров', 'Архитектор'), +(5, 'Алексей', 'Алексеев', 'Оператор'), +(6, 'Марина', 'Маринина', 'Менеджер'), +(7, 'Михаил', 'Михайлов', 'Директор'), +(8, 'Владислав', 'Валдаев', 'Водитель'), +(9, 'Валентина', 'Иванова', 'Художник'), +(10, 'Владислав', 'Валдаев', 'Водитель'); + +-- +-- Индексы сохранённых таблиц +-- + +-- +-- Индексы таблицы `users` +-- +ALTER TABLE `users` + ADD PRIMARY KEY (`id`); + +-- +-- AUTO_INCREMENT для сохранённых таблиц +-- + +-- +-- AUTO_INCREMENT для таблицы `users` +-- +ALTER TABLE `users` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12; +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/App/docker/docker-compose.yaml b/App/docker/docker-compose.yaml index 0713113..badf7dc 100644 --- a/App/docker/docker-compose.yaml +++ b/App/docker/docker-compose.yaml @@ -1,12 +1,34 @@ version: '3.7' services: - app: - build: ./php - container_name: myapp - ports: - - 80:80 - networks: - app_net: + app: + image: vasyakrg/php-app + container_name: myapp + environment: + MARIADB_HOST: db + MARIADB_USER: ${MARIADB_USER} + MARIADB_PASSWORD: ${MARIADB_PASSWORD} + MARIADB_DATABASE: ${MARIADB_DATABASE} + ports: + - 80:80 + networks: + app_net: + db: + image: vasyakrg/php-db + container_name: db + environment: + MARIADB_ROOT_PASSWORD: ${MARIADB_PASSWORD} + MARIADB_USER: ${MARIADB_USER} + MARIADB_PASSWORD: ${MARIADB_PASSWORD} + MARIADB_DATABASE: ${MARIADB_DATABASE} + volumes: + - db_volume:/var/lib/mysql + ports: + - 3306:3306 + networks: + app_net: + +volumes: + db_volume: networks: app_net: diff --git a/App/docker/php/Dockerfile b/App/docker/php/Dockerfile index cc18e89..7d8fc15 100644 --- a/App/docker/php/Dockerfile +++ b/App/docker/php/Dockerfile @@ -1,12 +1,15 @@ FROM php:7.4-apache-buster MAINTAINER vasyakrg -RUN apt-get update && apt-get install -y \ +RUN apt-get update && apt-get install -y --no-install-recommends \ apt-transport-https \ curl \ wget \ git \ - && apt-get update && rm -rf /var/lib/apt/lists/* + libpq-dev \ + && docker-php-ext-install mysqli pdo_pgsql pdo_mysql \ + && apt-get update \ + && rm -rf /var/lib/apt/lists/* RUN rm /etc/apache2/sites-enabled/* COPY myapp.conf /etc/apache2/sites-available/myapp.conf diff --git a/App/docker/php/myapp/config.php b/App/docker/php/myapp/config.php new file mode 100644 index 0000000..b14cc13 --- /dev/null +++ b/App/docker/php/myapp/config.php @@ -0,0 +1,12 @@ +getMessage()); +} diff --git a/App/docker/php/myapp/func.php b/App/docker/php/myapp/func.php new file mode 100644 index 0000000..db69f2b --- /dev/null +++ b/App/docker/php/myapp/func.php @@ -0,0 +1,47 @@ +prepare($sql); + $query->execute([$name, $last_name, $pos]); + $success = ''; + +} + +// Read + +$sql = $pdo->prepare("SELECT * FROM `users`"); +$sql->execute(); +$result = $sql->fetchAll(); + +// Update +$edit_name = $_POST['edit_name']; +$edit_last_name = $_POST['edit_last_name']; +$edit_pos = $_POST['edit_pos']; +$get_id = $_GET['id']; +if (isset($_POST['edit-submit'])) { + $sqll = "UPDATE users SET name=?, last_name=?, pos=? WHERE id=?"; + $querys = $pdo->prepare($sqll); + $querys->execute([$edit_name, $edit_last_name, $edit_pos, $get_id]); + header('Location: '. $_SERVER['HTTP_REFERER']); +} + +// DELETE +if (isset($_POST['delete_submit'])) { + $sql = "DELETE FROM users WHERE id=?"; + $query = $pdo->prepare($sql); + $query->execute([$get_id]); + header('Location: '. $_SERVER['HTTP_REFERER']); +} diff --git a/App/docker/php/myapp/index.php b/App/docker/php/myapp/index.php index fade311..a1b1110 100644 --- a/App/docker/php/myapp/index.php +++ b/App/docker/php/myapp/index.php @@ -1,8 +1,83 @@ - - - Тестируем PHP - - - Привет, мир!

'; ?> - - + + + + + + CRUD приложение на PHP + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + +
ИмяФамилияДолжностьДействие
+ + + +
+
+
+
+ + + + + + + + +