gpt4 book ai didi

php - 选择 MySQL 行值作为列标题?

转载 作者:行者123 更新时间:2023-11-29 09:13:36 25 4
gpt4 key购买 nike

我正在尝试为我的 CMS 制作一个可自定义且可扩展的配置文件系统。从用户的角度来看,这很简单,但对于管理员来说,我希望所有数据(包括个人资料数据)都是可搜索的。个人资料字段可以通过“插件”添加,这也可以添加新的字段进行搜索。我不知道我尝试使用 MySQL 来完成这项工作是否可行,或者我是否采用了完全错误的方式。

因此,我将用户存储在一张表(users)中,其中包含 id、电子邮件、密码和 access_level 列。

然后我有另一个表,其中包含配置文件信息(配置文件),存储为 user_id、参数和值。该参数最终可能会再次放入单独的表中(因此它不会重复),但现在我将像这样保留它。

参数和值基本上是配置文件数据。例如,参数可以是“年龄”,值可以是“22”。

我想要尝试做的是选择用户表,并加入个人资料信息,以便将参数映射到附加列。所以它最终就像这样,直接来自 MySQL:

id    email    password    access_level   age
1 a@a.com ***** 1 22
2 b@b.com ***** 2 25
3 c@c.com ***** 2 25

我整个下午都在查看数据透视表,但从所有内容中我可以看到“列名称”是预先定义的。在本例中,我希望“列名称”来自行本身。

如果无法通过单个查询来完成,还有哪些其他方法?如果最好的方法是通过 PHP 来实现的话,我正在使用 PHP。

如有任何建议,我们将不胜感激。 :)

最佳答案

好吧,如果你需要提前知道列名,你可以查询information_schema数据库:

SELECT COLUMN_NAME
FROM information_schema.COLUMNS
WHERE TABLE_NAME='your table'

但是,这会获取原始列名称。如果您在查询中使用别名,则必须间接获取它们:

SELECT somefield AS alias1, otherfield AS alias2
FROM ...

然后

$stmt = mysql_query($query);
$first = true;
while($row = mysql_fetch_assoc($stmt)) {
if ($first) {
$column_names = array_keys($row);
... display column names here
$first = false;
}
... output row here
}

关于php - 选择 MySQL 行值作为列标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4807231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com