SELECT * FROM Vzakladke.net

Статьи об автоматизации и программировании

Динамичное создание таблиц HTML на основе запроса MySQL для PHP

 

 

Задача создания таблицы в HTML динамически на основе запроса MySQL для PHP на самом деле совсем не сложна в реализации. Начнем с того, что необходимо установить соединение с базой данных:

Подключаем конфиг, который будет хранить значение переменных DB_NAME, DB_HOST, DB_USER, DB_PASSWORD:

require('config.php'); 

Соединяемся с базой данных и делаем запрос к таблице например messages - и вытаскиваем оттуда например каких-нибудь 5 строк.

А далее вместо простого перебора мы лучше напишем функцию displayTable

 

 
require('config.php');
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD)
        or die("Could not connect: " . mysql_error());
$db = mysql_select_db(DB_NAME, $link);
mysql_query("set names utf8");
$query="SELECT * FROM messages LIMIT 5";
 // $results = mysql_query($query);
 // while ($myrows = mysql_fetch_array($results)){
 // echo $myrows["name"];
 // }

function displayTable($query = ""){
    $table = '';
    $sql = mysql_query($query);
    $table .= '<table>';
    $table .= '<tr>';
    while($field = mysql_fetch_field($sql)){
        $table .= '<th>'.$field->name.'</th>';
    }
    $table .= '</tr>';
    while($row = mysql_fetch_assoc($sql)){
        $table .= '<tr>';
        foreach($row as $key => $item){
            $table .= '<td style="padding-right:50px;">'.($item).'</td>';
        }
        $table .= '</tr>';
    }
    $table .= '</table>';
    return $table;
}
echo displayTable($query);

 

Как видим из кода мы воспользовались функцией вместо обычного получения результата в массив и перебора результата запроса. Таким образом мы сможем вызывать эту функцию множество раз в коде не переписывая все эти строки программирования каждый раз.

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

Дата публикации: 2015-06-21 15:11:20

PHP

0

Отзывы:

Ваше имя:

Ваш e-mail (необязательно):

Сообщение:

Captcha