首页 文章

在MySQL数据库中指定HTML输入属性?

提问于
浏览
0

我正在尝试使用PHP创建动态表单创建功能 . 我试图让它尽可能不依赖 .

在这样做时,我想在数据库本身中指定HTML输入类型 . 我开始使用'if varchar,然后创建文本字段'类型的东西 . 但我意识到我会遇到单选按钮,复选框,密码和电子邮件字段的问题 .

有没有办法为包含与另一个表相关的数字的列创建属性,该表将指定它将是什么类型的输入?

这是一个示例表设置:

id - email - password - first_name - last_name - gender - terms_accepted

然后我将有关于另一个表的数字作为属性,所以它将是这样的:

id - email - 密码 - first_name - last_name - 性别 - terms_accepted null - 1 - 2 - 3 - 3 - 4 - 5

而另一个表将是这样的:

type_id - type_name

1   =        email

2     =      password

3    =       text

4      =      radio button

5       =  check box

这样的事情可能吗?还是我应该回到现实?如果可能的话会是什么样子,我将如何执行这样的结构?

2 回答

  • 1

    评论太长,但可能也不完整 . 这是基于动态数据库表的思路 - > html表单转换 . 在你的第一个,“if varchar then ...”

    我实际上已经创建了类似于此的东西,但很少使用它,因为在大多数情况下使用表单的HTML模板更有意义 . 当然最初可能需要更多时间,但在网站上,您有时会想要具有特定订单或某些部分的表单 . 然后你有语言问题或变量名称 . 例如,当你在数据库中有0或1时,它是否意味着0/1,是否意味着是/否,是否意味着是/否?使用enum()或varchar(),您应该有像“id”这样的短字段,但是您可能希望HTML表单说“标识” . 最后,它会减少Web服务器上的负载,因为不是经常查询数据库和脚本,而是只读取静态HTML文件 . 只是我的两分钱 .

    但实质上,单选按钮已经过时了,通常选择菜单就足够了,节省了页面空间 . 在我的脚本中,我使用了所有ENUM字段的选择 . 要区分选择和复选框,您必须查找mysql表详细信息以读入外键 . 您对数据库结构的思考不够 . 您应该尝试使脚本符合正确的数据库结构,而不是相反 . 复选框将是多对多关系,无线电/选择将是一对多关系 .

  • 0

    这是我会采取的一般方式:

    field # a list of all fields
      id int PK
      field_type_id int FK
    
    field_type # an enum of all field types
      id int PK
      field_name varchar(32)
    
    field_data # all saved field data, keyed by field id
      id int PK
      field_id int FK
      field_data blob,etc.
    

    注意 - 我不会以这种格式存储用户数据 .

相关问题