PDA

Ver la Versión Completa : No funciona ORDER BY desc LIMIT


franroju
27-03-2013, 21:54:47
Hola gente, tengo un problemita.

Ejecuto este código:

$sql1 = "SELECT id, titulo, cuerpo FROM novedades ORDER BY id desc LIMIT 4";

$query1 = mysql_query($sql1, $conexion);

if(mysql_num_rows($query1)>0) {

$novedades = array();

while($datoNov = mysql_fetch_array($query1)){

if (strlen($datoNov['cuerpo']) > 200){
$resumen = substr($datoNov['cuerpo'],0,200).'...';
}
else{
$resumen = substr($datoNov['cuerpo'],0,200);
}

$tmpNov = array('id' => $datoNov['id'],
'resumen' => $resumen,
'titulo' => $datoNov['titulo']);

$novedades[$i++] = $tmpNov;
}

}

Lo raro es que no me muestra el primer registro (que en realidad es el último por el ORDER BY desc), es decir:

Tengo los registros 1, 2, 3, 4... después de la consulta quedarían 4, 3, 2, 1. Y me muestra sólo los registros 3, 2, 1. Lo mismo sucede así tenga menos de 4 registros. Por ej. si tengo 2, me muestra el registro 1 solamente.

Espero puedan ayudarme.

Saludos

roman
28-03-2013, 00:46:14
A mi me suena a que el problema no está en la consulta, sino en la forma en que construyes el arreglo $novedades. ¿Cuál es el valor inicial de $i?

// Saludos

franroju
28-03-2013, 14:08:44
Si efectivamente, me había olvidado de poner $i en 0 antes de comenzar la iteración. Sigo con el pecado de abusar del foro antes de razonar un poco más.

Gracias roman, un abrazo.