03/01/2015, 09:50
|
| 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: error variable indefinida y mysql_fetch_array() expects parameter 1 to be Lo más probable, para mí, es que la consulta no te esté devolviendo registros, aunque no esté dando error. Por lo que luego mysql_fetch_array() no puede recuperar nada en tanto apunta a nulos.
Ese es un error habitual. Debes verificar que la consulta efectivamente haya devuelto registros antes de intentar recorrerlos.
Por otro lado, a nivel de la consulta veo un pésimo uso de las condiciones del WHERE, un abuso de LIKE, que es una de las peores cláusulas que existen.
No se debe usar LIKE para hacer comparaciones contra identificadores numéricos. Tiende a generar datos basura, proque LIKE aplica a cadenas de texto y no a magnitudes escalares.
Un dato numérico es igual, mayor, menor o está dentro de un rango, pero nunca es "parecido a...".
¿Se entiende la distinción.
Eso mismo pasa con las fechas, no existen fechas "parecidas a...", o son iguales, son anteriores, posteriores o están entre dos fechas (rango).
Poner LIKE es una mala costumbre de los que recién se inician. Ademas es una clausula de muy mala performance, donde lo recomendable a nivel de BBDD y SQL, es no usarla, o no usarla con comodines ("%") a ambos lados porque eso hace que se lea toda la tabla, hasta el último registro... Imaginate que estás haciendo esa consulta en una tabla de diecisiete millones de registros. ¿Tendría sentido?
Empieza por verificar que tengas datos que cumplan las condiciones, y por sobre todo verifica que ninguna de las variables lleguen vacías. Y no digo que existan, o estén definidas, sino que no contengan caracteres vacíos, que no es lo mismo que NULL.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |