我有两页。一个是我用来简单输入将发送到我的数据库的数据的表单,另一个是实际将数据输入到表单中并将其发送到数据库的第二个页面,它应该显示我所拥有的信息刚补充。
一切正常,但我稍微挣扎于查询。我需要它做的是显示输入到数据库的最后数据的所有信息。
我目前的查询只显示ID最高的数据:
$sql = "SELECT * FROM Results ORDER BY ID DESC LIMIT 1";
举个例子,我将在完成表格后留下以下信息:
Success! Data being saved:
ID = 900 Amount = 206 Date = 2016-12-26
这显然只是显示ID最高的数据,但由于ID和所有数据都有波动,我需要它才能显示刚刚输入的数据。
我来到这里:Query to select newly added records only.但我不相信这种灵魂可行,因为数据库是外部的,我不想创建新的表。
我原以为可以通过查询为每个新添加的记录分配隐藏值。例如新1,新2,新3等然后打印新的最新记录。但是,我找不到任何关于如何做到的事情。
非常感谢任何帮助!
答案 0 :(得分:2)
您必须使用此方法才能获得非常正确的值:
输入表单必须发送到另一个插入的文件(我们在这里称之为insert.php)
insert.php必须在验证后插入数据,之后您可以从数据库中获取最后一个ID号。根据您使用的方法,它可能会有所不同。例如,如果您使用的是PDO,则可以通过PDO::lastInsertId
获取ID后,您需要将其转发到查看或编辑页面。例如view.php?id=LastInsertId
。这个前锋有一些原因:
代码可以更清晰。
我们阻止刷新并重新发送插入。例如,如果你在view.php中插入并且用户点击F5刷新页面,则插入再次发生。
这是整个想法。您只能将此方法用于一个页面:
page.php文件?DO =新
page.php文件?DO =插入
转发到page.php?do = view& id = lastInsertID
答案 1 :(得分:0)
为什么要尝试从数据库中输入刚刚输入的数据?你可以轻松地使用HTTP POST / GET方法。只需将数据作为参数发送并在第二页显示。
答案 2 :(得分:0)
如果您已经拥有要插入的数据,则无需再次运行查询以从数据库中恢复数据,您可以确保查询成功并直接显示数据。无论如何: 您可以使用MySQLi对象从上一个插入中获取插入ID。例如:
$sql = "<your insert statement>"
$conn->query($sql);
$last_id = $conn->insert_id; //Id of the row you just inserted
$sql = "SELECT * FROM Results WHERE id=$last_id";
这假设您在显示结果的同一页面中执行插入操作。