PDO将表头与数据结合起来

时间:2018-10-13 16:10:38

标签: php pdo foreach html-table

我正在获取数据库表头和数据的名称,如下所示:

/* 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输出的名称自动生成数据?

1 个答案:

答案 0 :(得分:1)

在您要显示每行数据的代码中,您可以foreach()上方的$columns,然后使用列名作为用户数据的索引...

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