elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  me podrian explicar el sgte codigo en php
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: me podrian explicar el sgte codigo en php  (Leído 2,870 veces)
jhonatanAsm


Desconectado Desconectado

Mensajes: 376



Ver Perfil WWW
me podrian explicar el sgte codigo en php
« en: 23 Diciembre 2011, 15:44 pm »

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é?
Código:
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.


En línea

mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.
Pablo Videla


Desconectado Desconectado

Mensajes: 2.275



Ver Perfil WWW
Re: me podrian explicar el sgte codigo en php
« Respuesta #1 en: 23 Diciembre 2011, 15:59 pm »

$consulta que trae dentro  :huh:


En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.809



Ver Perfil WWW
Re: me podrian explicar el sgte codigo en php
« Respuesta #2 en: 23 Diciembre 2011, 17:36 pm »

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.

Código
  1. while($busca=mysqli_fetch_array($consulta)){
Aquí le indicamos que haga un while en todas las filas devueltas por $consulta.

Código
  1. if($busca['nombre']==$nombre && $busca['pass']==$pass)
  2. 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.


Código
  1. while($busca=mysqli_fetch_array($consulta))
  2. {
  3. if($busca['nombre']==$nombre && $busca['pass']==$pass)
  4. {
  5. echo 'ingreso';
  6. }
  7. break;//este break debería hacer que el while se ejecute una sola vez, mas no lo hace.
  8. }//fin while

Saludos
« Última modificación: 23 Diciembre 2011, 17:38 pm por drvy | BSM » En línea

cassiani


Desconectado Desconectado

Mensajes: 978


« Anterior | Próximo »


Ver Perfil WWW
Re: me podrian explicar el sgte codigo en php
« Respuesta #3 en: 23 Diciembre 2011, 19:30 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!!
En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.809



Ver Perfil WWW
Re: me podrian explicar el sgte codigo en php
« Respuesta #4 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
En línea

Pablo Videla


Desconectado Desconectado

Mensajes: 2.275



Ver Perfil WWW
Re: me podrian explicar el sgte codigo en php
« Respuesta #5 en: 24 Diciembre 2011, 04:00 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.
En línea

jhonatanAsm


Desconectado Desconectado

Mensajes: 376



Ver Perfil WWW
Re: me podrian explicar el sgte codigo en php
« Respuesta #6 en: 24 Diciembre 2011, 06:54 am »

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.

En línea

mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.
Pablo Videla


Desconectado Desconectado

Mensajes: 2.275



Ver Perfil WWW
Re: me podrian explicar el sgte codigo en php
« Respuesta #7 en: 24 Diciembre 2011, 07:00 am »

Deja que el break; este dentro de la condicion
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


Swif EME


Ver Perfil WWW
Re: me podrian explicar el sgte codigo en php
« Respuesta #8 en: 24 Diciembre 2011, 09:14 am »

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...
Código
  1. SELECT pass                -- Campos de la tabla
  2.  FROM tblUsuario             -- Tabla
  3. WHERE usuario = 'usuario' -- Condición
  4. 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.
Código
  1. 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.
Código
  1. SELECT id, nombre, apellido, email
  2.  FROM tblUsuario
  3. WHERE (usuario = 'usuario') AND (pass = 'contraseña')
  4. LIMIT 1;
« Última modificación: 24 Diciembre 2011, 09:20 am por Shell Root » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
jhonatanAsm


Desconectado Desconectado

Mensajes: 376



Ver Perfil WWW
Re: me podrian explicar el sgte codigo en php
« Respuesta #9 en: 25 Diciembre 2011, 03:49 am »

buena idea shell root.

gracias por sus respuestas.salu2.
« Última modificación: 26 Diciembre 2011, 15:53 pm por jhonatanAsm » En línea

mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines