Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] while, sprawdzenie czy $hash istnieje, tak: losowanie, nie: dodanie do bazy
DREEMus
post
Post #1





Grupa: Zarejestrowani
Postów: 286
Pomógł: 34
Dołączył: 4.09.2008
Skąd: Wrocław

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


  1. <?php
  2. // Losujemy hash
  3. $hash = substr( str_shuffle( 'abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPRSTUVWXYZ1234567890' ), 0, 6 );
  4.  
  5. // Sprawdzamy $hash
  6. function checkHash( $hash ) {
  7.  $dbWynik = mysql_query( 'SELECT COUNT( `hash` ) AS `jest` FROM `url` WHERE `hash` = "' . $hash . '";' )
  8.    or die( mysql_error() );
  9.  $row = mysql_fetch_assoc( $dbWynik );
  10.  return $row['hash']; // na wyjściu mam 1 lub 0
  11.  }
  12. ?>


i teraz moje pytanie, jak w pętli while zrobić, żeby sprawdzał czy jest czy nie (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Wiadomo, jak będzie, to losuje ponownie, jak nie to dodaje do bazy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Teraz mam na if'e, ale jak hash powtórzy się dwa razy, to będzie "Uuups!"
Go to the top of the page
+Quote Post
bigZbig
post
Post #2





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


  1. <?php
  2. do {
  3.    $hash = substr( str_shuffle( 'abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPRSTUVWXYZ1234567890' ), 0, 6 );
  4.    // Sprawdzamy $hash
  5.    $dbWynik = mysql_query( 'SELECT COUNT( `hash` ) AS `jest` FROM `url` WHERE `hash` = "' . $hash . '";' )
  6.    or die( mysql_error() );
  7.    $row = mysql_fetch_assoc( $dbWynik );
  8. }
  9. while ($row['hash'] == 1);
  10. ?>
Go to the top of the page
+Quote Post
DREEMus
post
Post #3





Grupa: Zarejestrowani
Postów: 286
Pomógł: 34
Dołączył: 4.09.2008
Skąd: Wrocław

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


Chodziło mi bardziej o taki zapis ...
Funkcja checkHash zwraca 0 jak brak, 1 jak już taki hash istnieje
  1. <?php
  2. $hash = substr( str_shuffle( 'abcefghijklmnopqrstuvwxyz1234567890' ), 0, 6 );
  3. if( checkHash( $hash ) == 1 )
  4.    { // jeżeli taki hash już jest ...
  5.        $check = checkHash( $hash );
  6.        while( $check == 0 )
  7.            {
  8.                $hash = substr( str_shuffle( 'abcefghijklmnopqrstuvwxyz1234567890' ), 0, 6 );
  9.                $check = checkHash( $hash );
  10.            }
  11.                else
  12.                    { echo 'dodałem do bazy ...'; }
  13. ?>


Już działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował DREEMus 18.06.2009, 17:40:25
Go to the top of the page
+Quote Post

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: 23.08.2025 - 17:16