将ID重新排序为顺序

时间:2014-02-26 01:57:18

标签: php mysql indexing

由于添加和删除项目,我将ID分为2,3,12,22,23,24。 所以我想从1开始重新排序它们并按顺序设置每个项目然后将auto_increment设置为最后一个+ 1。

我已经阅读了类似的问题,但没有人说他们为什么要这样,我需要这个,因为如果ids达到极限数(255)我将无法在表中添加更多项目,而且它是太荒谬了,因为里面只有30件物品。

这可能很容易,或者我错过了什么,请帮助我。

1 个答案:

答案 0 :(得分:0)

正如评论中所述,这是我对你的情况的解决方法(原谅丑陋的hacky方式返回数组键0。
这也假设您正在使用MySQLi并已连接到数据库

<?php
$query = mysqli_query($con, "SELECT `t1`.`id` + 1 FROM `grpgusers` AS `t1` WHERE NOT EXISTS (SELECT * FROM `grpgusers` AS `t2` WHERE `t2`.`id` = `t1`.`id` + 1) LIMIT 1");
$getID = mysqli_data_seek($query, 0);
$temp = mysql_fetch_array($query);
$id = $temp[0];

然后,在您的插入查询中,添加新的$ id 例如:
mysqli_query($con, "INSERT INTO {项{1}} {名称{1}}等。(
应该改为:
, {项{1}} ID为) VALUES ('{escaped postdata}', 'etc.')"); {名称{1}}等。mysqli_query($con, "INSERT INTO