首页 > 解决方案 > PDO 将表头与数据结合起来

问题描述

我得到这样的数据库表头和数据的名称:

/* Get column names */
public function get_head($table) 
{
    $this->table = $table;
    $query = $this->conn->prepare("DESCRIBE ".$this->table);
    $query->execute();
    return $query->fetchAll(PDO::FETCH_COLUMN);
}

/* List all users */
public function get_users($table) 
{
    $this->table = $table;
    $query = $this->conn->prepare("SELECT * FROM ".$this->table);
    $query->execute();
    return $query->fetchAll();
}

它们的输出如下:

<table border=1>

<?php 

// Get headers
$columns = $user->get_head('login');

foreach ($columns as $col) 
{
    echo '<th>'.$col.'</th>';
}

// Get users
$users = $user->get_users('login');

foreach ($users as $user) 
{
    echo '<tr>';
    echo '<td>'.$user['user_id'].'. </td>';
    echo '<td>'.$user['user_name'].'</td>';
    echo '<td>'.$user['email'].'</td>';
    echo '<td>'.$user['password'].'</td>';
    echo '<td>'.$user['role'].'</td>';
    echo '<td>'.$user['last_login_date'].'</td>';
    echo '<td>'.$user['date_created'].'</td>';
    echo '<td>'.$user['status'].'</td>';
    echo '</tr>';
}

?>

如何编写第二个 foreach 以根据表头的第一个 foreach 输出的名称自动生成数据?

标签: phppdoforeachhtml-table

解决方案


在要显示每一行数据的代码中,您可以foreach()覆盖$columns并使用列名作为用户数据的索引...

        echo '<tr>';
        foreach ( $columns as $column ) {
            echo '<td>'.$user[$column].'</td>';
        }
        echo '</tr>';

推荐阅读