【问题标题】:phpmyadmin deleteing a row and setting every id below that row to -1 [duplicate]phpmyadmin删除一行并将该行下方的每个ID设置为-1 [重复]
【发布时间】:2014-05-19 07:31:31
【问题描述】:

我有一个带有自动递增 id 的 phpmyadmin 表。我在每页显示这个条目 12,所以 1-12 在第一页 13-24 到第二页,依此类推。每个条目都有一个特定的位置,所以 1 是左上角 4 是右上角 9 是左下角,而 12 是右下角。如果从数据库中删除一个条目(例如 id=3 的条目),则在显示时条目位置为空,因为当它尝试获取数据库 id=3 的信息时,它什么也得不到。有没有办法从数据库中删除该行,使数据库中该条目之后的所有内容都具有-1 id?因此,如果我删除条目 3,条目 4 将成为新条目 3,条目 5 将成为新条目 4,依此类推。 phpmyadmin中是否有一个函数可以做到这一点,或者我必须自己制作,或者有一个我可以实现的技巧。

【问题讨论】:

  • 没有“phpmyadmin 表”之类的东西。 PhpMyAdmin 是一个基于 Web 的图形工具,用于管理 MySQL 数据库。
  • 问题是“为什么”你需要这样做......在这些值中,唯一重要的是它们应该是唯一的......如果您正确使用关系数据库,那么更改这些 id 值肯定会导致问题
  • 我根据不是主键的 id 显示条目。它是一个自动递增的值,用于决定对每个条目进行排序的位置。我选择做的是删除 ai,获取数据库大小/行并设置 id 为 db.noOfRows+1 的最新条目。
  • @alexandros - 希望你永远不会有多个用户同时添加/删除

标签: php mysql database phpmyadmin


【解决方案1】:

试试下面的代码

$deletedId = $id;

//这里将是您的删除查询

//删除记录后执行下面的更新查询

mysql_query("UPDATE $tbaleNAme SET id = (id-1) WHERE id > $deletedId");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-28
    • 2020-08-30
    • 2023-01-04
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    相关资源
    最近更新 更多