Foros del Web » Programando para Internet » PHP »

mysql_num_rows() expects parameter 1 to be resource

Estas en el tema de mysql_num_rows() expects parameter 1 to be resource en el foro de PHP en Foros del Web. Buenas, Agradecería si alguien puede ayudarme en buscar el error. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original $consulta = "SELECT un.*, po.nombre _ poblacion, ti.nombre _ ...
  #1 (permalink)  
Antiguo 21/07/2014, 06:19
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 10 meses
Puntos: 4
mysql_num_rows() expects parameter 1 to be resource

Buenas,
Agradecería si alguien puede ayudarme en buscar el error.

Código MySQL:
Ver original
  1. $consulta = "SELECT un.*, po.nombre_poblacion, ti.nombre_tipo_".$idioma.", op.operacion_tipo_".$idioma."
  2.                  FROM t_un as un, t_poblacion as po, t_tipo as ti, t_operacion as op, t_familia AS fm
  3.                  WHERE un.poblacion = po.id_poblacion AND un.tipo = ti.id_tipo AND un.operacion = op.id_operacion AND un.operacion = ".$idOperacion."
  4.                  AND un.operacion = fm.id_familia ".$condFam.' '.$cndTip.' '.$cndCiu.' '.$cndPre.' '.$cndHab.' '.$cndMet."
  5.                  ORDER BY ".$opor." ".$oby;
  6.         $qConsulta = mysql_query($consulta);
  7.         $registres = mysql_num_rows($qConsulta);

Me da el siguente aviso:
Código :
Ver original
  1. "Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\fincampsMBG\includes\inc_immoblestrobats.php on line 26"

Lo primero en pensar es en algún error en el SELECT, pero he comprobado el valor de la varible $consulta, lo he copiado y ejecutado, devolvíéndome 7 registros. Con lo que entiendo que la sentencia es correcta.

La linea 26, la del error es: $registres = mysql_num_rows($qConsulta);

Muchas gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #2 (permalink)  
Antiguo 21/07/2014, 06:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: mysql_num_rows() expects parameter 1 to be resource

Mirando la query limpia, sería así:
Código MySQL:
Ver original
  1.     un.*,
  2.     po.nombre_poblacion,
  3.     ti.nombre_tipo_".$idioma.",
  4.     op.operacion_tipo_".$idioma."
  5. FROM t_un as un,
  6.     t_poblacion as po,
  7.     t_tipo as ti,
  8.     t_operacion as op,
  9.     t_familia AS fm
  10.     un.poblacion = po.id_poblacion
  11.     AND un.tipo = ti.id_tipo
  12.     AND un.operacion = op.id_operacion
  13.     AND un.operacion = ".$idOperacion."
  14.     AND un.operacion = fm.id_familia ".$condFam.'
  15.     '.$cndTip.'
  16.     '.$cndCiu.'
  17.     '.$cndPre.'
  18.     '.$cndHab.'
  19.     '.$cndMet."
  20. ORDER BY ".$opor." ".$oby
Esa sintaxis tiene demasiadas cosas dependientes de variables de PHP, que no podemos ver, y que son dinámicas.

El problema, entonces, no está dado por la base de datos, sino por la forma en que armas en programación, muy probablemente (99% de posibilidades) que haya algo en las variables que no es lo que crees.

Como fuese, es OFF TOPIC en el foro de MySQL, y en los foros de BBDD no se postean codigos de programación.

Por lo demás el error mencionado es de PHO, no de MySQL, y se da cuando el objeto es nulo, por lo que en realidad es un problema de ejecución en PHP.

Movido al foro de PHP.

Consejo: Postea todo el codigo del script. Si no se ve el contexto completo no podemos saber si lo estás haciendo bien.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 21/07/2014, 06:55
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: mysql_num_rows() expects parameter 1 to be resource

Volviendo al tema: partamos de una base simple, no estás validando que la query se ejecute correctamente, por lo que es imposible saber si MySQL recibe algo válido.
Al menos deberías verificar eso así:
Código PHP:
Ver original
  1. $qConsulta = mysql_query($consulta) or die("Error al ejecutar consulta: ".mysql_error());
  2. if ($qConsulta)
  3.    {$registres = mysql_num_rows($qConsulta);
  4.     // y aqui todo lo que corresponda.
  5.     // tienes que validar SIEMPRE. Que SUPONGAS que esté bien, no implica que lo esté.
  6.    }
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: expects, mysql, parameter, registro, resource, select, sql
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 16:21.