ホームページ >データベース >mysql チュートリアル >ヘッダーを手動で指定せずに、MySQL データから HTML テーブルを動的に生成するにはどうすればよいですか?

ヘッダーを手動で指定せずに、MySQL データから HTML テーブルを動的に生成するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-04 02:11:10196ブラウズ

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

MySQL と PHP を使用した動的 HTML テーブルの作成

MySQL からのデータが入力された HTML テーブルを作成する必要がある状況に遭遇したことがあるかもしれません。ただし、テーブルの列ヘッダーは頻繁に変更されます。これらの変更を反映するためにコードを手動で更新するのは面倒な場合があります。ここでは、手動のヘッダー指定を必要とせずに、MySQL データから HTML テーブルを動的に生成するソリューションを示します:

MySQLi ソリューション:

  1. データベースに接続する: mysqli_connect() を使用して MySQL 接続を確立し、 charset.
  2. データをテーブルに出力する関数を定義します: データベース接続とテーブル名を入力として受け取る関数を作成します。
  3. table contains: SHOW TABLES を使用して入力テーブルが存在するかどうかを検証します。 query.
  4. テーブル データの取得: テーブルからすべてのデータを取得するには、SELECT * FROM $table を使用します。
  5. 列メタデータの取得: 列を取得しますfetch_fields() を使用した情報。
  6. HTML の作成table: でテーブルを開始します。タグを追加し、 を生成します。そして の各行を表示します。そして
    列ヘッダーの要素。
  7. テーブル行を設定: データを反復処理し、
  8. タグ。
  9. テーブルを終了: <テーブル> を閉じます。タグ。
  10. 例:

    <?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 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。