【发布时间】:2014-06-26 03:54:38
【问题描述】:
我有一个表单,可以提交电子邮件地址、姓名和图片以及更多字段。所有提交都存储在名为 sendValue 的同一列中,但每个表单字段的唯一名称在 formField 列中。
第一次提交需要所有字段,但返回用户只需要输入他们的电子邮件,然后表单只返回图像上传,因为它在数据库中找到了电子邮件地址。
我想使用 fieldname 'email' 的已知值从 fieldname 'name' 中返回匹配的 'name' 值,并打印到仅上传图片的页面。
这就是没有正确逻辑的情况,我尝试了许多其他格式和 SQL 语法
SELECT sentValue AS name FROM tbl_submission
WHERE formID='2' AND formField='name'
AND formField='email' AND sentValue='smit@home.com'
return $query;
实现我的目标的正确 SQL 查询是什么?
@Matt 这是结构
tbl_submission
formID - 因为多个表单将发布到表格并且每个表单都有一个 ID
formSubsID - 每个字段的数据在数据库条目上获得一个 ID
formField - 存储每个字段的唯一名称
sentValue - 存储用户输入的每个字段的值
|formID|formSubsID|formField|sentValue|
| 1 | 1 | name | mike |
| 1 | 1 | email |mi@hom.us|
| 1 | 1 | image |img.jpg |
| 2 | 34 | image |new.jpg |
用户看到的第一页有一个带有单个电子邮件文本字段的表单。该条目未存储在 DB 中,但在提交时查询 DB 中的 formID 1 以查看输入的电子邮件是否已存在。如果不是,则返回显示所有必填字段的 ID 为 1 的表单。
如果查询返回 true 表明电子邮件在数据库中,但返回 ID 为 2 的不同表单,该表单仅显示单个图像上传字段,并且图像存储在相同的 sentValue 列中。在此页面上,我希望打印与找到的电子邮件相关联的名称。
【问题讨论】:
-
... WHERE email='user_input' -
您的意思是:**您只想拥有一列并在其上添加一些字段?例如,在 MySQL 的一列中添加电子邮件、姓名和地址** 对吗?
-
我有点困惑,所有值都保存在一个列中但表单字段保存在其他列中?您能否包括您的数据的理想状态?
-
@Dagon 这是我在这里发帖之前尝试过的众多方法之一
-
@Matt 在我的帖子中查看编辑