我已经在application.php
创建了一个注册表单,在提交时会对其进行处理并使用submit.php
存储内容,并且我想使用名为message的参数重定向到thanks.php
值等于最近插入的行的primay键。例如,它应该将我的第100个申请人返回到页面,
www.mydomain.com/thanks.php?message=100
其中100是主键(AI)。
换句话说,我想打印表的主键作为用户的引用ID ..我试过
header("location: thanks.php?message=".$id);
和
header("location: thanks.php?message=".$_POST['id']);
两者都不适合我。
请帮助我们!
编辑:
require("admin/sources/connection.php");
$id = mysql_insert_id();
// Other variables are declared here
$sql = "my_INSERT_query_goes_here";
$result = $conn->query($sql);
if($result) {
header("location: thanks.php?message=".$id);
}
这是我的submit.php
代码
答案 0 :(得分:1)
您首先分配$ id,然后运行查询。
扭转它们以使其发挥作用。
不使用自动增量?
我在评论的查询中看到,您手动传递了要输入的ID。您是否意识到mysql_insert_id()
不会返回您调用的sql列" id",但是您设置了自动增量的列?这是表中的一行,可以自动获取递增的数字而无需手动输入。
答案 1 :(得分:0)
情侣问题......看起来你正在将mysql_
方法与mysqli
混合,并且你的执行顺序错误。
如果数据库表是自动递增的,则无需在查询中传递ID。通过调用$id = mysql_insert_id();
并在查询中使用id,您将传入0作为使用下一个自动增量ID的id。
在insert_id
之后获取$conn->query($sql);
将返回使用的插入ID。
回显一些变量,看看你在mysql_insert_id();
之前和之后得到的值。
但是,如果你正在使用$conn->query()
,那么你就不会使用标准的mysql_
函数。
试试这个:
require "admin/sources/connection.php";
// Other variables are declared here
$sql = "my_INSERT_query_goes_here";
$result = $conn->query($sql);
if($result) {
$id = $conn->insert_id;
header("location: thanks.php?message=".$id);
}