Отображение результата запроса в HTML-таблице в PHP - PullRequest
2 голосов
/ 24 февраля 2010

Мне нужно отобразить таблицу на веб-странице. Данные из таблицы поступают из базы данных, к которой я могу обратиться с помощью библиотеки MySQL php. Я ищу шаблон / пример того, как придумать красивую таблицу (я не очень хорош в дизайне интерфейса).

Любая ссылка / пример / ссылки будут оценены.

Ответы [ 5 ]

5 голосов
/ 24 февраля 2010

Вот пример того, как читать таблицу MySQL в таблицу HTML. И нет, это не выглядит красиво.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>Read values from MySQL</title>
    </head>
    <body>
        <?
            mysql_connect($db_host,$db_user,$db_pw);
            mysql_select_db($db_name);
        ?>
        <table border="1">
            <tbody>
                <?
                    $result = mysql_query("SELECT firstname, lastname FROM persons")
                        OR die(mysql_error());
                    while($row = mysql_fetch_assoc($result)) {
                        echo '<tr><td>' . $row['firstname'] . '</td><td>' . $row['lastname'] . '</td></tr>';
                    }
                ?>
            </tbody>
        </table>
    </body>
</html>
4 голосов
/ 24 февраля 2010

Что-то вроде это , если вы просто хотите внешний интерфейс.

0 голосов
/ 19 июня 2012

Вот функция, которая принимает mysqli результат запроса и возвращает таблицу HTML с заголовками и данными.

<?php
    function mysqli_result_2_table( $query_result, $width = '100%' ) {

        $nrows = mysqli_num_rows($query_result);

        if( $nrows > 0 ) {

            $table = '<table style="width:' . $width . '"><thead><tr style="background-color:#ccc;color:#000;">';
            $nfields = mysqli_num_fields($query_result);
            while( $field = mysqli_fetch_field( $query_result ) ) {     
                $table .= '<th>' . ucfirst($field->name) . '</th>'; 
            }
            $table .= '</tr></thead><tbody>';

            $even = true;
            while( $row = mysqli_fetch_assoc($query_result) ) {

                $table .= '<tr style="' . ($even ? 'background-color:#eee' : 'background-color:#ddd') . '">';
                $even = !$even;
                foreach($row as $field => $value) {
                    $table .= '<td>' . $value . '</td>';
                }
                $table .= '</tr>';
            }
            $table .= '</tbody><tfoot><tr style="background-color:#ccc;color:#000"><td colspan="' . $nfields . '">Query returned ' . $nrows . ' records.</td></tr></tfoot></table>';
        }
        else { echo '<p>Query returned an empty result (no rows).</p>'; }

        return $table;
    }

?>

Я довольно сильно изменил его, но вот исходный источник для справки: sql query -> html table?!

0 голосов
0 голосов
/ 24 февраля 2010

Предполагая, что ваши строки представляют собой массив объектов PHP ...

echo '<table>';
foreach ($rows as $row) {
    echo '    <tr>';
    echo '        <td>'.$row->column_1.'</td>';
    // etc.
    echo '    </tr>';
}
echo '</table>';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...