首頁 > 資料庫 > mysql教程 > 如何在不手動指定標頭的情況下從 MySQL 資料動態產生 HTML 表?

如何在不手動指定標頭的情況下從 MySQL 資料動態產生 HTML 表?

Linda Hamilton
發布: 2024-12-04 02:11:10
原創
196 人瀏覽過

How Can I Dynamically Generate HTML Tables from MySQL Data Without Manually Specifying Headers?

使用MySQL 和PHP 建立動態HTML 表

您可能遇到需要建立填充來自MySQL 的數據但表的列標題經常更改。手動更新程式碼以反映這些變更可能很乏味。這是一個從MySQL 資料動態產生HTML 表的解決方案,無需手動指定標頭:

MySQLi 解決方案:

  1. 連接到資料庫:使用mysqli_connect()建立MySQL連線並設定字元集。
  2. 定義一個函數,將資料輸出到表:建立一個以資料庫連接和表名作為輸入的函數。
  3. 檢查是否表存在:使用SHOW TABLES驗證輸入表是否有查詢。
  4. 取得表格資料:使用 SELECT * FROM $table 擷取表格中的所有資料。
  5. 取得列元資料:取得資料列使用 fetch_fields() 取得資訊。
  6. 建立 HTML 表格:啟動表格與 標籤,然後產生 ; 列標題的元素。
  7. 填充表行:迭代資料並在 中顯示每一行和
  8. 結束表格:關閉 ;
  9. 範例:

    <?php
    
    // Create a MySQLi connection
    $mysqli = new mysqli('localhost', 'username', 'password', 'database');
    
    function outputMySQLToHTMLTable(mysqli $mysqli, string $table)
    {
        // Check table existence
        $tableNames = array_column($mysqli->query('SHOW TABLES')->fetch_all(), 0);
        if (!in_array($table, $tableNames, true)) {
            throw new UnexpectedValueException('Unknown table name provided!');
        }
    
        // Fetch data and metadata
        $res = $mysqli->query('SELECT * FROM ' . $table);
        $data = $res->fetch_all(MYSQLI_ASSOC);
    
        echo '<table>';
        // Display table header
        echo '<thead>';
        echo '<tr>';
        foreach ($res->fetch_fields() as $column) {
            echo '<th>' . htmlspecialchars($column->name) . '</th>';
        }
        echo '</tr>';
        echo '</thead>';
    
        // Display table rows
        if ($data) {
            foreach ($data as $row) {
                echo '<tr>';
                foreach ($row as $cell) {
                    echo '<td>' . htmlspecialchars($cell) . '</td>';
                }
                echo '</tr>';
            }
        } else {
            echo '<tr><td colspan="' . $res->field_count . '">No records in the table!</td></tr>';
        }
        echo '</table>';
    }
    
    // Output the table
    outputMySQLToHTMLTable($mysqli, 'user');
    登入後複製

    PDO 解:

    PDO 方法類似,但您需要使用fetchAll(PDO::FETCH_COLUMN) 進行表名驗證和getColumnMeta()取得列元資料。

    這種方法可以確保您的程式碼可以根據 MySQL 中最新的表結構動態產生 HTML 表格,從而無需手動更新表頭。

以上是如何在不手動指定標頭的情況下從 MySQL 資料動態產生 HTML 表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板