+34 669126284 jorvidu@gmail.com

Con diferencia, este es de los errores más comunes que nos encontraremos a lo largo de toda nuestra vida de desarrollo Web. Por suerte, suele ser muy fácil de detectar y de resolver, y va a hacer que comprendamos mejor nuestro código, así como las interacciones entre nuestra Web y la base de datos.

1 Etapa de filtro de detección:

  • Nunca poner acentos, espacios o eñes en los nombres de los campos de las bases de datos
  • Los nombres de las tablas, la misma norma anterior, y siempre en minúsculas.
  • Asegurarnos de que si estamos utilizando sesiones, la misma sigue viva (por defecto, si estamos viendo una página sin cambiar de la misma durante un periodo de unos 20 minutos, la sesión se destruye sola, con lo que la variable de sesión que almacena por ejemplo el ID de usuario, pasa a tener valor nulo.

2 etapa de filtro de detección:

En ocasiones nos sale el error y nos obcecamos en la consulta concreta de esa página, cuando no es la que está fallando. Debemos mirar el código fuente de la página que da el error en el navegador para ver exactamente cuando se para el código con el error. Ahí tendremos exactamente el lugar de nuestra programación donde la consulta está fallando, puede ser en una consulta de la página, o bien en una consulta de una función que tengamos en funciones.php, o incluso en otro archivo de inclusión.

Lo más práctico es hacer un «echo» de la variable donde almacenamos la consulta que luego se dispara, esto suele ser entre:

$query_ConsultaFuncion = «SELECT COUNT(idPublicidad) AS Total FROM tblpublicidad WHERE ……..;
$ConsultaFuncion = mysql_query($query_ConsultaFuncion, $ab) or die(mysql_error());

Es decir, entre estas dos lineas, pondremos el echo, de esta forma (el nombre de la variable puede cambiar según la hayáis llanado, claro…

echo $query_ConsultaFuncion;

Con lo que nos quedaría algo así:

$query_ConsultaFuncion = «SELECT COUNT(idPublicidad) AS Total FROM tblpublicidad WHERE ……..;
echo $query_ConsultaFuncion;
$ConsultaFuncion = mysql_query($query_ConsultaFuncion, $ab) or die(mysql_error());

Una vez puesto este echo (sería un sistema de traza sencillo), reejecutamos o actualizamos la página del fallo y veremos como sale la consulta que presumiblemente nos está fallando. Si esta consulta está correcta, deberemos seguir en el archivo de funciones.php para hacer la misma operación en todas las consultas que ejecutemos en esa página. Es decir, seguimos secuencialmente nuestra programación para saber en qué momento se está produciendo otra consulta y lo atacaremos con otro echo.

Una vez hayamos resuelto el por qué la consulta falla y lo tengamos solucionado, simplemente eliminaremos la linea del echo o la comentaremos. Los fallos más comunes de este tipo de error es por una mala construcción de la consulta, falta de parámetros, parámetros vacíos, etc… Si no tenemos un dominio muy avanzado de cómo se estructuran las consultas SQL básicas podéis consultar este sencillo manual.

Espero que os sirva de ayuda. Saludos!.