gpt4 book ai didi

PHP/MySQL - 如何更新动态添加的行

转载 作者:行者123 更新时间:2023-11-29 15:48:25 25 4
gpt4 key购买 nike

我有一个表单,其中包含可以通过单击“添加新行”按钮动态添加行的部分。

每行有 2 个字段:说明完成日期

这是我用来存储行的表:

CREATE TABLE IF NOT EXISTS example (
id int(11) NOT NULL AUTO_INCREMENT COMMENT 'Contact ID',
parent_id int(11) NOT NULL COMMENT 'Parent ID',
description varchar(64) NOT NULL COMMENT 'Description',
completed_date date DEFAULT NULL COMMENT 'Completed date',
PRIMARY KEY (id)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8
COLLATE=utf8_unicode_ci
COMMENT='Example';

在我的表单上,字段被定义为数组,因此如果有 2 行,HTML 将如下所示:

<input type="text" name="description[0]" placeholder="Description">
<input type="text" name="completed_date[0]" placeholder="DD-MM-YYYY">
<input type="text" name="description[1]" placeholder="Description">
<input type="text" name="completed_date[1]" placeholder="DD-MM-YYYY">

使用循环将行写入数据库没有问题,但我正在努力想出更新行的最佳方法。

例如,如果将 2 行写入数据库,然后用户编辑表单并更改第二行上的日期,我如何知道应该更新数据库上的第二行,而不是第一行?

我能想到的唯一方法是将数据库中的“id”字段添加为每行的隐藏字段,但我的问题是 - 这是标准/最佳方法还是有其他技巧失踪了?

我可以将其转换为 JSON 字段并将所有行存储为 JSON 对象,但我希望保留轻松查询数据的能力。

编辑 - 只是想到了另一种方法 - 删除所有记录并重新插入而不是更新。这是更好的方法吗?任何意见表示赞赏。

最佳答案

,添加 idhidden field 是您执行此操作的最佳选择。您的表单应如下所示:

<form action="editwork.php" method="post">
<input type="hidden" name="id" value="<?php echo $id_of_this_row;?>"/>
<input type="text" name="description" value="<?php echo $desc_of_this_row;?>" placeholder="Description"/>
<input type="text" name="completed_date" value="<?php echo $comp_date_of_this_row;?>" placeholder="DD-MM-YYYY"/>
<input type="submit" value="save"/>
</form>

每个循环项应生成不同的 <form>每行的标签,因此不同的保存按钮来更新行

推荐:使用 JavaScript 进行处理,这样您的页面就不会在每次更新一个简单行时刷新。

并且:删除记录并重新插入可能是最糟糕的方法。

关于PHP/MySQL - 如何更新动态添加的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56923139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com