Foros del Web » Programando para Internet » PHP »

A que no encuentras el Bucle infinito... Nunca termina de cargar

Estas en el tema de A que no encuentras el Bucle infinito... Nunca termina de cargar en el foro de PHP en Foros del Web. Hola amigos! Estoy implementando Facebook Connect a mi web, por lo que encontre un pequeño problema Estoy usando el nombre de la persona como "usuario" ...
  #1 (permalink)  
Antiguo 01/01/2012, 12:42
 
Fecha de Ingreso: mayo-2010
Mensajes: 35
Antigüedad: 13 años, 11 meses
Puntos: 1
A que no encuentras el Bucle infinito... Nunca termina de cargar

Hola amigos!

Estoy implementando Facebook Connect a mi web, por lo que encontre un pequeño problema

Estoy usando el nombre de la persona como "usuario" dentro de la web... El problema es el siguiente:

Entra Juan Perez y se registra en la web con el nombre "Juan"

De tras de el entra Juan Iriarte, como es obvio su usuario no puede ser Juan (ya que debe ser unico)

¿Como lo soluciono? Con un while

Código PHP:
if ($user){
    
//datos necesarios durante el registro
    
$mail $user_profile['email'];
    
$nick $user_profile['first_name'];
    
$sexo $user_profile['gender'];
    
    
$disponible==false;
    
$i="1";
                    while (
$disponible==false){
                        
$nickNEW=$nick."".$i;
                        
$consulta "SELECT * FROM `users` WHERE username = '".$nickNEW."";
                        
$result mysql_num_rowsmysql_query($consulta));
                            if (
$result==0)
                            {
                            
$disponible==true;
                            }
                        
$i++;
                        }
    
$name=$nickNEW;
    echo 
"Data".$name." Nick".$nick." Nick NEW".$nickNEW.""
En este momento lo único que quiero es que me genere el usuario...
El problema es que nunca termina de cargar, conclusión BUCLE INFINITO

¿Donde está el error? La coneccion se hace y el Querry lo ejecuta

Desde ya gracias
  #2 (permalink)  
Antiguo 01/01/2012, 12:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: A que no encuentras el Bucle infinito... Nunca termina de cargar

Tu solución es buena, aunque no deberías hacer un ciclo para obtener el nuevo nombre.

Imagina que tienes 1,000,000 de usuarios ¿vas a iterar hasta el 1,000,001?

Es absurdo, puedes usar funciones como rand() o uniqid() para obtener un valor único o aleatorio.

O también una consulta que te de el MAX(ID) de tu tabla, y concatenas el resultado con el nombre.

Ahora, tu bucle no funciona porque jamás asignas como verdadero aquí.
Código PHP:
// MAL
$disponible==true

// BIEN
$disponible=true
Ahí tienes.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 01/01/2012, 12:57
 
Fecha de Ingreso: mayo-2010
Mensajes: 35
Antigüedad: 13 años, 11 meses
Puntos: 1
Respuesta: A que no encuentras el Bucle infinito... Nunca termina de cargar

Gracias por tu respuesta... Pero sigue igual, intente utilizar variable "normales" en vez de boleanas pero sigue igual...

Código PHP:
if ($user){
    
//datos necesarios durante el registro
    
$mail $user_profile['email'];
    
$nick $user_profile['first_name'];
    
$sexo $user_profile['gender'];
    
    
$disponible="no";
    
$i="1";
                    while (
$disponible="no")
                    {
                        
$nickNEW=$nick."".$i;
                        
$consulta "SELECT * FROM `users` WHERE username = '".$nickNEW."";
                        
$result mysql_num_rows(mysql_query($consulta));
                            if (
$result<1)
                            {
                            
$disponible="si";
                            }
                        
$i++;
                    }
    
$name=$nickNEW;
    echo 
"Data".$name." Nick".$nick." Nick NEW".$nickNEW.""
  #4 (permalink)  
Antiguo 01/01/2012, 13:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: A que no encuentras el Bucle infinito... Nunca termina de cargar

Ahora tu problema es al revés.
Código PHP:
// MAL
while ($disponible="no")

// BIEN
while ($disponible=="no"
Recuerda que las comparaciones son con dos == y las asignaciones con una sola =.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 01/01/2012, 13:04
 
Fecha de Ingreso: mayo-2010
Mensajes: 35
Antigüedad: 13 años, 11 meses
Puntos: 1
Respuesta: A que no encuentras el Bucle infinito... Nunca termina de cargar

Cita:
Iniciado por pateketrueke Ver Mensaje
Ahora tu problema es al revés.
Código PHP:
// MAL
while ($disponible="no")

// BIEN
while ($disponible=="no"
Recuerda que las comparaciones son con dos == y las asignaciones con una sola =.
Un millón de gracias... Perdon por molestarte en MSN

Saludos

Etiquetas: bucle, infinito
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:02.