Foros del Web » Programando para Internet » PHP »

problema con mysql en php

Estas en el tema de problema con mysql en php en el foro de PHP en Foros del Web. Hola! Tengo este código: if ($row = mysql_fetch_array($result)){ do { $nombre=$row[1]; $contrasena=$row[2]; } while ($row = mysql_fetch_array($result)); } else { echo "¡ No se ha ...
  #1 (permalink)  
Antiguo 26/01/2009, 08:04
 
Fecha de Ingreso: enero-2009
Mensajes: 213
Antigüedad: 15 años, 3 meses
Puntos: 0
problema con mysql en php

Hola!

Tengo este código:

if ($row = mysql_fetch_array($result)){
do {
$nombre=$row[1];
$contrasena=$row[2];
} while ($row = mysql_fetch_array($result));
} else {
echo "¡ No se ha encontrado ningún registro !";
}
No se cual es el problema pero en la primera linea de este codigo me salta un error:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource

Qué significa?

Gracias.
  #2 (permalink)  
Antiguo 26/01/2009, 08:10
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: problema con mysql en php

Cita:
Iniciado por makh16 Ver Mensaje
Hola!

Tengo este código:

if ($row = mysql_fetch_array($result)){
do {
$nombre=$row[1];
$contrasena=$row[2];
} while ($row = mysql_fetch_array($result));
} else {
echo "¡ No se ha encontrado ningún registro !";
}
No se cual es el problema pero en la primera linea de este codigo me salta un error:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource

Qué significa?

Gracias.
Hola , signifca que el recurso $result no es un recurso mysql valido , puede ser que la consulta te este fallando o que el recurso $result , este vacio , prueba de hacer antes de ese while un
Código:
echo var_dump($result);
fijate que sale y copialo acá en el foro y te digo.
  #3 (permalink)  
Antiguo 26/01/2009, 08:17
Avatar de vicram10  
Fecha de Ingreso: enero-2009
Ubicación: Asuncion
Mensajes: 326
Antigüedad: 15 años, 3 meses
Puntos: 27
Respuesta: problema con mysql en php

se me adelanto jonatanc

como dice, verifica $result

si es asi como tienes esa variable deberia de tener asignado una consulta sql

ejemplo:

Código PHP:
$result mysql_query("Tu Consulta SQL"
antes que entre a la condicion IF

salu2
  #4 (permalink)  
Antiguo 26/01/2009, 08:17
 
Fecha de Ingreso: enero-2009
Mensajes: 213
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: problema con mysql en php

@jonatanc he puesto el codigo pero no me dice nada. Solo me sale el error y el no se ha encontrado ningun registro. Pero cuando miro los registros en la base de datos, aparecen.
@vicram10 $result = mysql_query("SELECT * WHERE nombre=$nombre2 FROM usuarios", $link); Es esta la consulta.

Gracias
  #5 (permalink)  
Antiguo 26/01/2009, 08:30
Avatar de fallenagus  
Fecha de Ingreso: noviembre-2008
Ubicación: Santa Cruz - Bolivia
Mensajes: 52
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: problema con mysql en php

Cita:
Iniciado por makh16 Ver Mensaje
@jonatanc he puesto el codigo pero no me dice nada. Solo me sale el error y el no se ha encontrado ningun registro. Pero cuando miro los registros en la base de datos, aparecen.
@vicram10 $result = mysql_query("SELECT * WHERE nombre=$nombre2 FROM usuarios", $link); Es esta la consulta.
Bueno lo que puedo ver es que tu consulta MySql esta mal echa viejo. por que la condicion "Where" no puede ir antes que el "From" asi qe tu consulta cambiala por esto:

Código PHP:
@vicram10 $result mysql_query("SELECT * FROM usuarios WHERE nombre=$nombre2 "$link); 
y tiene que funcionar. claro si tenes registros en esa tabla.
  #6 (permalink)  
Antiguo 26/01/2009, 08:30
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: problema con mysql en php

Cita:
Iniciado por makh16 Ver Mensaje
@jonatanc he puesto el codigo pero no me dice nada. Solo me sale el error y el no se ha encontrado ningun registro. Pero cuando miro los registros en la base de datos, aparecen.
@vicram10 $result = mysql_query("SELECT * WHERE nombre=$nombre2 FROM usuarios", $link); Es esta la consulta.

Gracias
Hola de nuevo , ahi tiene un erro eso deberia ser asi

Código:
$result = mysql_query("SELECT * FROM usuarios WHERE nombre=$nombre2", $link);
verifica que $link sea una cadana de conexion sql valida.

Si persiste el error vuelve :)
  #7 (permalink)  
Antiguo 26/01/2009, 08:42
 
Fecha de Ingreso: enero-2009
Mensajes: 213
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: problema con mysql en php

Prové de arreglar lo que me dijisteis pero me sigue el error.

gracias por la ayuda que me estais dando!
  #8 (permalink)  
Antiguo 26/01/2009, 08:52
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: problema con mysql en php

Cita:
Iniciado por makh16 Ver Mensaje
Prové de arreglar lo que me dijisteis pero me sigue el error.

gracias por la ayuda que me estais dando!
hace un echo var_dump($link); antes de la consulta sql y pegame aca lo que te arroja...sino mas facil pasame el codigo completo de esa seccion y lo reviso yo :)...

Recorda que la cadena de conexion es algo asi
Cita:
$link=mysql_connect($server,$username,$password); or die("Error");
if($link){
mysql_select_db($db_name,$link);
return $link:
}
es decir si $link , se logra , es decir te conectas al servidor , selecciona la base y devolves el recurso $link para poder usarlo en las consultas.

PD: antes del if haz esto:
Cita:
$records=mysql_num_rows($result);
y luego echo var_dump($records); , es para ver si realmente arroja resultados tu consulta o no ya que si no tiene resultados la consulta nunca podras recorrer un array vacio con mysql_fetch_array.

Saludos colega!
  #9 (permalink)  
Antiguo 26/01/2009, 08:56
 
Fecha de Ingreso: enero-2009
Mensajes: 213
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: problema con mysql en php

con el var_dump($link) me da esto: resource(6) of type (mysql link)
  #10 (permalink)  
Antiguo 26/01/2009, 08:59
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: problema con mysql en php

Cita:
Iniciado por makh16 Ver Mensaje
con el var_dump($link) me da esto: resource(6) of type (mysql link)
esta bien la conexion esta bien hecha , seguro tu error es el tema de los resultados..la hacer una consulta que arroja 0 resultados no puedes usar mysql_fetch_array siempre te conviene hacer algo asi.

Cita:
$records=mysql_num_rows($result);
if($records>0){
while($data = mysql_fetch_array($result)){
echo $data['pepe'];
}
}else{
echo "la consulta no tiene resultados";
}
se entendio el codigo?..cualquier duda pregunta.

Saludos!
  #11 (permalink)  
Antiguo 26/01/2009, 09:08
 
Fecha de Ingreso: enero-2009
Mensajes: 213
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: problema con mysql en php

He puesto tu codigo. Te explicaré. Esta consulta es para un login para la web. Me registro y me funciona perfectamente pero al intentar usar los datos de la base de datos me dice ese error y me dice que la consulta no tiene resultados aunque si lo miro por el phpmyadmin me sale el registro.

gracias.
  #12 (permalink)  
Antiguo 26/01/2009, 09:14
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: problema con mysql en php

Cita:
Iniciado por makh16 Ver Mensaje
He puesto tu codigo. Te explicaré. Esta consulta es para un login para la web. Me registro y me funciona perfectamente pero al intentar usar los datos de la base de datos me dice ese error y me dice que la consulta no tiene resultados aunque si lo miro por el phpmyadmin me sale el registro.

gracias.
ok ,en ese caso deberia ver donde estas procesando el html que te genera o como quieres usar los datos para mostrarlos , seria mejor que copies todo el codigo de esa parte asi lo puedo ver bien :).

Saludos
  #13 (permalink)  
Antiguo 26/01/2009, 09:21
 
Fecha de Ingreso: enero-2009
Mensajes: 213
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: problema con mysql en php

el codigo es este:
Código:
if ($_POST["nombre2"]&&$_POST["contrasena2"])
{
$nombre2=$_POST["nombre2"];
$c2encriptada=md5($_POST["contrasena2"]);
$link = mysql_connect("*******", "*********","*******"); 
mysql_select_db("a4702378_usuario", $link);
var_dump($link); 
$result = mysql_query("SELECT * FROM usuarios WHERE nombre=$nombre2", $link); 
$result=mysql_num_rows($result);
if($result>0){
while($row = mysql_fetch_array($result)){
echo $row['nombre'];
}
}else{
echo "la consulta no tiene resultados";
}
if ($nombre==$_POST["nombre2"]&&$contrasena==$c2encriptada)
{
	header("Location: index.php");
}
}
Antes de todo este codigo hay solo el formulario de login
  #14 (permalink)  
Antiguo 26/01/2009, 09:30
Avatar de fallenagus  
Fecha de Ingreso: noviembre-2008
Ubicación: Santa Cruz - Bolivia
Mensajes: 52
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: problema con mysql en php

tu consulta sigue estando mal motivo:
cuando haces una consulta MYSQL si queres comparar con un campo que es de tipo "varchar" o "date" o cualquiera que no sea "numero", tu valor a comparar debe estar entre comillas simples:
"SELECT * FROM usuarios WHERE nombre='$nombre2'"

hace eso aumentale la comilla simple a tu consulta
  #15 (permalink)  
Antiguo 26/01/2009, 09:41
 
Fecha de Ingreso: enero-2009
Mensajes: 213
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: problema con mysql en php

Gracias a todos al final lo conseguí!

Última edición por makh16; 26/01/2009 a las 09:47
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 23:29.