Пример использования циклов: отрисовка HTML таблицы на PHP
Заметка: активирована адаптивная версия сайта, которая автоматически подстраивается под небольшой размер Вашего браузера и скрывает некоторые детали сайта для удобства чтения. Приятного просмотра!
Здравствуйте уважаемые читатели блога Site on! В прошлой статье мы рассмотрели всё о циклах в PHP, но для закрепления полученных теоритических материалов, предлагаю выполнить практическую задачу, которая довольно часто встречается в повседневной жизни разработчика сайтов.
В наших с вами любимых CMS для отрисовки любой HTML таблицы используются циклы, по-другому никак. Например, у товара (смартфона) есть характеристики: ширина, высота, глубина, цвет, размер дисплея, объём памяти и тд. Все эти свойства обычно отрисовываются в виде HTML таблицы, это очень удобно и хорошо, ровно выглядит.
Чтобы понять, как это делается, сегодня мы решим такую простую задачу, как создание таблицы умножения:

Приступим
Для начала нужно придумать и понять алгоритм, которому мы будем следовать. Из чего состоит HTML таблица? Давайте я нарисую:

Как видим из рисунка, тег table встречается всего 1 раз, поэтому он явно должен быть вне цикла. Повторяется у нас только строка (tr) и внутри неё ячейки, они же столбцы (td). Всё, больше у нас ничего не повторяется.
Теперь нужно решить, какой цикл лучше использовать для данной задачи. Это классический вариант и лучшим решением будет цикл for, хотя можно использовать и while, если вы к нему привыкли больше. Но нам понадобится не один цикл, а два: первый будет рисовать и считать строки (tr), а второй столбцы (td).
// количество строк, tr $cols = 20; // количество столбцов, td echo '| '. $tr*$td .' | '; > echo '

В первом цикле мы отрисовываем tr, внутри него td. Этот код можно было бы назвать идеальным шаблоном отрисовки любой таблицы, но я знаю, как сделать ещё лучше. Незачем каждый раз напрягать PHP и делать вывод на экран (echo) после каждой итерации, гораздо лучше поместить всё в одно место (переменную) и сделать echo в самом конце, один единственный раз:
// количество строк, tr $cols = 20; // количество столбцов, td $table = 'Для этого мы использовали оператор .= присвоение через конкатенацию. Результат будет точно таким же. Но это ещё не всё. Нам нужно привести нашу таблицу к виду, как на самом первом рисунке в этой статье. То есть сделать первую строку и столбец полужирным и поставить зелёный фон. Такого результата можно добиться двумя способами:
- С помощью CSS3 (правильный способ);
- С помощью PHP (неправильный способ, но возьмём его, так как в этом разделе учим PHP);
Итак, делаем с помощью PHP:
// количество строк, tr $cols = 20; // количество столбцов, td $table = '| '. $tr*$td .' | '; // все ячейки, кроме ячеек из первого столбца и первой строки > > $table .= ''; > $table .= '
Красота 🙂 Можете выводить таблицу хоть 100 на 100. Балуйтесь, как хотите, это полезно для опыта. Спасибо за внимание, и приятных вам выходных!
Как создать таблицу в php

WordPress 6 с Нуля до Гуру
Этот курс научит Вас созданию самых разных сайтов на самой популярной в мире CMS — WordPress. Вы увидите установку и настройку локального сервера, разбор каждой настройки, каждой кнопки и каждого пункта меню в панели WordPress.
Также Вы получите и всю практику, поскольку прямо в курсе с нуля создаётся полноценный Интернет-магазин, который затем публикуется в Интернете. И всё это прямо на Ваших глазах.
Помимо уроков к курсу идут упражнения для закрепления материала.
И, наконец, к курсу идёт ценнейший Бонус по тому, как используя ChatGPT и создавая контент для сайта, можно выйти на пассивный доход. Вы наглядно увидите, как зарегистрироваться в ChatGPT (в том числе, и если Вы из России), как правильно выбрать тему для сайта, как правильно генерировать статьи для него(чтобы они индексировались поисковыми системами) и как правильно монетизировать трафик на сайте.
Уроки и статьи
Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.
![]()
Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.
![]()
Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.
![]()
Мой аккаунт Моя группа
Какая тема Вас интересует больше?
Бесплатный курс
Мастер-класс по созданию сайта на WordPress 6
Этот видеоурок длится всего 21 минуту, но уже в конце создан полностью рабочий сайт на WordPress (с применением ChatGPT). И весь процесс Вы увидите своими глазами, а повторить — не составит труда!
Чтобы получить Видеокурс,
заполните форму
Бесплатный онлайн-семинар
Этапы создания и продвижения лендинга
После семинара:
— Вы увидите мои лендинги и их результаты.
— Вы узнаете, какие этапы создания и продвижения у лендингов.
— Вы получите 2 различных пошаговых бизнес-плана, основанных на создании лендингов.
— Вы узнаете, как автоматизировать продвижение: создали лендинг, настроили продвижение, и годами он работает уже без Вас.
Как создать таблицу в php
Для выполнения запросов к серверу базы данных у объекта PDO вызывается метод exec() , в который передается выполняемое выражение SQL.
$conn = new PDO("mysql:host=localhost", "root", "mypassword"); $conn->exec(команда_sql);
Создание базы данных
Для создания базы данных применяется SQL-команда CREATE DATABASE , после которой указывается имя создаваемой базы данных.
Создадим базу данных через PHP:
exec($sql); echo "Database has been created"; > catch (PDOException $e) < echo "Database error: " . $e->getMessage(); > ?>
В данном случае после подключения к серверу определяется переменная $sql , которая хранит команду на создание бд с именем «textdb1»:
$sql = "CREATE DATABASE testdb1";
Далее для выполнения этой команды передаем ее в метод exec() :
$conn->exec($sql);
В итоге при успешном создании базы данных мы увидим в браузере сообщение об создании БД:
Database has been created
Создание таблицы
Подобным образом можно выполнять запросы на создание таблиц в базе данных. Для создания таблиц применяется SQL-команда CREATE TABLE , после которой указывается имя создаваемой таблицы и в скобках определения столбцов.
Так, возьмем выше созданную базу данных «testdb1». И создадим в ней таблицу, которая описывается следующим кодом
CREATE TABLE Users (id INTEGER AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30), age INTEGER);
Здесь создается таблица под названием «users». Она будет хранить условных пользователей. В ней будет три столбца: id, name и age. Столбец id представляет числовой уникальный идентификатор строки — или идентификатор пользователя. Столбец name представляет строку — имя пользователя. А столбец age представляет число — возраст пользователя.
Для создания таблицы определим следующий скрипт php:
exec($sql); echo "Table Users has been created"; > catch (PDOException $e) < echo "Database error: " . $e->getMessage(); > ?>
Обратите внимание, что по сравнению с предыдущим примером здесь в строке подключения указана база данных, в которой создается таблица: «mysql:host=localhost;dbname=testdb1»
И после успешного выполнения запрос мы увидим в браузере сообщение об создании таблицы:
Как создать таблицу в php
Допустим, в нашей базе данных хранится одна таблица со следующей структурой:
имя поля тип(длина) описание id целый(2) уникальный номер name символьный(100) имя tel символьный(20) телефон
Таблица имеет имя: customer, а наша база данных называется database. Допустим, что ваши данные для подключения к серверу MySQL такие:
Хост: localhost Имя пользователя: guest Пароль: mypassword
Для начала необходимо создать нашу таблицу customer. Напишем скрипт, который создаст в базе данных database таблицу customer. Назовём файл, который будет создавать таблицу, install.php. Содержимое файла install.php:
< ?php// Данные для MySQL сервера $dbhost = "localhost"; // Хост $dbuser = "guest"; // Имя пользователя $dbpassword = "mypassword"; // Пароль $dbname = "database"; // Имя базы данных // Подключаемся к MySQL серверу $link = mysql_connect($dbhost, $dbuser, $dbpassword); if (false === $link) die ('Error database connect< br>'); // Выбираем нашу базу данных $select_result = mysql_select_db($dbname, $link); if (false === $select_result) die ('Error database select< br>'); // Создаём таблицу customer с помощью SQL-запроса $query = "create table customer (id int(2) primary key auto_increment, name varchar(100), tel varchar(20))"; $query_result = mysql_query($query, $link); if (false === $query_result) die ('Error database SQL query< br>'); // Закрываем соединение $close_result = mysql_close($link); if (false === $close_result) die ('Error database close< br>'); ?>
Функция mysql_connect() возвращает идентификатор соединения. Этот идентификатор необходимо указывать во всех функциях MySQL.