hola, creo que el sgte codigo se deberia ejecutarse una sola vez, sin embargo llega a buscar todas las filas de la tabla, por qué?
while($busca=mysqli_fetch_array($consulta))
{
if($busca['nombre']==$nombre && $busca['pass']==$pass)
echo 'ingreso';
break;//este break debería hacer que el while se ejecute una sola vez, mas no lo hace.
}//fin while
espero puedan ayudarme.salu2.
$consulta que trae dentro :huh:
Citar$consulta que trae dentro
Pues una query x'D.
Na enserio, si pasa por todas las filas de la tabla, es porque la consulta lo indica así y/o porque usas while.
Yo veo que tienes un lio con el
if, un lio muy grande xD.
Vamos a ver.
while($busca=mysqli_fetch_array($consulta)){
Aquí le indicamos que haga un while en todas las filas devueltas por $consulta.
if($busca['nombre']==$nombre && $busca['pass']==$pass)
echo 'ingreso';
Aquí le hacemos comparacion para ver si coinciden los parametros.
PERO, ni abres el
{ que va después del
if, ni lo cierras después.
Por tanto PHP toma todo lo que esta dentro del while como un if.Tienes que escapar el if usando { y }, si no, te lias tu y se lia PHP tambien.
while($busca=mysqli_fetch_array($consulta))
{
if($busca['nombre']==$nombre && $busca['pass']==$pass)
{
echo 'ingreso';
}
break;//este break debería hacer que el while se ejecute una sola vez, mas no lo hace.
}//fin while
Saludos
Cita de: jhonatanAsm en 23 Diciembre 2011, 15:44 PM
sin embargo llega a buscar todas las filas de la tabla, por qué?
El arreglo se arma con el resultado de la consulta, va a albergar todas las filas del resultado independientemente de si las muestras o no, ahora, no sé si te refieres a eso o a las iteraciones del ciclo.
Creo que debería postear el código completo, yo no veo nada raro en esas líneas de código y efectivamente, debería iterar una sola vez.
monkey, en realidad las llaves no son necesarias si es una sola instrucción la que quieres condicionar, en este caso el
echo. Condicionara esa e ignorara las demás líneas.
saludos!!
Mmmmm, fallo mio entonces xD
PD: De todos modos, no apruebo el no usar las { }. Es un lio total xD.
Saludos
Cita de: drvy | BSM en 24 Diciembre 2011, 00:05 AM
Mmmmm, fallo mio entonces xD
PD: De todos modos, no apruebo el no usar las { }. Es un lio total xD.
Saludos
Es considerado una mala practica no usarlos.
hola. -$consulta trae una query ( select * from nombreTabla ).
-mi duda es por qué itera más de una vez?
le agregué a el codigo las llaves, pero esta igual, repitiendo varias veces.
averigue que mysqli_fetch_array() utiliza un puntero para pasar de un valor a otro, así no olvida la posición anterior. posiblemente sea esta funcion la que obliga a repetirse en contra de su voluntad!gracias por las respuestas.salu2.
Deja que el break; este dentro de la condicion
No entiendo porque la query de esa forma, es decir, supongo que con ese ingreso se supone que es un login de usuario? Debería de ser, algo al estilo...
SELECT pass -- Campos de la tabla
FROM tblUsuario -- Tabla
WHERE usuario = 'usuario' -- Condición
LIMIT 1; -- Limitar los resultados de la consulta MySQL a sólo 1
El resultado del campo pass lo guardas en una variable y después verificas qué esa pass de la consulta, sea igual al pass ingresado.
print ($returnQuery['pass'] === $pass)?"SI":"NO";
No entiendo porque recorres todos los registros, en busca del user y pass del usuario, sabiendo que también lo puedes hacer directamente desde la query.
SELECT id, nombre, apellido, email
FROM tblUsuario
WHERE (usuario = 'usuario') AND (pass = 'contraseña')
LIMIT 1;
buena idea shell root.
gracias por sus respuestas.salu2.