获取最后一次自动增量php

时间:2014-04-30 17:33:55

标签: php mysql

我的程序出现问题,它从我的数据库表中一次一个地调用问题列(问题),从id = 1,id = 2,id = 3开始,等等。我是Auto_increment。当我从数据库中删除一个id时,我的程序会搞砸。

数据库

    id     question
    1     Php?
    2     HTML?
    3     CSS?
    4     Java?

网页应该如此显示

#1 Php?
#2 HTML?
#3 CSS?
#4 Java?

当我删除或添加ID无序或缺少

的问题时,会出现问题
        id     question
        1     Php?
        2     HTML? <--- 3 is deleted and webpage messes up.
        4     Java?
        5     Oracle
        6     C++

我如何解决这个问题,其中id始终为id = 1,2,3,4,5,6 ... n并确保当我在底部添加新问题时,id将为last_id + 1使用php和mysql?


我认为我没有正确解释我的问题。

我会看看我是否可以一次修复一件事。

如果我的数据库中有一个ID为id = 1,2,3,4,5,6的id列,如果我已经删除了id = =如何调用数据库中最后一个id = 6的id? 7,8?当我插入一个新问题时,由于自动增量,问题id将为id = 9。我希望新问题的id为id = 7。也许我可以先帮助解决这个问题。

3 个答案:

答案 0 :(得分:1)

将id作为主键和行的序列号进行区分是非常重要的。

试试这个:

SELECT
  id, question,
  @seq:=@seq+1 AS seq
FROM
  questions,
  (SELECT @seq:=0) AS init
;

您现在可以使用seq显示数字,始终按正确顺序显示,但请确保您将操作与 id 相关联,而不是序列,因此您可以通过PK引用rwo

答案 1 :(得分:0)

您可以在id = 3处添加新元素。或者你可以单独保留id并让它打印出值,并有一个整数值,每次打印一个值时都会递增,而不是打印出id。

答案 2 :(得分:0)

请参阅以下示例。在这里,您可以声明一个变量并在循环中递增它。

$questions = array('PHP?', 'HTML?', 'CSS?', 'JAVA?');

$i = 1;
foreach($questions as $question)
{
    echo "#" . $i . " " . $question. "<br/>";
    $i++;
}