php - 表单更新后如何检查是否有新数据?

标签 php mysql

我用 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/

相关文章:

php - 为什么 empty ("0") 在 PHP 中返回 true?

php - MySQL 条件选择 2 个字段中的 1 个,然后按 2 个字段的组合分组

php - 如何构造 MySQL 数据库以在父目录类型结构下显示 PHP 中的链接记录?

php - 如何获取上次访问的项目 - sql

php - 需要从输入表单设置数据库的文件路径

mysql - 使用 `DISTINCT`关键字时出错?

MySql Join 使用 4 个表

php - App::abort(404) 等同于 Laravel 5?

mysql - Mysql中根据另一个表的值更新一个表

php - 借助 SQL 将两个 php 变量从一个 php 页面传递到下一个 php 页面