do while

AndreaHetfield

Nuovo Utente
20 Nov 2011
2
0
0
Ciao ragazzi, io ho scritto la seguente parte di codice per effettuare una verifica:

PHP:
do {
    $new_cookie = get_cookie();
    $query = "SELECT id_cookie FROM `partner` WHERE id_cookie = '$new_cookie'";
    $results = $db->get_results($query);
    
    } while ($results)

echo $new_cookie;
Dunque, la funzione get_cookie() mi restituisce una stringa di 32 caratteri alfanumerica. Ora il mio dowhile mi dovrà controllare se questa stringa esiste nel database o meno (nel caso che esista ripetere il do) fino a restituirmi una nuova stringa mai usata. Dove sbaglio? Non ho errori, solo una pagina vuota.

La query funziona, già è stata testata. L'errore penso sia nella condizione, anche se mi sembra assurdo. :O
 
Prova ad usare una funzione ricorsiva:
PHP:
function createCode()
{
    $new_cookie = get_cookie();
    $query = "SELECT id_cookie FROM `partner` WHERE id_cookie = '{$new_cookie}'";
    $results = $db->get_results($query);

    if ($results) {
        return createCode();
    }

    return $new_cookie;
}
 
Premettendo che potresti provare la funzione di Alex che dovrebbe andar bene.

1)Hai provato a stampare $new_cookie nel ciclo per vedere se effettivamente assume il valore che desideri?
2)Proverei anche a stampare la variabile $query e testarla direttamente nel db.
3)Vedere il risultato della variabile $result prima della fine del ciclo.

Potresti accorgerti da solo se c'è qualche errore.
 
Vi ringrazio ragazzi.

Cercavo e ricercavo la sintassi del ciclo, alla fine ho scoperta che mancava il punto e virgola quando sapevo che non ci dovesse andare.

Funziona, grazie mille !
 

Discussioni simili