Cita: debo decir que esa consulta arroja mas de 60 resultados desde phpmyadmin asique no puede ser por falta de datos. Curiosamente me acabo de dar cuentar que los esta ordenador por el titulo.
Que los responda por phpMyAdmin, te advierto, no implica que en el script algo funcione bien. Sólo que no hay errores de sintaxis, porque en el phpMyAdmin no puedes poner la variable
$_SESSION["noticia"] que estás usando, sino en todo caso un valor fijo, que has debido poner a mano y por tanto puede ser distinto a lo que la sentencia está tomando en el script (1 byte de diferencia ya es significativo).
Una de las razones por la que insistimos en que no se ponga código de programación (PHP o lo que sea, las reglas de este foro así lo dicen) en este foro es porque el código de las aplicaciones
esconde los problemas que puedan provenir del uso de variables. En tu caso, yo insisto en que si se produce que
Cita: Da error en la linea donde esta el WHILE, la cosa es que la hago desde phpmyadmin y funcina perfectamente
El problema es qué puede producir un error así en el WHILE. Por mi experiencia personal y lo que sé del funcionamiento interno del while en este y otros lenguajes (en todos opera de la misma forma), un error como lo describes
se da cuando no hay registros en la tabla devuelta.
Ahora bien, y esto lo tienes que analizar: si la variable que usas llega vacía por alguna razón, o contiene valores que
puedan devolver vacío (dar FALSE), la tabla vendrá con los encabezados, pero sin datos...
¿Has consierado esa posibilidad?
No sirve, como dije, usar de referencia el phpMyAdmin para comprobarlo, porque no tienes acceso al valor que tomas en la variable; por ello estás reproduciendo mal el problema.
Lo que debes hacer es una de dos cosas:
1) Verifica el valor de la variable
antes y después de insertarla:
Código PHP:
Ver originalecho $_SESSION["noticia"];
$consulta='SELECT * FROM car WHERE Nnoticia ='.$_SESSION["noticia"].'ORDER BY fecha DESC';
echo $consulta;
2) Verifica realmente lo que está volviendo, y en todo caso si MySQL está retornando un error que no se vea:
Código PHP:
Ver original$consulta='SELECT * FROM car WHERE Nnoticia ='.$_SESSION["noticia"].'ORDER BY fecha DESC';
if (!$resultado) {
}
else
{
{
}
}
Si no da error, pero tampoco obtiene registros... la variable está vacía o da False. ¿OK?
En cualquier caso, el primer ejemplo te permitirá recuperar la sentencia que
realmente estás enviando, y usar
eso para probarlo en MySQL...