我有两张桌子。 company_details和company_specials。每个company_details都可以有多个特价。我在http://eurothermwindows.com/ed/admin.php
显示公司详细信息活动列中包含0的第一行和第四行来自company_details,下面的行来自company_specials。
目前,该代码允许动态修改company_details行,如该表中的compid所示。但是我想让它下面的行动态修改,但它使用相同的compid,我不知道如何在代码中将它们分开。
以下代码是为company_specials生成的代码。我需要一种方法来唯一标识每一行并能够修改它。 http://pastebin.com/RAe9iwAP
有人可以提供一些指导吗?我想我可能需要唯一地识别company_specials中的每个特殊内容或设置某种指针?
答案 0 :(得分:0)
似乎你走在正确的轨道上。您确实需要唯一地标识行。您可以在company_specials表中添加唯一ID并使用它。或者使用company_specials表中每行唯一的其他属性组合(例如,compid和specdate的连接)。什么适合您的信息结构。我建议你只需在你的特价表中添加一个唯一的ID。
请务必在数据库系统中添加该唯一约束,以防止输入无效数据。
答案 1 :(得分:0)
向db表中添加唯一ID,并为每个记录输出隐藏文本字段,以指示其表原点及其id。这将允许代码知道哪个表更新或删除了哪一行。插入新记录可以通过在每个组的末尾提供每种类型的空白记录来完成,因此每组末尾会有一个空白特价记录,而在表格末尾会有一个空白公司记录。
在表单的每个输入字段上添加一个唯一的名称 name ='comp [<?php echo $ comp_id?>] [<?php echo $ comp_field_name?>]'和 name ='spec [<?php echo $ spec_id?>] [<?php echo $ spec_field_name?>]'以便在发布表格时,PHP会看到两个数组, $ comp 和 $ spec 。你可以用
循环这些foreach ($comp as $id=>$row)
{
}
并遍历每个$行以使用
构建SQL更新或插入语句foreach ($row as $fld=>$val)
{
}