Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Porównanie wartości
qbejs
post 18.03.2007, 15:46:08
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 1
Dołączył: 9.02.2006

Ostrzeżenie: (0%)
-----


Siemka exclamation.gif

Pisze sobie skrypt który losuje liczbe z zakresu od 1 do 10 a następnie sprawdza czy taki numer nie wystąpił już w bazie....

  1. <?php
  2. $nr = rand(1,10);
  3.  
  4. echo '<h3>Wylosowany numer wzorzec: '.$nr.'</h3>';
  5.  
  6. while ($result=mysql_fetch_array($check))
  7. {
  8. echo 'Numer wzorzec z bazy: <B>'.$result['id'].'</B><BR>';
  9.  
  10. while ($result['id'] == $nr) 
  11. {
  12. $nr = rand(1,10);
  13. $nr_startowy = $nr;
  14. echo 'Wystąpił duplikat - ponowne losowanie<BR>';
  15. echo 'Nowa wylosowana liczba: '.$nr_startowy.'<BR>';
  16. }
  17.  $nr_startowy = $nr;
  18.  echo 'Nie wystąpił duplikat<BR>Numer startowy do bazy: '.$nr_startowy.'<BR><HR>';
  19. }
  20. echo '<B><I>Unikalny numer: '.$nr_startowy.'</B></I><BR>';
  21. ?>


Jak według Was przerobić go by otrzymywany finalny $nr_startowy był unikalny w skali całej bazy...próbowałem już kilki pomysłów ale niestety skrypt sie zapętlał...

Z góry dzięki

Ten post edytował qbejs 18.03.2007, 15:58:40
Go to the top of the page
+Quote Post
Cienki1980
post 18.03.2007, 16:24:05
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

Ostrzeżenie: (0%)
-----


Kurcze patrze w ten kod i za CHRL nie mogę zaczaić o w nim chodzi. Co ma robić i jakie dawać efekty.


--------------------
404
Go to the top of the page
+Quote Post
misiek172
post 18.03.2007, 17:58:33
Post #3





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


idiotyczne...

nie lepiej ustawić w bazie to dane pole UNIQUE (czy jakoś tak to sie pisze) i tylko sprawdzać czy true czy false? :|


--------------------
zmoderowano - waga i rozmiar
Go to the top of the page
+Quote Post
bregovic
post 18.03.2007, 18:26:19
Post #4





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

Ostrzeżenie: (0%)
-----


Nie wiem po kiego tobie to grzyba, ale powinno to działać tak:
  1. <?php
  2. $loop = true;
  3. while ($loop === true) {
  4. $nr = rand(1, 10);
  5. $result = mysql_query("SELECT * FROM somewhere WHERE numer=$nr");
  6. if (mysql_num_rows($result) == 0) {
  7. $loop = false;
  8. }
  9. }
  10. ?>

Należy podkreślić że to w sumie głupie rozwiązanie.


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
qbejs
post 19.03.2007, 11:36:53
Post #5





Grupa: Zarejestrowani
Postów: 48
Pomógł: 1
Dołączył: 9.02.2006

Ostrzeżenie: (0%)
-----


Skrypt ma losować numer rejestrującemu się userowi przy czym ma on byc unikalny. Zapomniałem jednak o własciwosci unique :/ i robilem to metodą na chama.....
Go to the top of the page
+Quote Post
Cienki1980
post 19.03.2007, 12:42:52
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

Ostrzeżenie: (0%)
-----


Cytat(qbejs @ 19.03.2007, 11:36:53 ) *
Skrypt ma losować numer rejestrującemu się userowi przy czym ma on byc unikalny. Zapomniałem jednak o własciwosci unique :/ i robilem to metodą na chama.....


No to jeżeli rejestrujesz userów w bazie to co powstrzymało Ciebie przed tym, żeby tym numerem było ID ( czy jak tam sobie je nazwiesz ) jako pole, które powinno być auto_increment questionmark.gif


--------------------
404
Go to the top of the page
+Quote Post
qbejs
post 19.03.2007, 13:16:12
Post #7





Grupa: Zarejestrowani
Postów: 48
Pomógł: 1
Dołączył: 9.02.2006

Ostrzeżenie: (0%)
-----


Cytat(Cienki1980 @ 19.03.2007, 12:42:52 ) *
No to jeżeli rejestrujesz userów w bazie to co powstrzymało Ciebie przed tym, żeby tym numerem było ID ( czy jak tam sobie je nazwiesz ) jako pole, które powinno być auto_increment questionmark.gif


Id usera w bazie swoją drogą a skrypt zamieszczony tu przeze mnie ma wylosować unikalny numer usera z zakresu 1-200 ( bedzie to numer zawodnika na pewnych wyścigach )
Go to the top of the page
+Quote Post
pawkow
post 19.03.2007, 19:42:55
Post #8





Grupa: Zarejestrowani
Postów: 76
Pomógł: 7
Dołączył: 30.09.2006

Ostrzeżenie: (0%)
-----


przecież napisał, ze id usera swoją drogą, a drugi numer go identyfikujący swoją.
Go to the top of the page
+Quote Post
qbejs
post 20.03.2007, 15:48:46
Post #9





Grupa: Zarejestrowani
Postów: 48
Pomógł: 1
Dołączył: 9.02.2006

Ostrzeżenie: (0%)
-----


Dzięki Panowie za pomoc smile.gif Zapomniałem o właściwości UNIQUE w MySQL...oczywiście to rozwiązało mój problem. A co do Waszych wątpliwości po co mi ten skrypt to już wyjaśniam. Tworzę system rejestracji zawodników dla pewnych wyścigów na 1/4 mili. Założeniem systemu jest załadowanie podstawowych danych o kierowcy i samochodzie oraz wygenerowanie unikalnego numeru startowego. W związku z tym potrzebowałem czegoś co zagwarantuje mi pewność iż nie zdublują się numery startowe.

Jeszcze raz dzięki i pozdrawiam...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 10:53