php - 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 输出的名称自动生成数据?
解决方案
在要显示每一行数据的代码中,您可以foreach()
覆盖$columns
并使用列名作为用户数据的索引...
echo '<tr>';
foreach ( $columns as $column ) {
echo '<td>'.$user[$column].'</td>';
}
echo '</tr>';
推荐阅读
- amazon-emr - 使用 spark sql 的 aws 胶水滴分区
- node.js - 静态路由文件,除了 express 中的一个文件
- laravel - 如何使用 bunnycdn laravel 模块?
- c# - 是否可以像这样定制列表视图?
- javascript - 在聚合物中导入样式表
- image - 图像存储性能反应原生(base64 与 uri 路径)
- makefile - 启用 make 以扩展用户提供的宏
- python-sphinx - 使用 Sphinx 自动汇总时抑制变量扩展
- javascript - JS 实例化或推送到 Arr
- tensorflow - Tensorflow/Keras - 从通道重新组装 RAW