Как из базы данных вывести данные в html
Перейти к содержимому

Как из базы данных вывести данные в html

  • автор:

Как вывести данные из БД на страницу html?

5c1037e808bd7994855938.png

база данных находитсяна локальном sql server и имеет несколько таблиц. На рисунке выше красным выделены места, где должны быть данные из БД.

Подключаюсь к базе и могу (даже) вывести в консоль целую

таблицу

5c10390772c83788692702.png

вот такого скрипта

var Connection = require('tedious').Connection; var Request = require('tedious').Request; var express = require('express'); // Create connection to database var config = < server: "localhost", userName: 'bassb', password: '32460101', //driver: "msnodesqlv14", options: < database: "GIBDD", encrypt: false >>; var connection = new Connection(config); connection.on('connect', function (err) < if (err) < console.log(err); >else < queryDatabase(); >> ) //в этой функции я делаю select таблицы и вон, //где "request.on" вывожу в консоль, а мне надо выводить на страницу! function queryDatabase() < request = new Request("SELECT * FROM officers", function (err, rowCount, rows) < console.log(rowCount + ' row(s) returned'); //process.exit(); >); request.on('row', function (columns) < columns.forEach(function (column) < console.log("%s\t%s", column.metadata.colName, column.value); colOfficer.push(column.metadata.colName); valOfficer.push(column.value); >); >); connection.execSql(request); >

Идея есть: данные из БД заносить в массив или объект и уже это передавать на страницу через шаблонизатор(использую ejs, т.к. на него первым наткнулся).
ВОПРОС В ТОМ, КАК ДАННЫЕ ИЗ БД ЗАПИСАТЬ В МАССИВ ИЛИ ОБЪЕКТ, чтобы потом можно было с его помощью выводить на страницу.

Может есть другой какой-то вариант? Покажите пожалуйста пример, как данные из БД передать на страницу.

Код подключения взят здесь

  • Вопрос задан более трёх лет назад
  • 3291 просмотр

Вывод данных из базы в html

Каким образом можно сделать вывод данных из базы в файле html? То есть первым загружается index.html и в нем таблица с данными из БД Обновление Спасибо, сделаю так.

Отслеживать
задан 15 мая 2016 в 10:31
297 3 3 серебряных знака 13 13 бронзовых знаков

Есть возможность назначить файлу html в качестве обработчика интерпретатор PHP, например, средствами Apache?

15 мая 2016 в 10:34
Нет, результат будет отдаваться, никаких манипуляций с сервером не должно быть
15 мая 2016 в 10:37

Если вам подошел один из вариантов ответа, нужно поставить напротив него флажок. это покажет остальным пользователем, что вопрос закрыт.

15 мая 2016 в 10:59

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

UPD: исправился, не сразу понял вопрос.

Создавать этот html средствами php:

http://site/index.php?html=page1 

А чтобы для посетителя это выглядело, как страница html, прописать в .htaccess :

RewriteEngine on RewriteRule ^(.*)\.html$ /index.php?html=$1 [nc] 

И тогда при открытии http://site/page1.html он будет переадресован на http://site/index.php?html=page1

Отслеживать
ответ дан 15 мая 2016 в 10:35
1,349 11 11 серебряных знаков 24 24 бронзовых знака

Каким образом можно сделать вывод данных из базы в файле html?

в настройках apache сервера задать html как разрешение файлов обрабатываемых php

AddType application/x-httpd-php .php .php5 .html 

также можно это сделать с помощью файла .htaccess, Добавьте или отредактируйте существующую строку вида:

AddType application/x-httpd-php .php .phtml .php4 .html 

Урок 20: Получение данных из БД

Теперь настало время запросить данные из нашей БД для наших PHP-страниц.

Это один из наиболее важных уроков данного учебника. Когда вы прочтёте и разберёте этот урок, вы поймёте, почему вэб-решения на основе БД настолько мощны, и ваше представление о вэб-разработке значительно расширится.

SQL-запросы

Для получения данных из БД вы используете запросы. Примером запроса может быть: «получить данные из таблицы ‘people’, отсортированные по алфавиту» или «получить имена из таблицы ‘people'».

Напоминаем, что язык Structured Query Language (SQL) используется для общения с БД. Посмотрим на простой пример:

Получить все данные из таблицы 'people'

В SQL мы запишем:

SELECT * FROM people

Синтаксис говорит сам за себя. Просто читайте и смотрите, как используются SQL-операторы в следующих примерах.

Пример 1: Запрос данных из БД

Этот пример использует БД и таблицу из Урока 19 и Урока 18. Следовательно, прочтите сначала эти уроки.

Данный пример показывает, как данные из таблицы «people» запрашиваются с помощью SQL-запроса.

Этот SQL-запрос возвращает результат в виде серии записей/records. Эти записи хранятся в так называемом наборе Записей/recordset. Набор записей можно охарактеризовать как род таблицы в памяти сервера, содержащей данные (записи), и каждая запись подразделяется на отдельные поля (или столбцы).

документация

Набор данных можно сравнить с таблицей, где каждая запись аналогична ряду таблицы. В PHP мы может пройти по набору записей с помощью циклов и функции mysql_fetch_array, которая возвратит каждый ряд в виде массива.

документация

Следующий код показывает, как использовать mysql_fetch_array для прохода по набору записей:

  Запрос данных из таблицы   // Соединиться с сервером БД mysql_connect("mysql.myhost.com", "user", "sesame") or die (mysql_error ()); // Выбрать БД mysql_select_db("mydatabase") or die(mysql_error()); // SQL-запрос $strSQL = "SELECT * FROM people"; // Выполнить запрос (набор данных $rs содержит результат) $rs = mysql_query($strSQL); // Цикл по recordset $rs // Каждый ряд становится массивом ($row) с помощью функции mysql_fetch_array while($row = mysql_fetch_array($rs))  // Записать значение столбца FirstName (который является теперь массивом $row) echo $row['FirstName'] . "
";
> // Закрыть соединение с БД mysql_close(); ?>

Обратите внимание, как для каждой записи мы получаем содержимое столбца «FirstName», печатая $row[‘FirstName’]. Аналогично мы можем получить содержимое столбца «Phone», печатая $row[‘Phone’], к примеру.

Порядок набора записей точно такой же, как в таблице в БД. Но в следующем уроке мы посмотрим, как сортировать набор записей.

Пример 2: Сортировка данных по алфавиту, хронологически или численно

Часто бывает удобно, когда список или таблица представлены в алфавитном порядке, хронологически или численно. Такая сортировка легко выполняется в SQL, и синтаксис Order By ColumnName используется для сортировки содержимого столбцов.

Возьмём SQL-оператор из предыдущего примера:

strSQL = "SELECT * FROM people" 

Запись может, например, быть отсортирована в алфавитном порядке по первому имени людей:

strSQL = "SELECT * FROM people ORDER BY FirstName" 

Либо хронологически по дате рождения:

strSQL = "SELECT * FROM people ORDER BY BirthDate" 

Сортировка может выполняться по восходящей/ascending или по нисходящей/descending, добавлением DESC:

strSQL = "SELECT * FROM people ORDER BY BirthDate DESC" 

В следующем примере люди сортируются по возрасту:

  Запросить данные из БД   // Соединиться с сервером БД mysql_connect("mysql.myhost.com", "user", "sesame") or die (mysql_error ()); // Выбрать БД mysql_select_db("mydatabase") or die(mysql_error()); // SQL-запрос $strSQL = "SELECT * FROM people ORDER BY BirthDate DESC"; // Выполнить запрос (набор записей $rs содержит результат) $rs = mysql_query($strSQL); // Цикл по набору записей $rs while($row = mysql_fetch_array($rs))  // Записать значение столбцов FirstName и BirthDate echo $row['FirstName'] . " " . $row['BirthDate'] . "
";
> // Закрыть соединение с БД mysql_close(); ?>

Попробуйте самостоятельно изменить этот SQL-оператор и отсортировать записи по имени, фамилии или номеру телефона.

Получение выбранных данных

До сих пор наш SQL-оператор запрашивал все ряды таблицы. Но часто бывает необходимо установить критерии SQL-запроса для выборки данных, например, если нам нужны только те ряды, в которых есть телефонный номер или конкретная фамилия.

Скажем, мы хотим запросить из БД людей, имеющих номер телефона «66554433». Это можно сделать так:

strSQL = "SELECT * FROM people WHERE Phone = '66554433 '" 

В SQL имеется шесть операций сравнения:

= равно
меньше
> больше
меньше или равно
> = больше или равно
!= не равно

Кроме того, имеются логические операции:

AND
OR
NOT

См. в Уроке 6 о настройке условий.

В следующем примере мы используем условия для настройки адресной книги.

Пример 3: Адресная книга

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

Для этого понадобятся два файла — list.php и person.php — с таким кодом:

Код файла list.php

    // Соединиться с сервером БДmysql_connect(«mysql.myhost.com», «user», «sesame») or die (mysql_error ());// Выбрать БДmysql_select_db(«mydatabase») or die(mysql_error());// SQL-запрос$strSQL = «SELECT * FROM people ORDER BY FirstName DESC»;// Выполнить запрос (набор данных $rs содержит результат)$rs = mysql_query($strSQL);// Цикл по $rswhile($row = mysql_fetch_array($rs)) // Иям человека$strName = $row[‘FirstName’] . » » . $row[‘LastName’];// Создать ссылку на person.php с id-value в URL$strLink = «» . $strNavn . «»;// Листинг ссылокecho «
  • » . $strLink . «»;>// Закрыть соединение с БДmysql_close();?>

Код файла person.php

  Запросить данные из БД   
// Соединиться с сервером БД mysql_connect("mysql.myhost.com", "user", "sesame") or die (mysql_error ()); // Выбрать БД mysql_select_db("mydatabase") or die(mysql_error()); // Получить данные из БД, в зависимости от значения id в URL $strSQL = "SELECT * FROM people WHERE id"]; $rs = mysql_query($strSQL); // Цикл по $rs while($row = mysql_fetch_array($rs)) // Записать данные человека echo "
Name:
" . $row["FirstName"] . " " . $row["LastName"] . "
";
echo "
Phone:
" . $row["Phone"] . "
";
echo "
Birthdate:
" . $row["BirthDate"] . "
";
> // Закрыть соединение с БД mysql_close(); ?>

Return to the list

Пример с адресной книгой достаточно прост, но показывает потенциал возможностей при работе с РНР и базами данных.

Представьте, что БД содержит 10,000 продуктов с детальным описанием. Сделав небольшие изменения в предыдущие файлы, вы легко создадите каталог продукции с более чем 10,000 страниц при помощи лишь одной базы данных и двух РНР-файлов.

Добро пожаловать в мир огромных вэб-сайтов, которые легко разрабатывать и обслуживать! Если вы освоили работу с БД, ваши вэб-решения уже никогда не будут прежними.

Вывод 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *