我有像2,3,12,22,23,24这样的ids分隔,因为要添加和删除项目。所以我想从1开始重新排序,并按顺序设置每一项,然后将auto_increment设置为最后一项+1。
我读过类似的问题,但没有人说他们为什么要这样做,我需要这个,因为如果it达到限制数字(255),我将无法在表中添加更多项目,这很荒谬,因为表中将只有30个项目。
这可能很简单,或者我遗漏了什么,请帮助我。
发布于 2014-02-26 13:11:25
正如评论中所述,这是我针对您的情况的解决方法(请原谅返回数组键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 INTOitems(name,etc.) VALUES ('{escaped postdata}', 'etc.')");
然后应更改为:
mysqli_query($con, "INSERT INTOitems(id,name,etc.) VALUES (".$id.", '{escaped postdata}', 'etc.')");
https://stackoverflow.com/questions/22030181
复制相似问题