Foros del Web » Programando para Internet » PHP »

problemas con bucle while

Estas en el tema de problemas con bucle while en el foro de PHP en Foros del Web. Que esta mal en este codigo?? el codigo para que cuando un usuario entre su nombre y cedula de una tabla llamada clientes me diga ...
  #1 (permalink)  
Antiguo 04/05/2009, 22:08
 
Fecha de Ingreso: mayo-2009
Mensajes: 11
Antigüedad: 14 años, 11 meses
Puntos: 0
Pregunta problemas con bucle while

Que esta mal en este codigo?? el codigo para que cuando un usuario entre su nombre y cedula de una tabla llamada clientes me diga lo sentimos si sta mal o me muestre los datos si sta bn, pero lo q pasa es q va chequeando cada usuario de la lista y si no esta me muestra el mensaje una y otra vez hasta q da con el usuario q si es. como hago para q solo me muestre el msj solo una vez??
> <?
> //Conexion con la base
> mysql_connect("localhost","jrios","password");
>
> //seleccion de la base de datos con la que vamos a trabajar
> mysql_select_db("jrios");
>
> //Ejecutamos la sentencia SQL
> $result=mysql_query("select * from clientes");
> ?>
> <table align="center">
> <tr>
> <th>Nombre</th>
> <th>Cedula</th>
> </tr>
> <?
> //Mostramos los registros
> while ($row=mysql_fetch_array($result))
> {
> if($cedula==$row["cedula"]){
> echo '<tr><td>'.$row["nombre"].'</td>';
> echo '<td>'.$row["cedula"].'</td></tr>';
> }
> else{
> echo "los sentimos pero ud no esta registrado";
> }
> }
> mysql_free_result($result)
> ?>
  #2 (permalink)  
Antiguo 04/05/2009, 22:16
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: problemas con bucle while

Q tal de donde sacas la variable > $cedula que esta dentro del while?
puedes utlizar break; dentro del while para que pare apenas encuentre al usuario que cumpla la condicion


Código PHP:
while(/***/)
{
if(
/**cumple condicion*/)
{
//codigo
break;


}


  #3 (permalink)  
Antiguo 05/05/2009, 18:46
 
Fecha de Ingreso: mayo-2009
Mensajes: 11
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: problemas con bucle while

mira intente lo q me dijist y sin embargo no me funciona, ahora lo cambie y escribi:
<?
if (! $result){
echo "Lo sentimos ud no esta registrado.";
exit();
}
//Mostramos los registros
while ($row=mysql_flech_array($result))
{
echo '<tr><td>'.$row["usuario"].'</td>';
echo '<td>'.$row["clave"].'</td></tr>';
}
mysql_free_result($result)
?>

sin embargo el me muestra apenas ingreso un usuario y la clave:
"Lo sentimos pero usted no esta registradoLo sentimos pero usted no esta registrado... "
siempre me muestra lo mismo asi el usuario este registrado...el chequea cada usuario y como no lo encuentra por cada usuario q chequee me da ese msj hasta terminar. ¿q otra cosa puedo hacer?
  #4 (permalink)  
Antiguo 05/05/2009, 19:44
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: problemas con bucle while

Y si estas comprobando solo que el usuario este registrado o que exista porque no haces esto

Código PHP:
$clientes=mysql_query("select campos from clientes where cliente='$cliente' and password='$pcliente' limit 1");

if(
mysql_num_rows($clientes)>0)
{
echo 
"te encuentras registrado";

}
else
{
echo 
"No estas registrado";


  #5 (permalink)  
Antiguo 20/05/2009, 17:23
 
Fecha de Ingreso: mayo-2009
Mensajes: 11
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: problemas con bucle while

Oye pero si escribo break pues como el revisa las filas en orden entoncs si un usuario q esta en la 4ta fila de la tabla ingresa con el nombre y la clave indicada d todos modos va a salir no esta registrado porque reviso el primero y ya corto.
  #6 (permalink)  
Antiguo 20/05/2009, 17:40
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: problemas con bucle while

Cita:
Iniciado por cadiyubu Ver Mensaje
Oye pero si escribo break pues como el revisa las filas en orden entoncs si un usuario q esta en la 4ta fila de la tabla ingresa con el nombre y la clave indicada d todos modos va a salir no esta registrado porque reviso el primero y ya corto.
No entiendo lo que dices dices que el break; revisa fila por fila? el break lo utlizamos para finalizar el ciclo.

Espero me entiendas o explicame bien lo que qeres hacer.
  #7 (permalink)  
Antiguo 20/05/2009, 17:45
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: problemas con bucle while

Cita:
Iniciado por cadiyubu Ver Mensaje
Oye pero si escribo break pues como el revisa las filas en orden entoncs si un usuario q esta en la 4ta fila de la tabla ingresa con el nombre y la clave indicada d todos modos va a salir no esta registrado porque reviso el primero y ya corto.
Hazlo directamente como te dijo acoevil en su post, desde la consulta SQL. Es lo mas optimo:

SELECT * FROM tabla WHERE usuario = 'talcosa'

Si la consulta devuelve 1 resultado, entonces el usuario existe, sino ... entonces simplemente no esta registrado.
  #8 (permalink)  
Antiguo 21/05/2009, 08:07
 
Fecha de Ingreso: mayo-2009
Mensajes: 11
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: problemas con bucle while

Pero es q necesito que sino esta q me devuelva el msj d q no esta autorizado...pero una sola vez
  #9 (permalink)  
Antiguo 21/05/2009, 08:11
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: problemas con bucle while

O.O Y ... ¿cual es el problema?

Echale una mirada al post de acoevil:
Código php:
Ver original
  1. $clientes=mysql_query("select campos from clientes where cliente='$cliente' and password='$pcliente' limit 1");
  2.  
  3. if(mysql_num_rows($clientes)>0)
  4. {
  5. echo "te encuentras registrado";
  6.  
  7. }
  8. else
  9. {
  10. echo "No estas registrado";
  11.  
  12. }

  #10 (permalink)  
Antiguo 21/05/2009, 08:36
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: problemas con bucle while

Por eso mira simplemente el select te devuelve la cantidad de filas que encuentra por ejemplo como dice

Ronruby

SELECT * FROM tabla WHERE usuario = 'talcosa' si este devolviera 1 registro entonces esta en la DB de lo contrario no


if(/*Esta registrado*/){echo "Entas en mi aplicacion"}
else{echo "No estas autorizado"}

utliza header(); para redireccionar a la misma pagina para que vuelva a mostrar el formulario

header("location: pagina_formulario.php);
  #11 (permalink)  
Antiguo 21/05/2009, 08:39
 
Fecha de Ingreso: mayo-2009
Mensajes: 11
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: problemas con bucle while

ok gracias...ya lo solucione de otra forma..agradezco tu ayuda
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 16:53.