![]() |
![]() |
-Gość- |
![]()
Post
#1
|
Goście ![]() |
Jak w PHP wygenerować unikalny 4 znakowy kod (w którym znaki będę cyframi lub dużymi literami)?
Gdyby to były same cyfry, to wówczas można by było spróbować użyć generatora pseudolosowego, ale w kodzie będą też duże litery, więc jak to zrobić? Unikalność kodu zamierzam zapewnić w ten sposób, że po prostu będę z bazy danych pobierał wszystkie do tej pory wygenerowane kody i jeżeli już taki kod znajduje się w bazie, to będę generował kod jeszcze raz, aż w bazie danych nie będzie takiego kodu. Chyba, że da się to unikalność zrobić jakoś lepiej/szybciej? Kod będzie miał tylko 4 znaki, żeby był łatwy do zapamiętania przez użytkowników. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
może tak? Ten post edytował b4rt3kk 6.09.2012, 12:10:03 -------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
-Gość- |
![]()
Post
#3
|
Goście ![]() |
Dzięki, genialne
![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
może tak? W jaki sposób ten skrypt zapewnia unikalność danego ciągu? -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
W jaki sposób ten skrypt zapewnia unikalność danego ciągu? Cytat Unikalność kodu zamierzam zapewnić w ten sposób, że po prostu będę z bazy danych pobierał wszystkie do tej pory wygenerowane kody i jeżeli już taki kod znajduje się w bazie, to będę generował kod jeszcze raz,
-------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
To nie brzmi jakoś specjalnie optymalnie bo gdy kodów już będzie bardzo dużo to wygenerowanie każdego nowego będzie się wiązało z bardzo dużą liczbą obrotów pętli (prawdopodobnie while), a gdy zabraknie kodów pętla się zapętli (jak dobrze liczę to gdzieś przy 1.6mln kodów).
Rozwiązanie ok gdyby np. ograniczyć liczbę kodów i je resetować. Bez użycia bazy w miarę unikalne stringi zapewnia uniqid. Ten post edytował markonix 6.09.2012, 12:53:47 -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 12:39 |