【发布时间】:2011-09-05 12:38:38
【问题描述】:
我正在为客户开发后端功能。他们希望能够通过非常基本的视图添加新记录和编辑旧记录;我正在慢慢地到达某个地方,但我现在被困住了。恐怕我从一开始就没有考虑到我的方法。
现在是这个样子:
“添加”字段集从未显示 atm 的按钮下方滑出。它完全按照它所说的去做,将新记录添加到表中。这很好用,我成功地使视图动态化(每个表的字段更改等),并且插入语句也可以正常工作。然而,问题在于编辑功能。
当我按下记录旁边的“编辑”按钮时,该行的值会加载到上面的表单中。然后客户可以编辑这些值并提交它们。或者应该能够。
我被困在这里了。大多数情况下,更新声明让我想把头撞到墙上。有了表格显示,编写查询并不难:
$this->db->where('guestid' => $guestid)->update($table)
这里的主键是guestid。我应该使用这个 id 来知道我要更新哪一行。但是,目前,我没有办法告诉我的表单我要更新哪一行。我可以制作一个隐藏的输入字段并将 ID 放在那里.. 但是!就像我之前提到的,我将这个视图用于不同的表。不是每个表都有 guestid 等。我当然可以编写一个巨大的 switch 语句或 if 结构来确定哪个表以及哪个 id 应该进入隐藏字段,但我正在寻找一种更简单的方法。
这主要让我头疼,因为有些表有一个组合的 PK(例如:我的表 event_pass 的组合 PK 为 eventID 和 passID)。我不确定如何将其链接到表单以及如何告诉我的应用程序“查看,使用此 PK 更新此行上的这些值”。
我有一个数组中的所有表元数据,所以我知道 PK 等:
[eventID] => Array
(
[Field] => eventID
[Type] => int(10) unsigned
[Null] => NO
[Key] => PRI
[Default] =>
[Extra] =>
)
[passID] => Array
(
[Field] => passID
[Type] => int(10) unsigned
[Null] => NO
[Key] => PRI
[Default] =>
[Extra] =>
)
etc..
如果对我的思考过程有任何帮助,我将不胜感激。我不是在寻找完整的代码 sn-p,只是一些关于如何实现它并使我的生活更轻松的想法和建议。我可以提供更多关于其他表格外观的屏幕截图,如果需要,我当然可以提供代码。提前致谢。
【问题讨论】:
-
我们非常想念您的表架构!
标签: php javascript jquery mysql codeigniter