我用 PHP 从头开始制作了一个小型 cms。
我有一个经典的文章和类别系统(例如 Joomla、WordPress 等)。
用户可以订购文章。所以我在“文章”表中有一个“顺序”列,编号为:1、2、3 等。
用户还可以更改类别。因此,我需要在更改类别后修改订单列,否则我可以在以前的类别中拥有这样的订单 1, 3, 4,在新类别中拥有像 1, 2, 2, 4 这样的订单。
我制作了一个脚本来重建每个类别的顺序。它有效。
但我不知道如何在需要时检查。
我的代码:
// $new_category : new category selected by user in a select"
// $categorie : $_GET['categorie']
if ($new_category !== $categorie) {
// reconstruct order column
}
if ($new_category !== $categorie)
,效果不太好,因为文章更新后,参数$_GET['categorie']
URL 中的内容不会改变。如果用户再次更改类别,可能会导致订单列出现错误。
所以,我考虑了新类别和数据库中存储的类别之间的比较。但是,由于数据库是在重建列顺序之前更新的,所以它不起作用。
最佳答案
it doesn’t work very well because after the article is updated, the parameter $_GET['categorie'] in URL doesn’t change
一般来说,您永远不应该通过 GET 更新数据库,而只能通过 POST 更新数据库。在这种情况下,常见的做法是 Post/Redirect/Get -- 这将允许用户更改类别,然后刷新页面,以便重新加载新类别,这将允许用户再次更改类别。如果你想在其中添加重新排序过程,可以将其放在Post和Redirect步骤之间,后续的GET将收到新更新的订单。
关于php - 表单更新后如何检查是否有新数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25872753/