php - 插入具有更高顺序值的新行时,如何更改表中的顺序值?

标签 php mysql

使用 php 和 mysqli,我有一个类别表,用于对产品进行分组并控制它们在目录中显示的顺序。 “ord”字段是一个整数,其值控制这些产品类别的显示顺序。插入新类别时,我想从新类别向下重新排序剩余类别并更新表格,然后插入新类别而不重复“ord”值。

共有 11 个类别。我想插入我的新类别,其“ord”值为 5。显然,我需要向每个“ord”值 6 - 11 添加 1 以重新排序我的目录。不知道该怎么做。我不擅长数组,但我认为某种带有更新表的 foreach array[$key][] + 1 可以工作。我不清楚如何创建数组。

对此确实没有任何工作想法...

Category ord=1: Site Licensing
Category ord=2: PICC Insertion Training
Category ord=3: Ultrasound Training

新类别:ord 2:成员(member)订阅

Category ord=1: Site Licensing
Category ord=2: Membership Subscriptions
Category ord=3: PICC Insertion Training
Category ord=4: Ultrasound Training

最佳答案

您只需在执行INSERT 之前更新表即可。通过首先更新现有数据,您可以为新条目留出空间。

$order = $_POST['order'];

$stmt = $mysqli->prepare("UPDATE `categories` set order = order + 1 where order >= ?"));

$stmt->bind_param("i", $order);

$stmt->execute();

/** Now perform INSERT statement */

关于php - 插入具有更高顺序值的新行时,如何更改表中的顺序值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55594724/

相关文章:

php - 如何显示给定 php 组合框中的项目的不同 php 表?

php - 两个交互类的 OOP 设计方法

php - 在 PHP 中递归更改数组值

java.lang.IllegalArgumentException : Result Maps collection already contains value for 异常

php - Mysql 中的 IF 函数和带有 LEAST() 的 PHP 语句

php - 使用 PHP 制作点击计数器

mysql - mySQL 选择查询出现错误 1022

php - 将 json 从 curl 存储到 mysql 表

php多维数组获取值

php - 使用MySQL+PHP+Morris.js生成折线图