我有一个多部分表单,按“返回”或“下一步”将导致该部分被提交并存储到数据库(MySQL)中;唯一的区别是它是转到下一个还是上一个表单。
请注意,后续部分(从第二部分开始)是第一部分表的子表。他们将“ePARno”作为外键。
第一部分执行此代码段:
if( isset( $_SESSION[ 'eparno' ] ) ) { //if it's an edit, replace
$eparno = $_SESSION[ 'eparno' ];
$insert_query_0 = mysql_query ("
REPLACE INTO form
(ePARno, caseno, accomplishedby)
VALUES
('$eparno', '$caseno', '$accomplishedby')
");
}
else { //otherwise, it's a fresh insert
$insert_query_0 = mysql_query ("
INSERT INTO form
(caseno, accomplishedby)
VALUES
('$caseno', '$accomplishedby')
");
$eparno = mysql_insert_id();
}
当我按回第二个表格时,我的问题出现了,将我带到第一个表格,然后通过点击下一个返回它。当我这样做时会发生什么是第二个表单的插入行被插入(通过按 Back)但是当我从第一个表单中按 Next 时它会从表中消失。(我通过phpmyadmin查看数据库,同时按back和next,一步一步)
我怀疑这与替换父行的第一个表单有关。如果它执行 REPLACE,我怀疑已经存在的子行(例如第二种形式的子行)被删除。
我还必须说,如果我不回去,事情就会顺利进行。没有行消失。
我的怀疑有任何依据吗?如果是这样,我该如何补救?如果不是,可能是什么问题?