我的程序出现问题,它从我的数据库表中一次一个地调用问题列(问题),从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。也许我可以先帮助解决这个问题。
答案 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++;
}