2017-05-26 58 views
0

我想每次有人连接到我的网站时设置一个自动递增的ID。是在mysql中自动递增循环?

但是当用户重新加载或退出时,我想清除与该用户标识相关的信息,并使用此标识匹配新用户而不是创建新标识。 当当前用户/ ID列表已饱和时,会创建新ID。

如果我没有弄错,phpMyAdmin中的MySQL自动递增选项只是自动递增。你知道是否有一种方法可以像自动增量一样检查时直接设置它? PS:我不想随机编号。我想把PHP循环分割用户,如果我使用线性ID模式,会更容易。

感谢

+1

你想要做的是没用的。相反,您需要描述您想要分割用户的操作。 –

+0

嗯,我想你想存储的.auto增量id与唯一..然后你检查是否同一用户再次来到您的网站,然后检查..用户已经与比不再提供ID ..嗯 –

+0

我有开发一个非常好的和简单的算法来将这些用户分成多个房间,并且与这个ID系统完全吻合。我知道我可以为用户提供一个与随机ID相关的相同内容的数字。但如果该ID直接更好。 –

回答

1

可以存储在某个数据库中的下一个可用的ID,从1开始。当你分配一个ID用户,您分配下一个可用的ID,则增加了“下一个可用的ID”直到目前没有人拥有该ID。删除用户时,如果用户的标识小于下一个可用标识,则将下一个可用标识更新为删除用户标识。例如:

  • NA-ID = 1
  • 添加用户1(ID设置为1,NA-ID = 2)
  • 添加用户2(ID套2,NA-ID = 3)
  • 用户3添加(ID套到3,NA-ID = 4)
  • 删除用户2(ID为2,小于4,所以NA-ID = 2)
  • 添加用户4(ID套2,NA- ID尝试3,但已采取,所以去4)

等...

+0

感谢您的回复,非常聪明的方式。我想我可以做一个这样的循环(aproximative语言): for($ i = 0; $ i <$ idArrayLength; $ i ++){if($ idArray [i] == void){$ id = $ i; $ idFinded = true; break;} else {$ idFinded = false;继续;}} if($ idFinded == false){array_push(); $ id = idArrayLength;} –

+0

如果它帮助你请标记为接受答案:) –

+0

它的一个不错的主意,我很欣赏,但我认为上面的循环是最简单的。也没有真正回答这个问题。我想赞许你的帖子,但我没有所需的信誉评分。 –