PHP 및 MySQL을 사용하여 HTML에서 테이블을 구성하는 방법을 설명하는 게시물이 있음에도 불구하고 이후 MySQL 열 헤더가 자주 변경됩니다. 테이블 생성은 번거로울 수 있습니다. 이 기사에서는 PHP 코드를 자동으로 업데이트하여 테이블 이름을 지정하고
$table = "user"; $database = "database"; $conn = mysqli_connect("localhost", "username", "password", "database", "3306"); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT * FROM $table"; $result = $conn->query($sql); if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { echo "<tr><td>" . $row["id"] . "</td><td>" . $row["first_name"] . "</td><td>" . $row["last_name"] . "</td><td>" . $row["birthday"] . "</td></tr>"; } echo "</table>"; } else { echo "0 result"; } $conn->close();
프로세스를 단순화하기 위해 이러한 작업을 동적으로 수행하는 함수를 생성할 수 있습니다. 테이블 존재 여부를 확인하고, 데이터를 가져와서 헤더가 포함된 HTML 테이블을 생성합니다.
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); $conn = mysqli_connect("localhost", "username", "password", "database", "3306"); $mysqli->set_charset('utf8mb4'); // always set the charset function outputMySQLToHTMLTable(mysqli $mysqli, string $table) { // Verify 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!'); } $res = $mysqli->query('SELECT * FROM ' . $table); $data = $res->fetch_all(MYSQLI_ASSOC); echo '<table">'; // Table header echo '<thead>'; echo '<tr>'; foreach ($res->fetch_fields() as $column) { echo '<th' . htmlspecialchars($column->name) . '</th>'; } echo '</tr>'; echo '</thead>'; // Table body 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>'; } outputMySQLToHTMLTable($mysqli, 'user');
$pdo = new PDO("mysql:host=localhost;dbname=test;charset=utf8mb4", 'username', 'password', [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_EMULATE_PREPARES => false ]); function outputMySQLToHTMLTable(pdo $pdo, string $table) { // Verify table existence $tableNames = $pdo->query('SHOW TABLES')->fetchAll(PDO::FETCH_COLUMN); if (!in_array($table, $tableNames, true)) { throw new UnexpectedValueException('Unknown table name provided!'); } $stmt = $pdo->query('SELECT * FROM ' . $table); $data = $stmt->fetchAll(PDO::FETCH_ASSOC); $columnCount = $stmt->columnCount(); echo '<table">'; // Table header echo '<thead>'; echo '<tr>'; for ($i = 0; $i < $columnCount; $i++) { echo '<th' . htmlspecialchars($stmt->getColumnMeta($i)['name']) . '</th>'; } echo '</tr>'; echo '</thead>'; // Table body if ($data) { foreach ($data as $row) { echo '<tr>'; foreach ($row as $cell) { echo '<td' . htmlspecialchars($cell) . '</td>'; } echo '</tr>'; } } else { echo '<tr><td colspan="' . $columnCount . '">No records in the table!</td></tr>'; } echo '</table>'; } outputMySQLToHTMLTable($pdo, 'user');
최적화된 솔루션 보다 효율적인 쿼리를 사용하여 테이블 존재를 확인합니다.
$tableNames = $pdo->prepare('SELECT COUNT(1) FROM information_schema.TABLES WHERE TABLE_SCHEMA = SCHEMA() AND TABLE_NAME=?'); $tableNames->execute([$table]); if (!$tableNames->fetchColumn()) { throw new UnexpectedValueException('Unknown table name provided!'); }
위 내용은 PHP를 사용하여 MySQL 데이터베이스에서 HTML 테이블을 동적으로 생성하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!