php下一个id在数据库中

时间:2011-03-16 01:19:04

标签: php database next

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

$ img_id = $ _ GET [img_id]; //从浏览器中获取图片ID $行[ '身份证']; //从数据库中获取id

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

因为我想将下一张图片放在底部。有些图片被删除!!

谢谢

2 个答案:

答案 0 :(得分:1)

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

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 />';
    }
}

100在这里充当一个潜在的数字,但它应该达到你所需要的。 有很多解决方案可以应用于您的问题,但这是我想到的最直接的问题。

答案 1 :(得分:-1)

目前还不清楚你想说什么。但我会试一试。

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

正如下面提到的@col,永远不要在生产中使用它,只考虑你的测试环境。删除记录后,序列将丢失。

mysql_query("ALTER TABLE `table_name` AUTO_INCREMENT = 1");

这样做是因为如果您有一个名为images的表格,其id的最大99并且您删除了此图片。您输入的下一张图片将显示id=100。所以ids现在看起来像97,98,100。这将迫使MySQL从MAX(id) + 1继续,因此它看起来像97,98,99

还有一个方便的函数来从php获取最后一个插入ID:

$last_id = mysql_insert_id();

现在$last_id将拥有数据库中的最后AUTO_INCREMENT值。

希望这有帮助。