数据库保存和检索上次保存的值
我有一个关于逻辑的思想混乱..它是一种形式,我首先要验证然后我想保存在数据库中,然后我想要显示在另一个页面上。数据库保存和检索上次保存的值
我已验证它(将表单转移(即表单操作)到同一页面),我已将它保存在数据库中,现在我试图在其他页面上显示数据。
我曾经想过,我会将数据保存到数据库并将一些唯一值转移到另一个页面,也许某些数据库自动生成的数据库与相同的表单有关。
现在我有问题该怎么做?任何想法家伙?
既然是逻辑,因此我标注的PHP,MySQL和JS
呼叫mysql_insert_id()一旦执行INSERT
操作这样的事情,
$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。
也许你应该包含数据库表的外观,以使其工作。听起来像作者不知道这一点。 – 2013-03-12 08:05:44
@rikesh但是假设有很多用户同时访问这个表单,从不同的pc和不同的ip中获得,并且他们都在同一时间以db的形式保存值。我的目标是在db中保存值的人应该在第二页上看到他的数据。访问最后保存的值会给出所需的输出? – aks 2013-03-12 08:09:38
@aks - 是的,他可以。阅读http://stackoverflow.com/questions/12467111/what-happens-if-mysql-insert-id-called-form-different-places-and-different-brows – Rikesh 2013-03-12 08:11:49
插入查询后,使用
$lastID = mysql_insert_id();
然后后,您可以重定向到另一页一样,
header("location:view_page.php?id=$lastID");
比view_page.php页面,使用
$ lastID = $ _GET ['ID'];
然后从数据库中获取记录以显示数据。
注意:只有当您的数据库表具有自动增量字段作为索引键时,它才能工作。
使用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注入
这显示了这种类型的url ... http://localhost/test/page1.php?id = 9 我使用这个值从数据库中提取值...并且如果用户尝试将id = 9更改为编号= 12或7或5或7在地址栏然后会发生什么? – aks 2013-03-12 08:51:29
@aks:它没有显示这种类型的网址。由于这是一个POST类型的表单提交。上面显示的网址是通过url传递参数。在表单方法中使用POST类型来避免这种情况。 – Roger 2013-03-12 09:48:06
抱歉..我向你发布了错误的问题..我无法使用你的方法,因为我无法直接将值传递到该页面..由于验证问题,我必须将值返回到同一页面......所以我必须传输值仅通过url方法... – aks 2013-03-12 09:56:16
你试过mysql_insert_id或mysqli_insert_id。? – 2013-03-12 08:02:30