2012-02-27 9 views
8

Estoy generando un código aleatorio, y necesito verificar que el código no esté ya en la base de datos. Supongo que esto requiere algún tipo de bucle. Tengo toda la configuración de la consulta y necesito ejecutar un bloque de código nuevamente si mysql_num_rows == 0.Loop hasta que se devuelva verdadero con PHP

Respuesta

14
$key = true; 

    while($key){ 
     // Do stuff 
     if(mysql_num_rows($result) > 0) $key = false; 
    } 
+1

necesito esto para ejecutar de nuevo si hay una fila existente, por lo que pondría $ clave = verdadero al final y establecerlo en falso si 'mysql_num_rows == 0' ¿verdad? – DannyF247

+0

Sí ... directamente. Simplemente cambie> a == luego –

24

utilizar un bucle do...while:

do { 
    // Your logic 
} while (condition); 
2

actualización simple de James L. escritura - escritura de bucle de prueba si existen ID iniciar sesión en la base de datos. Si existe, se sumará 1 después de la entrada:

$key = true; 
    $a = 1; 
    $login_test_origin=$login_test; 

    while($key){   
    $query_test="SELECT count(*) as 'all' FROM user WHERE login='$login_test'"; 
    $row_test=mysql_fetch_array(mysql_query($query_test)); 
    $error=$row_test[all];  

      if($error > 0) { 
       $key = true; 
       $login_test=$login_test_origin.$a; 
       $a++;    
          } 

      else { 
       $key = false; 
       $login=$login_test; 
       } 
     } 

echo"Used login ID: $login"; 
0

Aquí es una ruta muy diferente:

while(true){ 
    if(/* Your logic which you expect to be true */){ 
     break; 
    } 
} 
+0

@jisaak ¿Cómo es esta una nueva pregunta? Es claramente una respuesta a la pregunta original. – Anders

Cuestiones relacionadas