【问题标题】:Database Based Templating System基于数据库的模板系统
【发布时间】:2011-10-11 20:21:17
【问题描述】:

作为我正在编写的脚本的一部分,我想添加一个模板系统,其中的变量来自这样的数据库表:

id int auto_increment primary key, 
name varchar(200) not null, 
value float(6,2) not null

我的问题是:

1- 在编辑页面时,我无法找到一种便于用户显示这些变量的方法,而且我不知道会有多少变量,因此我无法添加多合一表单。

2- 我不知道应该如何将变量保存到数据库中(我希望保存变量的引用而不是它的值,所以当它在表上更新时,所有使用它的页面都会有新值)...但是当有人在编辑时第一次查看页面时,使用变量 number 似乎并不清楚它所包含的内容。

3- 我应该使用 preg_replace 之类的东西来替换这些变量还是有更好的方法来做到这一点?

【问题讨论】:

  • 3:不,您当然不应该使用正则表达式来执行纯字符串替换。
  • 您的第二点不太合理。如果该表中 ID 为 15 的行的值为 3,14(实际上,将 float(6, 2) 更改为 decimal(6, 2)),那么在您选择第 15 行并在页面上显示其值的任何地方,它将是 3,14。如果您随后更新其值,所有请求该值的页面都将显示新值。
  • @ThiefMaster 有什么更好的方法来做到这一点?我在下面的 cmets 中进一步解释了我的要求,因为我注意到我的问题不是很清楚。

标签: php mysql template-engine


【解决方案1】:

如果我正确理解您的问题,您是否正在寻找一种从数据库中提取列定义的方法,以针对数据库表中定义的字段构建 Web 表单?如果是这种情况,您可以轻松获得结构

SHOW COLUMNS 
FROM database-table

最好使用 information_schema 数据库(自 MySQL 5.x 起可用),因为您不必从中解析任何内容:

SELECT * 
FROM   information_schema.columns 
WHERE  table_name = "database-table"

【讨论】:

  • @ThiefMaster:你是对的。我已经更换了它。其实我不知道,为什么我把 LIKE 放在那里……也许​​今天的工作日太辛苦了;)
  • 当我读到它时,他想为该表上的 CRUD 操作动态创建一个表单。
  • 这不是创建表格,它更像是变量模板假设我在上述表格中添加了一个新条目,并且在内容表格中我写了类似“当前黄金价格是{GOLD_PRICE}' 我正在寻找一种将这些变量呈现给后端编辑器的好方法......以及一种替换这些变量以供前端使用的方法。
猜你喜欢
  • 2013-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-28
相关资源
最近更新 更多