Porqué se genera error 'Warning: mysql_fetch_array()expects parameter 1 to be resource, boolean...'

Espero te encuentres bien. Estoy haciendo un Reporte usando la librería FPDF, pero al intentar mostrar el contenido de campo (CODIGO_A_MOSTRAR) de la tabla, el programa no muestra nada en ese espacio – esto lo hago con la siguiente instrucción:

$pdf->Cell(0,10,'Pedido (Order) #: '.$reg["CODIGO_A_MOSTRAR"],'TBRL',1,'L');

¿Me podrías decir por favor, qué error podría estar cometiendo aquí?

Entonces he intentado hacerlo de una manera distinta, con mysql_fetch_array, tanto para saber cuál es el valor que se obtiene como contenido de los campos como para también mostrarlos en el PDF, pero el programa me genera el siguiente error:

SCREAM: Error suppression ignored for
( ! ) Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\CLIENTE, pruebas\Templates\programa_prueba.php on line 62
¿Cómo podría hacer esto con mysql_fetch_array?

La fracción de código es la siguiente:
******* ******* ****** ******
$sql = "select `NUMERO`, `CODIGO_A_MOSTRAR`, `PROVEEDOR`, `FACTURAR_A`, `DESPACHAR_A`,";
$sql = $sql."`DESPACHO_APROXIMADO`, `UNIDAD_TIEMPO`, `INSTRUCCIONES_DESPACHO`, `MODALIDAD_DESPACHO`, `SUCURSAL_BANCO`, `CONDICIONES_PAGO`";
$sql = $sql." from tablax";
$sql = $sql." where CODIGO_A_MOSTRAR = 'VALOR1'";
$result = mysql_query($sql, $conexión);
$reg = mysql_fetch_array($result, MYSQL_ASSOC);
echo $sql;
while ( $reg = mysql_fetch_array($result, MYSQL_ASSOC) )
{
echo $reg["NUMERO"];
echo $reg["CODIGO_A_MOSTRAR"];
echo $reg["PROVEEDOR"];
$pdf->Cell(0,10,'Pedido (Order) #: '.$reg["CODIGO_A_MOSTRAR"],'TBRL',1,'L');
}
******* ******* ****** ******

NOTA: el archivo PDF se me ha estado generando bien – solo hasta cuando introduje este código para mostrar campos de la tabla es que me comenzó a generar problema.

2 respuestas

Respuesta
1

Podrías evaluar dos cosas.

Primero que la variable $conexión sea resultado de una conexión válida de mysql (mysql_connect)

En caso de que eso funcione, antes de la linea

$result = mysql_query($sql, $conexión);

Haz un echo a la variable $sql

echo $sql;
$result = mysql_query($sql, $conexión);

Cuando veas el resultado de ese echo, copia el contenido y pégala en algún editor de mysql o en la consola y ejecuta la sentencia, podrás ver si hay errores de sintaxis que no permitan que se genere bien la consulta.

Antetodo gracias por tu ayuda. Esas dos coas ya las había hecho: La conexión es válida; también hice echo de la variable $sql y ese contenido lo ejecuté en MySQL y funcionó.

Lo del hecho de no mostrar el contenido de campo (CODIGO_A_MOSTRAR) de la tabla, creo que en estos momentos es irrelevante, ya que yo estaba cometiendo un error: estaba ejecutando el programa en Local apuntando a la BD local la cual tenía Cero Registros en esa tabla, y los registros de prueba los había insertado en la BD sobre el sitio web de producción - lógicamente no mostrará nada probándolo así. Pero ya estoy trabajando todo, tanto programa como datos, desde el sitio web de poducción.


Mi impase ahora es el error que me está arrojando al usar la función mysql_fetch_array:

**** **** **** ****

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\CLIENTE_pruebas\Templates\programa_prueba.php on line 55

**** **** **** ****

¿Qué podría estar haciendo mal de forma tal que no me funciona el uso de mysql_fetch_array ?

Está esperando el recurso que proviene del resultado de la función mysql_query, esa función no se está ejecutando correctamente.

Disculpa por ser majadero pero hay que validar muy bien que el valor de la variable $result sea un recurso correcto de la función mysql_query(). Según lo que veo ese es el problema y cuando ocurre, puede ser porque la variable conexión no está correcta o la consulta a la base de datos no está ejecutándose correctamente.

Bajo la función mysql_query coloca la siguiente linea

echo mysql_errno($conexion) . ": " . mysql_error($conexion). "\n";

esto nos ayudara a saber que error desde mysql se esta generando.

Gracias. El error que está arrojando es

"Error en: select `camp1`, `camp2`, ... `camp ult` from tanlaX where CODIGO_A_MOSTRAR = 'VALOR1': No database selected"

Como es una aplicación que no he desarrollado yo desde cero, estaba asumiendo que ya se había seleccionado la BD. Pero ya le coloqué la instrucción siguiente antes de ejecutar 'mysql_query':

**** **** **** **** **** ****

mysql_select_db($database_friedmann, $friedmann);

**** **** **** **** **** ****

Pero aún así se sigue produciendo el mismo error ("No database selected").

???

Muchas gracias por la ayuda. La instrucción "mysql_select_db($database_friedmann, $friedmann);" si estaba funcionando - lo que sucedía era que estaba usándola ahora en el sitio local. Ya decidí usar solo el sitio web de producción para evitarme estos problemas.

Gracias.

Respuesta
1

Que es 'VALOR1'"?... en http://www.dreamweaver-tutoriales.com tenemos un tutorial concreto donde utilizamos la librería FPDF para generar archivos con datos exportados de la BD, creo que te puede venir bien el ejemplo.

Gracias. Ya solucionado el inconveniente: era una confusión que tenía por lo que estaba usando el programa en local pero la BD en la cual había cargado datos de prueba era la BD del sitio web como tal. De todas manera gracias por tu atención. "VALOR1" fue un valor constante que opté por colocar en el query mientras probaba. Pero ya todo está ok.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas