Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [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 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!"


--------------------
Serwer : Acer Aspire 5050 : AMD Turion X2 2x1.9 MHz : 2x2 GB Dual : 250GB + 500 GB USB
Warsztat : Apache v2.2 : PHP v5.2 : MySQL v5.0 : phpMyAdmin v3.4 : phpDesigner v7
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
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. ?>


--------------------
bigZbig (Zbigniew Heintze) | blog.heintze.pl
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 smile.gif

Ten post edytował DREEMus 18.06.2009, 17:40:25


--------------------
Serwer : Acer Aspire 5050 : AMD Turion X2 2x1.9 MHz : 2x2 GB Dual : 250GB + 500 GB USB
Warsztat : Apache v2.2 : PHP v5.2 : MySQL v5.0 : phpMyAdmin v3.4 : phpDesigner v7
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 Aktualny czas: 20.08.2025 - 04:47