Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Porównanie wartości
qbejs
post
Post #1





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

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


Siemka (IMG:http://forum.php.pl/style_emoticons/default/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
 
Start new topic
Odpowiedzi
bregovic
post
Post #2





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.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 14.10.2025 - 22:16