Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php数据库中的下一个id_Php_Database_Next - Fatal编程技术网

php数据库中的下一个id

php数据库中的下一个id,php,database,next,Php,Database,Next,我需要php下一个id,例如:我有这个id的数据库:10,11,15,19,31,32,34 $img_id=$\u获取[img_id];//从浏览器获取图像id的步骤 $row['id'];//从数据库中获取id的步骤 如何使用php$I++并检查数据库中是否设置了id?并忽略空的id 因为我想把下一张图片放在底部。而一些图片被删除了 谢谢根据我对您问题的理解,您的数据库中有ID不连续的行(1、3、13、16等),您希望通过从循环中搜索连续的数字来访问这些行,尽可能多的ID for($i=0;

我需要php下一个id,例如:我有这个id的数据库:10,11,15,19,31,32,34

$img_id=$\u获取[img_id];//从浏览器获取图像id的步骤
$row['id'];//从数据库中获取id的步骤

如何使用php
$I++
并检查数据库中是否设置了
id
?并忽略空的
id

因为我想把下一张图片放在底部。而一些图片被删除了


谢谢

根据我对您问题的理解,您的数据库中有ID不连续的行(1、3、13、16等),您希望通过从循环中搜索连续的数字来访问这些行,尽可能多的ID

for($i=0; $i<100; $i++)
{
    $query = 'SELECT * FROM `table` WHERE `id` = ' . $i;
    $result = mysql_query($query);
    if(mysql_num_rows($result) > 0)
    {
        echo 'This id exists in the table: ' . $id . '<br />';
    }
}
($i=0;$i 0)的

{
echo“此id存在于表中:”.$id。“
”; } }
100在这里作为一个潜在的数字,但它应该达到你需要的。
对于你的问题,有很多解决方案,但这是我想到的最直截了当的问题。

很不清楚你想说什么。但我会试一试

我想您的意思是您已经从表中删除了一些记录,并且在下一次插入中,它不会从最后一次
MAX(id)
继续。为此,您可以尝试:

正如下面提到的@col,不要在生产中使用它,只在您的测试环境中使用它。一旦记录被删除,序列就会丢失。

mysql_query("ALTER TABLE `table_name` AUTO_INCREMENT = 1");
这样做的目的是,如果您有一个名为
images
的表,其
id
的最大值为
99
,并且您删除了该图像。您输入的下一个图像将具有
id=100
。所以ID现在看起来像
9798100
。这将迫使MySQL继续从
MAX(id)+1
,因此它看起来是
97,98,99

还有一个从php获取最后一个插入id的便捷函数:

$last_id = mysql_insert_id();
现在,
$last\u id
将具有来自数据库的最后一个
自动增量


希望这能有所帮助。

您的问题还不清楚。“我想把下一张图片放在底部”是什么意思?若你们想在表中插入另一行,只需插入它,qutoincrement就会自动设置id,永远不要碰autoincrement字段,听起来就像他想要的那个样。也许我不该假设太多。编辑了答案。嗯,虽然我们都是疯子,但我们都想要奇怪和有害的东西。但事实上,如果你想改变autoincrement字段,你要么不应该这样做,要么就不需要autoincrement。我个人已经用过好几次了,在一次大的删除之后。也许是我的强迫症。所以,你几次破坏了你的数据