使用MySQL 和PHP 建立動態HTML 表
您可能遇到需要建立填充來自MySQL 的數據但表的列標題經常更改。手動更新程式碼以反映這些變更可能很乏味。這是一個從MySQL 資料動態產生HTML 表的解決方案,無需手動指定標頭:
MySQLi 解決方案:
範例:
<?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中文網其他相關文章!