Ver Mensaje Individual
  #6 (permalink)  
Antiguo 19/05/2012, 10:57
JuninhoP
 
Fecha de Ingreso: mayo-2012
Mensajes: 5
Antigüedad: 12 años
Puntos: 0
Respuesta: foreach y query en PHP

Cita:
Iniciado por gjx2 Ver Mensaje
El error es por que foreach espera que el valor devuelto por [URL="http://www.php.net/manual/es/function.mysql-fetch-array.php"]mysql_fetch_array [/URL] sea un array
y si en tu consulta no existe ningún usuario con ese password la funcion [URL="http://www.php.net/manual/es/function.mysql-fetch-array.php"]mysql_fetch_array [/URL] en vez de retornate un array devolvera falso y por eso se produce el error.

Pero también mas allá del error hay algo mas que es asunto de logica.

Si andas buscando solo el usuario que coincida con el nombre y el password que le estas pasando, por que tienes que meter el resultado en un bucle ?

Puedes hacer uso de [URL="http://www.php.net/manual/es/function.mysql-fetch-row.php"]mysql_num_rows [/URL]para comprobar si la consulta arrojo resultados

eje.

Código PHP:
Ver original
  1. $sql = "SELECT * FROM Cuentas WHERE Usuario = '".$usuario."' AND Contrasena = '".$pass."'";
  2.     $query = mysql_query($sql);
  3.  
  4. # Verifico si arrojo datos la consulta.
  5. if (mysql_num_rows($query)){
  6.  
  7. # El usuario y password son validos  
  8. $fila = mysql_fetch_array($query);     
  9.  
  10. } else {
  11.  
  12. # El usuario y password no son validos.
  13.  
  14. }

Saludos.
Tienes toda la razón, el problema era de que no había ningún array, de ahí el error. De todas maneras, no se por qué me sale de qué no hay ninguno cuando en realidad si debe haberlo...

Muchas gracias por vuestras respuestas.

Última edición por JuninhoP; 19/05/2012 a las 11:03