Foros del Web » Programando para Internet » PHP »

Advertencia mysql_fetch_array(): 40

Estas en el tema de Advertencia mysql_fetch_array(): 40 en el foro de PHP en Foros del Web. Hola a todos...! Al ejecutar un enlace para imprimir una página en el script "get_documento.php", en la página de impresión me está dando esta advertencia: ...
  #1 (permalink)  
Antiguo 29/03/2013, 15:23
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 20 años, 1 mes
Puntos: 3
Advertencia mysql_fetch_array(): 40

Hola a todos...!

Al ejecutar un enlace para imprimir una página en el script "get_documento.php", en la página de impresión me está dando esta advertencia:

Warning: mysql_fetch_array(): 40 is not a valid MySQL result resource in /ruta/get_documento.php on line 17

la línea 17 está asi:

Código PHP:
while($row mysql_fetch_array($result)) {

Resto del código...

y $result está así:

Código PHP:
$result mysql_query ("SELECT *, DATE_FORMAT(fecha,'%d-%m-%Y') AS fecha, DATE_FORMAT(fecha,'%Y') AS anio FROM documentos_actas WHERE id=$idvalor"); 
La verdad que no puedo descubrir de donde sale el argumento 40 de esa advertencia...

Por favor, si me pueden ayudar u orientar!
  #2 (permalink)  
Antiguo 29/03/2013, 15:53
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: Advertencia mysql_fetch_array(): 40

Código SQL:
Ver original
  1. SELECT
  2.     *,
  3.     DATE_FORMAT(fecha,'%d-%m-%Y') AS fecha,
  4.     DATE_FORMAT(fecha,'%Y') AS anio
  5. FROM documentos_actas
  6. WHERE id=$idvalor
La sentencia SQL no contiene errores, por lo que lo más probable es que simplemente no esté devolviendo datos. Eso suele pasar cuando las variables llegan vacías, o con datos que no existen en la base.
Sería mejor que compruebes ambas cosas, y por sobre todo, compruebes si devolvió registros antes de intentar leerlos.

Por otro lado, te estás complicando la consulta. MySQL tiene mejores funciones para ciertos usos:
Código SQL:
Ver original
  1. SELECT
  2.     *,
  3.     DATE_FORMAT(fecha,'%d-%m-%Y') fecha,
  4.     YEAR(fecha) anio
  5. FROM documentos_actas
  6. WHERE id=$idvalor
Un tip adicional: Si vas a hacer "SELECT *" y luego agregar un campo, es mejor que pongas uno a uno los campos, y evites agregar columnas innecesarias.
Además, si ya recuperas la fecha, ¿por qué no tomas el año de ese mismo dato, en lugar de agregar columnas innecesariamente?
__________________
¿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 29/03/2013, 16:05
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 20 años, 1 mes
Puntos: 3
Respuesta: Advertencia mysql_fetch_array(): 40

Muchas gracias gnzsoloyo por la ayuda como siempre... pero sobre todo por la enseñanza!!!

Saludos!

Etiquetas: advertencia, mysql, select
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 07:48.