elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:17  


Tema destacado: Nueva página de elhacker.net en Google+ Google+

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  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 853 veces)
jhonatanAsm

Desconectado Desconectado

Mensajes: 214



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

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 <negrita id="usuario" class="creaciones">J.A.</ negrita>
DonVidela


Desconectado Desconectado

Mensajes: 1.617



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

$consulta que trae dentro  :huh:


En línea

Aprendiendo: Java , C# , pl/sql, mysql , sql server, PHP , Access, JSF, Facelets, JSP, CakePHP, JQuery

http://pablovidela.wordpress.com
drvy | BSM


Desconectado Desconectado

Mensajes: 1.129


badstupidmonkey


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

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
while($busca=mysqli_fetch_array($consulta)){
Aquí le indicamos que haga un while en todas las filas devueltas por $consulta.

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


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

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


Desconectado Desconectado

Mensajes: 946


« Anterior | Próximo »


Ver Perfil WWW
Re: me podrian explicar el sgte codigo en php
« Respuesta #3 en: 23 Diciembre 2011, 19:30 »

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 | BSM


Desconectado Desconectado

Mensajes: 1.129


badstupidmonkey


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

Mmmmm, fallo mio entonces xD


PD: De todos modos, no apruebo el no usar las { }. Es un lio total xD.
Saludos
En línea
DonVidela


Desconectado Desconectado

Mensajes: 1.617



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

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

Aprendiendo: Java , C# , pl/sql, mysql , sql server, PHP , Access, JSF, Facelets, JSP, CakePHP, JQuery

http://pablovidela.wordpress.com
jhonatanAsm

Desconectado Desconectado

Mensajes: 214



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

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 <negrita id="usuario" class="creaciones">J.A.</ negrita>
DonVidela


Desconectado Desconectado

Mensajes: 1.617



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

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

Aprendiendo: Java , C# , pl/sql, mysql , sql server, PHP , Access, JSF, Facelets, JSP, CakePHP, JQuery

http://pablovidela.wordpress.com
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


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

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

---
jhonatanAsm

Desconectado Desconectado

Mensajes: 214



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

buena idea shell root.

gracias por sus respuestas.salu2.
« Última modificación: 26 Diciembre 2011, 15:53 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 <negrita id="usuario" class="creaciones">J.A.</ negrita>
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines