0

我有一个当前的项目,但遇到了一些麻烦。它将用 PHP / MySQL 编写

这是一个多页表格(3页)

当用户单击“下一页”(提交按钮)时,需要将数据存储在数据库中,并且需要打开下一页将发生相同的事情(单击“下一页”时,此数据也存储在数据库中最后一页也是同样的事情。我知道一种可以在最后一页上提交所有数据的方法,但我们不希望这样。我们需要捕获每一步,无论他们是完成填写整个表格还是不是。

我的问题是,如何确保所有数据都插入到同一行(在相同的自动递增 ID 下)?

我在 PHP/MySQL 方面没有最丰富的经验,所以请放轻松;)

提前感谢一堆:)

4

2 回答 2

0

这是一种方式:

在第一页上,您需要放置数据库所需的所有信息(主键/索引键)。然后你可以做你INSERT INTO的数据库。

SELECT id FROM my_table WHERE mandatory_information_is_same然后,您可以使用您拥有的强制性信息获取新插入行的 id 。将其保存在$_SESSION变量或表单中的隐藏字段中(不安全)。

然后在每个新页面上,你只需要做一个UPDATE my_table SET extra_information WHERE id=$_SESSION['row_id'],你就完成了。

于 2013-06-03T03:09:38.897 回答
0

您可以做的是将表单数据存储在会话中。例如,用户输入详细信息并单击下一步按钮,将数据存储在会话中

session_start();
$_SESSION['firstpage']['fname'] = $_POST['fname'];
$_SESSION['firstpage']['lname'] = $_POST['lname'];
$_SESSION['firstpage']['username'] = $_POST['username'];

//check if data for first page stored

if(!empty($_SESSION['firstpage'])){
    //redirect to second page
}else{
    //stay on first page
}

对第二页做同样的事情。

第三页

session_start();
$_SESSION['thirdpage']['address'] = $_POST['address'];
$_SESSION['thirdpage']['confirm_id'] = $_POST['confirm_id'];


//check if data for Third page stored

if(!empty($_SESSION['thirdpage'])){
    //do validation for first and second page 
    //insert all session data to DB with same auto increment id
}else{
    //stay on third page
}

使用会话的原因是为了保存数据,并且存储的数据也可以在将来使用。用户可以离开并稍后继续。如果你想使用它是你的选择,sessions或者cookies它们都做几乎相同的事情,唯一的区别是会话数据存储在服务器中,而 cookie 存储在浏览器中。您可以在第三页上进行很多验证。

希望这可以帮助。

于 2013-06-03T03:28:39.193 回答