Работа с таблицей php

Пример использования циклов: отрисовка HTML таблицы на PHP

Заметка: активирована адаптивная версия сайта, которая автоматически подстраивается под небольшой размер Вашего браузера и скрывает некоторые детали сайта для удобства чтения. Приятного просмотра!

Здравствуйте уважаемые читатели блога Site on! В прошлой статье мы рассмотрели всё о циклах в PHP, но для закрепления полученных теоритических материалов, предлагаю выполнить практическую задачу, которая довольно часто встречается в повседневной жизни разработчика сайтов.

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

Чтобы понять, как это делается, сегодня мы решим такую простую задачу, как создание таблицы умножения:

таблица умножения

Приступим

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

алгоритм

Как видим из рисунка, тег table встречается всего 1 раз, поэтому он явно должен быть вне цикла. Повторяется у нас только строка (tr) и внутри неё ячейки, они же столбцы (td). Всё, больше у нас ничего не повторяется.

Теперь нужно решить, какой цикл лучше использовать для данной задачи. Это классический вариант и лучшим решением будет цикл for, хотя можно использовать и while, если вы к нему привыкли больше. Но нам понадобится не один цикл, а два: первый будет рисовать и считать строки (tr), а второй столбцы (td).

// количество строк, tr $cols = 20; // количество столбцов, td echo ''; for ($tr=1; $tr// в этом цикле счётчик $tr // следит за количеством строк и всегда равен текущему номеру строки. // То есть в начале $tr=1, так как в начале у нас 1 строка, затем // каждый раз прибавляем единицу, пока не дойдём до заданного количества // $rows. echo ''; for ($td=1; $td// в этом цикле счётчик $td аналогичен // счётчику $tr. echo ''; > echo ''; > echo '
'. $tr*$td .'
'; ?>

результат

В первом цикле мы отрисовываем tr, внутри него td. Этот код можно было бы назвать идеальным шаблоном отрисовки любой таблицы, но я знаю, как сделать ещё лучше. Незачем каждый раз напрягать PHP и делать вывод на экран (echo) после каждой итерации, гораздо лучше поместить всё в одно место (переменную) и сделать echo в самом конце, один единственный раз:

// количество строк, tr $cols = 20; // количество столбцов, td $table = ''; for ($tr=1; $tr'; for ($td=1; $td'. $tr*$td .''; > $table .= ''; > $table .= '
'; echo $table; // сделали эхо всего 1 раз ?>

Для этого мы использовали оператор .= присвоение через конкатенацию. Результат будет точно таким же. Но это ещё не всё. Нам нужно привести нашу таблицу к виду, как на самом первом рисунке в этой статье. То есть сделать первую строку и столбец полужирным и поставить зелёный фон. Такого результата можно добиться двумя способами:

  • С помощью CSS3 (правильный способ);
  • С помощью PHP (неправильный способ, но возьмём его, так как в этом разделе учим PHP);

Итак, делаем с помощью PHP:

// количество строк, tr $cols = 20; // количество столбцов, td $table = ''; for ($tr=1; $tr'; for ($td=1; $td'. $tr*$td .''; // вычислили первую строку или столбец >else< $table .= ''; // все ячейки, кроме ячеек из первого столбца и первой строки > > $table .= ''; > $table .= '
'. $tr*$td .'
'; echo $table; // сделали эхо всего 1 раз ?>

Красота 🙂 Можете выводить таблицу хоть 100 на 100. Балуйтесь, как хотите, это полезно для опыта. Спасибо за внимание, и приятных вам выходных!

Источник

PHP: работа с БД MySQL

PHP: работа с БД MySQL

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

Их используют для:

  1. Регистрации и авторизации на сайте (хранят регистрационные данные).
  2. Хранения статей и комментариев к ним.
  3. Организации поиска по веб-сайту.

В этой статье мы научимся вставлять, изменять, получать и защищать данные из БД MySQL, используя PHP.

Есть несколько вариантов подключения к базе данных MySQL, но самые лучшие варианты — mysqli и PDO .

Основная разница в том, что PDO может работать с огромным количеством баз данных: MySQL, Cubrid, Oracle, SQlite и так далее. А mysqli может работать только с MySQL.

В своей статье я покажу, как работать с PDO.

Примеры показывать буду на локальном сервере ( xampp ).

Создание БД и таблиц

Создать БД можно из панели управления хостингом, если есть такая возможность, а если нет, то из phpMyAdmin. Сравнение ставим utf8_general_ci.

Заходим в БД и создадим таблицу users , которую будем использовать для примера. Она будет включать колонки: ID(int) , login(varchar) и pass(varchar) . ID будет первичным ключом, а также будет иметь галочку напротив AI(auto increment), что позволит каждой новой записи присваивать id на 1 больше, чем у прошлой записи. Кроме этого, не забываем проставить длину varchar ’ам и поставить сравнение utf8_general_ci к полям login и pass .

База данных

Теперь мы имеем готовую БД и таблицу для работы с ней.

Подключение к БД с помощью PHP

Создаём файл index.php и прописываем:

 $user = 'root'; // пользователь $password = ''; // пароль $db = 'mydb'; // название бд $host = 'localhost'; // хост $charset = 'utf8'; // кодировка // Создаём подключение $pdo = new PDO("mysql:host=$host;dbname=$db;cahrset=$charset", $user, $password); ?>

Мы создали подключение к БД. Подключение от PDO не нужно закрывать, оно само закрывается, когда скрипт завершает свою работу.

Выборка данных

Здесь я сделаю небольшое отступление. Выбирать данные можно:

PDO::FETCH_ASSOC — возвращает массив с названиями столбцов в виде ключей.

PDO::FETCH_OBJ — возвращает анонимный объект со свойствами, соответствующими именам столбцов.

Fetch() — каждый раз извлекает следующую строку.

Продолжаем скрипт:

// Создаём запрос $query = $pdo -> query('SELECT * FROM users'); // Перебираем способом ассоциативного массива while ($row = $query->fetch(PDO::FETCH_ASSOC))  echo $row['login']."
";
>

Здесь мы обращаемся к массиву $row по индексу login.

В данном случае код выведет логин всех, кто есть в таблице.

// Перебираем способом объекта while ($row = $query->fetch(PDO::FETCH_OBJ))  echo $row->login."
";
>

Здесь мы обращаемся к объекту $row по login.

В данном случае код выведет также логин всех, кто есть в таблице.

Выборка данных по параметру + защита

Мы можем выбирать определённые данные из таблицы. Например, мы можем выбрать все записи, где pass = 123, и тому подобные.

Вот первый пример выборки по логину + защита:

$login = 'Andre'; // Подставиться вместо знака вопроса $sql = 'SELECT * FROM users WHERE login = ?'; // Формируем запрос $query = $pdo -> prepare($sql); // Возвращает объект $query -> execute([$login]); // В скобках указываем то, что заменит знак вопроса. // Также перебираем массив, но теперь в массиве только те строки, где login = Andre while ($row = $query->fetch(PDO::FETCH_ASSOC))  echo $row['id']; > 

Можно указать несколько вопросительных знаков, а в execute перечислить замены для них через запятую.

Вот второй пример выборки по логину + защита:

$login = 'Andre'; // Подставится вместо :login // Формируем запрос с помощью ключа $sql = 'SELECT * FROM users WHERE login = :login'; $query = $pdo -> prepare($sql); // Возвращает объект // В кавычках нужно указать ключ, который мы указали в запросе. // А после передать значение, которое должно подставится. $query -> execute(['login' => $login]); // Также перебираем массив, но теперь в массиве только те строки, где login = Andre while ($row = $query->fetch(PDO::FETCH_ASSOC)) echo $row['id']; >

Можно указать несколько ключей, а в execute перечислить замены для них через запятую в формате ‘ключ’ => значение .

Второй способ использовать предпочтительнее, так как читаемость и понятность кода более понятна, чем в первом примере, но использовать можно два способа.

Вставка данных по параметру + защита

$login = 'Lorem'; // Подставиться вместо :login $pass = 444; // Подставиться вместо :pass // Формируем запрос с помощью ключей $sql = 'INSERT INTO users (login, pass) VALUES (:login, :pass)'; $query = $pdo -> prepare($sql); // Возвращает объект // В кавычках нужно указать ключи, которые мы указали в запросе. // А после передать значение, которое должно подставится. $query -> execute(['login' => $login, 'pass' => $pass]);

Теперь можем проверить таблицу. Видим, что всё сработало правильно.

Обновление данных по параметру + защита

$id = 7; // Подставиться вместо :id $pass = 222; // Подставиться вместо :pass // Формируем запрос с помощью ключей $sql = 'UPDATE users SET pass = :pass WHERE '; $query = $pdo -> prepare($sql); // Возвращает объект // В кавычках нужно указать ключи, которые мы указали в запросе. // А после передать значение, которое должно подставится. $query -> execute(['pass' => $pass, 'id' => $id]);

Теперь можем проверить таблицу. Видим, что всё сработало правильно.

Заключение

Как видите, работать с PDO довольно легко. Теперь вы сами можете создавать веб-сайты с базами данных.

Надеюсь, что вам понравилась статья, и вы получили новые знания.

Всем спасибо за внимание!

Источник

Читайте также:  Java lang outofmemoryerror unable to create new native thread
Оцените статью