2013-03-12 72 views
4

我有一个关于逻辑的思想混乱..它是一种形式,我首先要验证然后我想保存在数据库中,然后我想要显示在另一个页面上。数据库保存和检索上次保存的值

我已验证它(将表单转移(即表单操作)到同一页面),我已将它保存在数据库中,现在我试图在其他页面上显示数据。

我曾经想过,我会将数据保存到数据库并将一些唯一值转移到另一个页面,也许某些数据库自动生成的数据库与相同的表单有关。

现在我有问题该怎么做?任何想法家伙?

既然是逻辑,因此我标注的PHP,MySQL和JS

+0

你试过mysql_insert_id或mysqli_insert_id。? – 2013-03-12 08:02:30

回答

2

呼叫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,并使用PDOMySQLi - this article将帮助您决定哪个。如果您选择PDO,here is a good tutorial

+0

也许你应该包含数据库表的外观,以使其工作。听起来像作者不知道这一点。 – 2013-03-12 08:05:44

+0

@rikesh但是假设有很多用户同时访问这个表单,从不同的pc和不同的ip中获得,并且他们都在同一时间以db的形式保存值。我的目标是在db中保存值的人应该在第二页上看到他的数据。访问最后保存的值会给出所需的输出? – aks 2013-03-12 08:09:38

+0

@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

1

插入查询后,使用

$lastID = mysql_insert_id(); 

然后后,您可以重定向到另一页一样,

header("location:view_page.php?id=$lastID"); 

比view_page.php页面,使用

$ lastID = $ _GET ['ID'];

然后从数据库中获取记录以显示数据。

注意:只有当您的数据库表具有自动增量字段作为索引键时,它才能工作。

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注入

+0

这显示了这种类型的url ... http://localhost/test/page1.php?id = 9 我使用这个值从数据库中提取值...并且如果用户尝试将id = 9更改为编号= 12或7或5或7在地址栏然后会发生什么? – aks 2013-03-12 08:51:29

+0

@aks:它没有显示这种类型的网址。由于这是一个POST类型的表单提交。上面显示的网址是通过url传递参数。在表单方法中使用POST类型来避免这种情况。 – Roger 2013-03-12 09:48:06

+0

抱歉..我向你发布了错误的问题..我无法使用你的方法,因为我无法直接将值传递到该页面..由于验证问题,我必须将值返回到同一页面......所以我必须传输值仅通过url方法... – aks 2013-03-12 09:56:16