- •Интерактивное программирование
- •Разработка веб-приложений с использованием php и MySql
- •Тема 1. Архитектура веб-приложений
- •Установка веб-сервера
- •Подготовительный этап
- •Создание файловой структуры веб-сервера
- •Установка Apache 2.4
- •Настройка php 7
- •Установка и настройка MySql 5.7
- •Установка и настройка php 7
- •Установка и настройка phpMyAdmin
- •Использование сервера и резервное копирование данных
- •Дополнительная настройка php
- •Установка почтовой заглушки
- •Тема 2. Использование php в веб-разработке Как работает php
- •Основы php Первая страница
- •Синтаксис языка
- •Переменные в php
- •Область видимости переменных
- •Типы данных
- •Тип данных boolean
- •Типы данных integer и float
- •Тип данных string
- •Тип данных null
- •Тип данных resource
- •Тип данных array
- •Константы
- •Автоматическое преобразование типов
- •Приведение типов
- •Преобразование в булев тип
- •Операторы
- •Арифметические операторы
- •Оператор присваивания
- •Операторы сравнения
- •Операторы инкремента и декремента
- •Логические операторы
- •Строковые операторы
- •Операторы, работающие с массивами
- •Приоритет оператора
- •Управляющие конструкции
- •Условный оператор if
- •Функции
- •Функции для проверки на существование переменных
- •Для работы с массивами
- •Сортировка массивов
- •Математические функции
- •Функции обработки строк
- •Функции для работы с датой и временем
- •Функции, определяемые пользователем
- •Тема 3. Взаимодействие с html Подключение файлов
- •Обработка форм
- •Тема 4. Работа с MySql Что такое MySql? Принципы проектирования бд
- •Основы языка sql и работа в phpMyAdmin
- •Типы данных
- •Создание базы данных
- •Удаление базы данных
- •Создание таблиц
- •Ограничения внешнего ключа
- •Изменение столбцов в таблице
- •Удаление таблиц
- •Добавление записей в таблицы
- •Удаление записей из таблиц
- •Обновление содержимого некоторых полей в одной либо нескольких записях в таблицах бд
- •Поиск одной или нескольких записей, удовлетворяющих заданному условию
- •Взаимодействие php и MySql
- •Подключение к MySql
- •Получение данных из бд
- •Запись данных в бд
- •Теоретические вопросы
- •Задания.
Взаимодействие php и MySql
PHP MySQLi
MySQLi – расширение языка PHP для работы с СУБД MySQL.
Подключение к MySql
Для подключения к базе данных создается новое mysqli-подключение:
<?php
$mysqli = new mysqli("host", "user", "password", "database");
if ($mysqli->connect_errno) {
echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
Здесь:
host – сетевой адрес сервера БД
user – имя пользователя
password – пароль
database – имя базы данных
Добавим на сайт подключение к базе данных. В нашем случае сетевым адресом host является localhost, именем пользователя user – root, паролем password – “” (пустая строка), именем базы данных database – mysite.
Создадим файл db_connect.php:
<?php
$mysqli = new mysqli("localhost", "root", "", "mysite");
if ($mysqli->connect_errno) {
echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
В файле header.php подключим файл 'db_connect.php':
include 'db_connect.php';
Получение данных из бд
Давайте изменим файл header.php. Пусть меню сайта теперь выводится из таблицы pages:
<ul class="menu">
<?php $res = $mysqli->query("SELECT * FROM pages ORDER BY id ASC");
while ($row = $res->fetch_assoc()) {
echo "<li><a href=".$row['link'].">".$row['name']."</a></li>";
}
?>
</ul>
Здесь:
$res = $mysqli->query() – отправка запроса и сохранение его результата в переменную $res
$row = $res->fetch_assoc() - сохраненение верхней строки результата в переменную $row в виде ассоциативного массива. С помощью цикла мы пробегаем по всем строкам результата.
$row['link'] – обращение к конкретной ячейке.
Результат видим на рисунке 180.
Рисунок 180 – Меню сайта
Теперь сделаем так, чтобы содержимое страниц выводилось из таблицы content. Рассмотрим это на примере главной страницы. Для этого в таблицу content добавим новую запись, с содержимым страницы index.php. Не забываем установить pages_id как 1, это соответствует записи главной страницы в таблице pages (см. рис. 181).
Рисунок 181– Добавление содержимого главной страницы в таблицу «content»
Теперь меняем код index.php следующим образом:
<?php
include 'header.php';
?>
<main class="content">
<?php $res = $mysqli->query("SELECT * FROM content WHERE pages_id=1 ORDER BY id ASC");
while ($row = $res->fetch_assoc()) {
echo "<h1>".$row['header']."</h1>";
echo $row['content'];
}
?>
</main>
<?php
include 'footer.php';
?>
Запись данных в бд
Давайте изменим скрипт для отправки отзывов таким образом, чтобы сообщения сохранялись в базе данных. Добавим на страницу response.php сразу после строчки mail($admin_email, $head, $email_text , $from); следующий код:
$content = " Имя: $name
E-mail: $email
Сообщение: $message";
if(!$mysqli->query("INSERT INTO content(header, content, pages_id) VALUES ('".$head."', '".$content."','4')")){
echo "Ошибка: (" . $mysqli->errno . ") " . $mysqli->error;
}
Теперь попробуем отправить отзыв, показанный на рисунке 182.
Рисунок 182 – Отправка отзыва
Проверим таблицу content: данные оказались сохранены в ней, см. рисунок 183.
Рисунок 183 – Отзывы в таблице content
Теперь, когда мы храним сообщения в базе, мы можем легко вывести их на страницу «Отзывы». Добавим после строчки </form> следующий код:
<hr>
<?php $res = $mysqli->query("SELECT * FROM content WHERE pages_id=4 ORDER BY id ASC");
while ($row = $res->fetch_assoc()) {
echo "<p>";
echo "<h4>".$row['header']."</h4>";
echo "<pre>".$row['content']."</pre>";
echo "</p>";
echo "<hr>";
}
?>
Результат можно видеть на рисунке 184.
Рисунок 184 – Вывод отзывов на страницу
Подведем итоги.
Итак, мы познакомились языком PHP в связке с СУБД MySQL как с инструментом разработки динамических веб-сайтов, а также научились устанавливать и настраивать веб-сервер Apache. Ознакомились с клиент-серверной архитектурой передачей данных по сети с использованием протокола HTTP.
Подробно рассмотрен процесс установки веб-сервера Apache, компонент PHP и MySQL, а также phpMyAdmin – программы для работы с MySQL.
В данном разделе рассмотрены основы языка программирования PHP для создания динамических страниц, принципы его работы, синтаксис, типы данных, операторы, управляющие конструкции и основные функции и премеры использования при разработке веб-сайта.
Кроме того, рассмотрены принципы создания реляционной базы данных, особенности языка запросов SQL, использование его конструкций для создания и удаления баз данных, таблиц; изменения таблиц; добавления новых записей в таблицы и так далее. А также узнали, как все тоже самое можно сделать с помощью компонента phpMyAdmin.
