我对一个逻辑有一个困惑..它是一个我首先要验证的表单,然后我想保存在数据库中,然后我想在另一个页面上显示它。
我已经验证了它(将表单传输(即表单操作)到同一页面),我已将其保存在数据库中,现在我试图在另一页面上显示数据。
我想到的是,我会将数据保存到数据库并将一些唯一值传输到另一个页面,也许某种数字由相同表格的数据库自动生成。
现在我有问题该怎么办?任何想法的家伙?
因为它是逻辑因此我标记了php,MySQL和JS
答案 0 :(得分:2)
执行INSERT
此类操作后,请致电mysql_insert_id(),
$lastInsertedId = mysql_insert_id(); # Assuming you have an auto increment column in your table.
header('Location: view.php?id='.$lastInsertedId);
比view.php
获取ID&获取记录以显示它,
$id = $_GET['id'];
注意:Please, don't use mysql_*
functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDO或MySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial。
答案 1 :(得分:1)
插入查询后,使用
$lastID = mysql_insert_id();
之后您可以重定向到另一个页面,例如
header("location:view_page.php?id=$lastID");
在view_page.php页面中,使用
$ lastID = $ _GET ['id'];
然后从数据库中获取记录以显示数据。
注意:仅当您的数据库表具有自动增量字段作为索引键时,它才有效。
答案 2 :(得分:1)
使用mysql_insert_id()
是一种方法。但是如果您不想查询数据库并且仍然拥有该数据库,那么您可以这样做。下面是示例
<form name="frm" method="POST" action="display.php">
<input type="text" name="your_name" value="" />
<input type="text" name="age" value="" />
<input type="submit" name="save" value="Save" />
</form>
现在位于 display.php 页面
<?php
// DO YOUR DATABASE CONNECTIVITY
$name = $_POST['your_name'];
$age = $_POST['age'];
$query = "insert into table_name values('$name','$age')";
if(mysql_query($insert)) {
?>
<table>
<tr>
<td>Name</td>
<td>Age</td>
</tr>
<tr>
<td><?php echo $name;?></td>
<td><?php echo $age;?></td>
</tr>
</table>
<?php } else { echo "No Insertion"; } ?>
请记住mysql_ *函数已弃用。所以避免那些。还要检查sql注入