我正在获取数据库表头和数据的名称,如下所示:
/* 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输出的名称自动生成数据?
答案 0 :(得分:1)
在您要显示每行数据的代码中,您可以foreach()
上方的$columns
,然后使用列名作为用户数据的索引...
echo '<tr>';
foreach ( $columns as $column ) {
echo '<td>'.$user[$column].'</td>';
}
echo '</tr>';