Foros del Web » Programando para Internet » PHP »

Busqueda y recorrerla.

Estas en el tema de Busqueda y recorrerla. en el foro de PHP en Foros del Web. A ver dejo el codigo y os digo lo que hace: 1.- Busca si el usuario existe. 2.- Si existe lo dice, si no, saca ...
  #1 (permalink)  
Antiguo 10/11/2006, 02:33
 
Fecha de Ingreso: octubre-2006
Mensajes: 185
Antigüedad: 17 años, 6 meses
Puntos: 0
Busqueda y recorrerla.

A ver dejo el codigo y os digo lo que hace:
1.- Busca si el usuario existe.
2.- Si existe lo dice, si no, saca un linck para confirmar los datos y ya introducirlos en la BBDD.

Problemas surjidos:
1.- mysql_free_result($usuario); m da un error: is not a valid MySQL result resource.
2.- Me parece que al no funcionar bien esta funcion, hace que cada vez que busca una linea de la tabla me sale siemrpe lo d dentro del if porque no para el while.(se que esto no se entiende muxo pero no se como esplicarlo).
3.- En el else como se sucede lo mismo como esta funcion no va el link me sale tantas veces como lineas tiene la tabla.

Que hago que suce que tiene de malo esa funcion??.
Como hago para que solo m salga una vez el link y las cosas que pudiera introducir en el if y en el else.
Gracias por leer este toston aqui os dejo el codigo.


$usuario=mysql_query("select nombre from clientes");
$idioma=substr($HTTP_ACCEPT_LANGUAGE,0,2);
while($us=mysql_fetch_array($usuario)){
if ($d1==$us['nombre']){
echo "El usuario ya existe<br>";
echo "El usuario existente es : ".$us['nombre']."<br>";
echo "El usuario escrito es: ".$d1."<br>";
mysql_free_result($usuario);
}

else
{
echo'<a href="insertar.php">Confirmaciones de datos</a><br>';
mysql_free_result($usuario);
}
}


Por cierto cuando hay dos usuarios registrados, no entra en el if si busca el segundo usuario.
  #2 (permalink)  
Antiguo 10/11/2006, 02:59
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
hola!
no ser si te entendido bien pero seguin lo q me a parecido a mi aqui tienes un fallo de estructura. es normal q te muestre tantos links como nombres tengas en tu tabla. fijate en tu bucle, con el while lo q haces es mirar todo el contenido de la tabla y si pones el if dentro pues para cada registro te hara una comprobacion.
lo podrias plantear desta manera:
Código PHP:
<?
$idioma
=substr($HTTP_ACCEPT_LANGUAGE,0,2);
//Aqui hacemos la consulta sobre el nombre entrado
$usuario=mysql_query("select nombre from clientes WHERE nombre='".$d1."'") or die(mysql_error());
//numero de registros q te devolvera la consulta
$nreg_usuario=mysql_num_rows($usuario);
//si es mas grande de 0 quiere decir q hay registros
if ($nreg_usuario 0){
    
$us=mysql_fetch_array($usuario);
    echo 
"El usuario ya existe<br>"
    echo 
"El usuario existente es : ".$us['nombre']."<br>"
    echo 
"El usuario escrito es: ".$d1."<br>"
    
mysql_free_result($usuario);
}else{
    echo
'<a href="insertar.php">Confirmaciones de datos</a><br>';
    
mysql_free_result($usuario);
}
?>
EDITADO: si quieres parar un bucle cuando se cumple una condicion utiliza el break
saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
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 15:14.