- Пример использования циклов: отрисовка HTML таблицы на PHP
- Приступим
- Fetch Data From Database in PHP and Display in HTML Table
- 1) Basic Program using Loop
- 2) Using Ajax
- 3) Using Data Table
- Вывод HTML-таблицы с функцией сортировки на PHP + MySQL
- Вывод:
- Результат:
- Сортировка в шапке таблицы
- Вывод:
- Результат:
- Сортировка в виде списка
- Вывод:
- Сортировка полем select
- Вывод:
Пример использования циклов: отрисовка 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. Балуйтесь, как хотите, это полезно для опыта. Спасибо за внимание, и приятных вам выходных!
Fetch Data From Database in PHP and Display in HTML Table
There are few methods using which you can use fetch data from database in PHP and display it into HTML table. In this tutorial, we have explained the following method to fetch data from database in PHP and display it into an HTML table.
1) Basic Program using Loop
else < $selectQuery = "SELECT * FROM `tbl_users` ORDER BY `user_id` ASC"; $result = mysqli_query($connectQuery,$selectQuery); if(mysqli_num_rows($result) >0)< >else < $msg = "No Record found"; >> ?> Display user list using HTML and PHP
Name Email Status Registrating Date else < echo "Deactive"; >?> ?>
2) Using Ajax
Display user list using HTML and PHP
Name Email Registrating Date
else < $selectQuery = "SELECT * FROM `tbl_users` ORDER BY `user_id` ASC"; $result = mysqli_query($connectQuery,$selectQuery); if(mysqli_num_rows($result) >0) < $result_array = array(); while($row = mysqli_fetch_assoc($result))< array_push($result_array, $row); >> echo json_encode($result_array); > ?>
3) Using Data Table
table, td, th < border: 1px solid #ddd; text-align: left; >table < border-collapse: collapse; width: 100%; >th, td Display user list using HTML and PHP
Name Email Registrating Date
else < $selectQuery = "SELECT * FROM `tbl_users` ORDER BY `user_id` ASC"; $result = mysqli_query($connectQuery,$selectQuery); if(mysqli_num_rows($result) >0) < $result_array = array(); while($row = mysqli_fetch_assoc($result))< array_push($result_array, $row); >> $results = ["sEcho" => 1, "iTotalRecords" => count($result_array), "iTotalDisplayRecords" => count($result_array), "aaData" => $result_array ]; echo json_encode($results); > ?>
- Learn PHP Language
- PHP Interview Questions and Answers
- PHP Training Tutorials for Beginners
- Display Pdf/Word Document in Browser Using PHP
- Call PHP Function from JavaScript
- Call a JavaScript Function from PHP
- PHP Pagination
- Alert Box in PHP
- Php Count Function
- PHP Filter_var ()
- PHP array_push Function
- strpos in PHP
- PHP in_array Function
- PHP strtotime() function
- PHP array_merge() Function
- explode() in PHP
- implode() in PHP
- PHP array_map()
- Tutorials
- Learn PHP Language
- PHP Interview Questions and Answers
- PHP Training Tutorials for Beginners
- Display Pdf/Word Document in Browser Using PHP
- Call PHP Function from JavaScript
- Call a JavaScript Function from PHP
- PHP Pagination
- Alert Box in PHP
- Php Count Function
- PHP Filter_var ()
- PHP array_push Function
- strpos in PHP
- PHP in_array Function
- PHP strtotime() function
#3940 Sector 23,
Gurgaon, Haryana (India)
Pin :- 122015
- Write for us
- Career Guidance Tool
- SAP Transaction Codes
- Sample Resume
- Institutes
- SAP PDF Books
- Classifieds
- Recent Articles
- Contact Us
- About Us
- Terms of Use
- Privacy Policy
- Cookies Policy
Вывод HTML-таблицы с функцией сортировки на PHP + MySQL
Несколько примеров как вывести данные из БД в таблицу и добавить к ней возможность сортировки.
Итак, простой вывод таблицы и базы:
prepare("SELECT * FROM `tours` ORDER BY `hotel`"); $sth->execute(); $list = $sth->fetchAll(PDO::FETCH_ASSOC);
Вывод:
Заезд Отель Курорт Тип номера Питание Цена EUR
Результат:
Основной принцип пользовательской сортировки основан на GET параметрах, к ссылке в href добавляется параметр ?sort=xxx со значением текущей сортировки. PHP-скрипт его получает, проверяет и подставляет в SQL-запрос.
Далее рассмотрим его детально на нескольких примерах:
Сортировка в шапке таблицы
Заведем массив $sort_list с ключами и вариантами сортировки, чтобы упростить вывод ссылок заведем функцию sort_link_th() , которая будет их формировать исходя из значения переменной $_GET[‘sort’] .
'`date`', 'date_desc' => '`date` DESC', 'hotel_asc' => '`hotel`', 'hotel_desc' => '`hotel` DESC', 'city_asc' => '`city`', 'city_desc' => '`city` DESC', 'type_asc' => '`type`', 'type_desc' => '`type` DESC', 'food_asc' => '`food`', 'food_desc' => '`food` DESC', 'price_asc' => '`price`', 'price_desc' => '`price` DESC', ); /* Проверка GET-переменной */ $sort = @$_GET['sort']; if (array_key_exists($sort, $sort_list)) < $sort_sql = $sort_list[$sort]; >else < $sort_sql = reset($sort_list); >/* Запрос в БД */ $dbh = new PDO('mysql:dbname=db_name;host=localhost', 'логин', 'пароль'); $sth = $dbh->prepare("SELECT * FROM `tours` ORDER BY "); $sth->execute(); $list = $sth->fetchAll(PDO::FETCH_ASSOC); /* Функция вывода ссылок */ function sort_link_th($title, $a, $b) < $sort = @$_GET['sort']; if ($sort == $a) < return '' . $title . ' ▲'; > elseif ($sort == $b) < return '' . $title . ' ▼'; > else < return '' . $title . ''; > >
Вывод:
Результат:
Сортировка в виде списка
Преведущий код немного переделан:
'`date`', 'date_desc' => '`date` DESC', 'hotel_asc' => '`hotel`', 'hotel_desc' => '`hotel` DESC', 'city_asc' => '`city`', 'city_desc' => '`city` DESC', 'type_asc' => '`type`', 'type_desc' => '`type` DESC', 'food_asc' => '`food`', 'food_desc' => '`food` DESC', 'price_asc' => '`price`', 'price_desc' => '`price` DESC', ); /* Проверка GET-переменной */ $sort = @$_GET['sort']; if (array_key_exists($sort, $sort_list)) < $sort_sql = $sort_list[$sort]; >else < $sort_sql = reset($sort_list); >/* Запрос в БД */ $dbh = new PDO('mysql:dbname=db_name;host=localhost', 'логин', 'пароль'); $sth = $dbh->prepare("SELECT * FROM `tours` ORDER BY "); $sth->execute(); $list = $sth->fetchAll(PDO::FETCH_ASSOC); /* Функция вывода ссылок */ function sort_link_bar($title, $a, $b) < $sort = @$_GET['sort']; if ($sort == $a) < return '' . $title . ' ↑'; > elseif ($sort == $b) < return '' . $title . ' ↓'; > else < return '' . $title . ''; > >
Вывод:
Заезд Отель Курорт Тип номера Питание Цена EUR
Сортировка полем select
Во этом примере управление сортировкой будет производится с помощью , при его изменении отправляется форма c выбранным ключом сортировки .
'`date`', 'type' => '`type`', 'food' => '`food`', 'price_asc' => '`price`', 'price_desc' => '`price` DESC', ); /* Проверка GET-переменной */ $sort = @$_GET['sort']; if (array_key_exists($sort, $sort_list)) < $sort_sql = $sort_list[$sort]; >else < $sort_sql = reset($sort_list); >/* Запрос в БД */ $dbh = new PDO('mysql:dbname=db_name;host=localhost', 'логин', 'пароль'); $sth = $dbh->prepare("SELECT * FROM `tours` ORDER BY "); $sth->execute(); $list = $sth->fetchAll(PDO::FETCH_ASSOC);
Вывод:
Заезд Отель Курорт Тип номера Питание Цена EUR