Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] unikalna liczba
Forum PHP.pl > Forum > Przedszkole
Ulysess
witam zwracams się do was z pytaniem czy jest jakaś funkcja w php która losuje unikalną liczbe questionmark.gif

mam taki problem.. po wejściu w daną zakładkę losowana jest liczba poprzez rand(1,60000) i dodawana w tabeli pole5 problem w tym że dziwnym trafem (naprawdę dziwne) co kilkanaście wejść w końcu powtarza się id :| przecież szanse że akurat zostanie wylosowana taka sama jak wcześniej liczba są niewielkie a jednak losuje . Stąd moje pytanie jeśli nie ma na to dobrego sposobu spróbuje zrobić na zasadzie że po prostu pobiera dane kasuje rekord i tworzy nowy (w taki sposób w polu id z auto_increment za każdym razem będzie unikalne id ale czy to dobre rozwiązanie questionmark.gif
Wicepsik
uniqid
Ulysess
czy aby na pewno ta funkcja może wylosować losową liczbę ?

unikalną*
erix
uniqid zwróci identyfikator, nie liczbę.

Generalnie należałoby robić coś takiego:
  1. function getUniqueRandom(){
  2.  
  3. static $used = array();
  4.  
  5. do{
  6. $num = mt_rand(0,65536);
  7. }while(in_array($num, $used));
  8.  
  9. $used[] = $num;
  10.  
  11. return $num;
  12. }


Z Twojej pracy domowej - musisz obsłużyć przypadek, gdy już wszystkie liczby zostały wylosowane (wtedy będzie pętla nieskończona). To po stronie PHP; jeśli chcesz w SQL, napisz sobie podobną procedurę składowaną albo wczytuj całą tabelę zamiast static. Ale to praca domowa. winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.