Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] while, sprawdzenie czy $hash istnieje
Forum PHP.pl > Forum > Przedszkole
DREEMus
  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 questionmark.gif
Wiadomo, jak będzie, to losuje ponownie, jak nie to dodaje do bazy smile.gif

Teraz mam na if'e, ale jak hash powtórzy się dwa razy, to będzie "Uuups!"
bigZbig
  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. ?>
DREEMus
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 smile.gif
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.