
PHP разработан для легкой интеграции в веб-сайт. Одно из самых распространенных применений PHP — это получение информации из базы данных и вывод ее на HTML-страницу. В этом уроке мы рассмотрим, как подключиться к базе данных MySQL/MariaDB, извлечь информацию из простой таблицы и отобразить ее в простой HTML-таблице.
Требования
- Облачный сервер под управлением Linux (любой дистрибутив)
- Установленные и работающие Apache, MySQL/MariaDB и PHP
Apache, MySQL/MariaDB и PHP установлены и запущены на стандартной установке Linux по умолчанию. Если ваш сервер был создан с минимальной установкой, вам необходимо установить и настроить Apache, MySQL/MariaDB и PHP, прежде чем продолжить.
Создание базы данных MySQL/MariaDB и пользователя
В этом руководстве мы создадим веб-страницу для воображаемого ресторана. На веб-странице будут отображаться отзывы клиентов о ресторане.
Войдите в клиент MySQL/MariaDB с командной строкой:
mysql -u root -p
Создайте базу данных для отзывов:
CREATE DATABASE reviews;
Переключитесь на эту базу данных:
USE reviews;
Для этого примера мы создадим только одну таблицу. В ней будет три поля:
- Поле ID: Оно будет настроено на автоинкремент.
- Имя рецензента: текстовое поле с ограничением в 100 символов.
- Звездный рейтинг: числовая оценка от 1 до 5 TINYINT.
- Подробности рецензии: Текстовое поле с ограничением примерно в 500 слов. VARCHAR(4000)
Создайте таблицу:
CREATE TABLE user_review (
id MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
reviewer_name CHAR(100),
star_rating TINYINT,
details VARCHAR(4000)
);
Добавьте в таблицу два примера отзывов:
INSERT INTO user_review (reviewer_name, star_rating, details) VALUES ('Ben', '5', 'Love the calzone!');
INSERT INTO user_review (reviewer_name, star_rating, details) VALUES ('Leslie', '1', 'Calzones are the worst.');
Создайте пользователя для базы данных. В целях безопасности всегда лучше создавать уникального пользователя для каждой базы данных, особенно если доступ к этой базе данных будет осуществляться с веб-сайта.
Следующая команда создаст пользователя review_site с паролем JxSLRkdutW и предоставит ему доступ к базе данных отзывов:
GRANT ALL ON reviews.* to review_site@localhost IDENTIFIED BY 'JxSLRkdutW';
Создать PHP-скрипт
Код в этом руководстве упрощен для демонстрации примеров. При создании веб-сайта мы настоятельно рекомендуем вам следовать лучшим практикам безопасности, чтобы убедиться, что ваши PHP-скрипты не открывают доступ к серверу.
Создайте файл showreviews.php в вашем веб-пространстве и откройте его для редактирования. Например, чтобы создать файл в /var/www/html, выполните следующую команду:
sudo nano /var/www/html/showreviews.php
На этой странице PHP будет встроен в HTML, поэтому страница будет начинаться с основных деклараций HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
Каждый PHP-скрипт должен начинаться с открывающего тега PHP:
<?php
Далее добавляем блок подключения MySQL/MariaDB с указанием местоположения сервера (localhost), имени базы данных, имени пользователя и пароля базы данных.
$hostname = "localhost";
$username = "review_site";
$password = "JxSLRkdutW";
$db = "reviews";
Затем мы добавляем секцию для подключения к базе данных и выдаем ошибку, если подключение не удалось:
$dbconnect=mysqli_connect($hostname,$username,$password,$db);
if ($dbconnect->connect_error) {
die("Database connection failed: " . $dbconnect->connect_error);
}
?>
Далее добавляем HTML для начала таблицы, которую мы будем использовать для отображения данных:
<table border="1" align="center">
<tr>
<td>Reviewer Name</td>
<td>Stars</td>
<td>Details</td>
</tr>
После этого добавляем PHP-код, который будет запрашивать базу данных и перебирать результаты, отображая каждый отзыв в отдельной строке таблицы:
<?php
$query = mysqli_query($dbconnect, "SELECT * FROM user_review")
or die (mysqli_error($dbconnect));
while ($row = mysqli_fetch_array($query)) {
echo
"<tr>
<td>{$row['reviewer_name']}</td>
<td>{$row['star_rating']}</td>
<td>{$row['details']}</td>
</tr>;
}
?>
И, наконец, закройте таблицу и HTML:
</table>
</body>
</html>
Чтобы протестировать скрипт, зайдите на сайт showreviews.php в браузере.

Полный текст PHP-скрипта:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<?php
$hostname = "localhost";
$username = "review_site";
$password = "JxSLRkdutW";
$db = "reviews";
$dbconnect=mysqli_connect($hostname,$username,$password,$db);
if ($dbconnect->connect_error) {
die("Database connection failed: " . $dbconnect->connect_error);
}
?>
<table border="1" align="center">
<tr>
<td>Reviewer Name</td>
<td>Stars</td>
<td>Details</td>
</tr>
<?php
$query = mysqli_query($dbconnect, "SELECT * FROM user_review")
or die (mysqli_error($dbconnect));
while ($row = mysqli_fetch_array($query)) {
echo
"<tr>
<td>{$row['reviewer_name']}</td>
<td>{$row['star_rating']}</td>
<td>{$row['details']}</td>
</tr>n";
}
?>
</table>
</body>
</html>
- Веб-разработка