Foros del Web » Programando para Internet » PHP »

Como mostrar el ultimo registro de la BD en un lugar, y el resto en un listado

Estas en el tema de Como mostrar el ultimo registro de la BD en un lugar, y el resto en un listado en el foro de PHP en Foros del Web. Estoy haciendo una seccion de noticias en una pagina, y necesito que el ultimo registro se muestre en la parte superior, y el resto de ...
  #1 (permalink)  
Antiguo 22/01/2008, 01:06
 
Fecha de Ingreso: enero-2008
Mensajes: 5
Antigüedad: 16 años, 3 meses
Puntos: 0
Pregunta Como mostrar el ultimo registro de la BD en un lugar, y el resto en un listado

Estoy haciendo una seccion de noticias en una pagina, y necesito que el ultimo registro se muestre en la parte superior, y el resto de los registros con un formato distinto en la parte de abajo.

Ejemplo:

- ULTIMA NOTICIA

-----------------------------------
Otras noticias:
-----------------------------------
- Penultima noticia
- Antepenultima noticia
- etc. noticia
- etc. noticia


Ya tengo las noticias en la base de datos, y de hecho puedo publicarlas en un listado repitiendo la region con Dreamweaver. Pero no se como hacer para que la noticia mas reciente la muestre aparte.

Modificando el LIMIT 1,5, me muestra del penultimo registro hasta 5 atras. Pero ahora como hago para mostrar en otra seccion la ultima noticia?

Gracias por su ayuda.
  #2 (permalink)  
Antiguo 22/01/2008, 01:31
 
Fecha de Ingreso: enero-2008
Ubicación: Sevilla
Mensajes: 22
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Como mostrar el ultimo registro de la BD en un lugar, y el resto en un listado

¿has probado a hacer un select * from noticias order by fecha_publicacion desc?

de esa manera el primer registro que obtendrías de la consulta es la noticia más reciente.

Saludos
  #3 (permalink)  
Antiguo 22/01/2008, 10:54
 
Fecha de Ingreso: enero-2008
Mensajes: 5
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Como mostrar el ultimo registro de la BD en un lugar, y el resto en un listado

Gracias jaromero,
si lo hago asi seria algo similar a mostrar los registros noticia_id DESC, y si me mostraria todos los registros que quiero ordenados cronologicamente incluyendo el ultimo, pero se haría como una lista mostrando todos los registros con una apariencia similar.

Ejemplo:

- ultima noticia
- penultima noticia
- antepenultima noticia
- etc.
- etc.

El detalle es que quiero mostrar el mas reciente en un formato distinto, es decir en una zona de la pagina diferente y con una apariencia distinta (otro estilo css).

Y lo que quiero saber es como llamar especificamente el ultimo registro en esa zona de la pagina. Pero cuando haga la lista con las noticias siguientes, no me repita el que ya mostre, sino que inicie del penultimo y asi sucesivamente.

Gracias
  #4 (permalink)  
Antiguo 22/01/2008, 14:29
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: Como mostrar el ultimo registro de la BD en un lugar, y el resto en un listado

Bueno haz la consulta nada mas.. que te muestre solo el ultimo registro.. osea la ultima noticia.. y haces otra para las demas..?? ??

Creo que asi lo quieres o no..???

Salu2..!
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
  #5 (permalink)  
Antiguo 22/01/2008, 20:11
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Como mostrar el ultimo registro de la BD en un lugar, y el resto en un listado

No, con una consulta común y corriente basta. Recuerda que mysql_fetch_assoc() genera un array asociativo con el resultado de la consulta a la BD, y con cada llamada a esta función el puntero interno de este array avanza una posición, hasta llegar al final. Es por eso que al usar el while() lo que se hace en realidad es ejecutar en cada ciclo la funcion mysql_fetch_assoc() [o mysql_fetch_array()], devolviendo en cada loop los resultados de cada registro.

Con esta base se puede deducir que si se ejecuta primero esta función fuera del while() obtendremos el primer registro por separado:

Código PHP:
$sql mysql_query("select * from noticias order by fecha_publicacion desc");
 
$datos mysql_fetch_assoc($sql);
 
echo 
'<b>Última noticia:</b> <br>';
echo 
"$datos[noticia] <br><br>";
 
echo 
"<b>Otras noticias</b> <br>";
 
while(
$datos mysql_fetch_assoc($sql)) {
    echo 
"- $datos[noticia] <br>";

Un saludo,

Última edición por okram; 22/01/2008 a las 21:26
  #6 (permalink)  
Antiguo 22/01/2008, 21:23
 
Fecha de Ingreso: enero-2008
Mensajes: 5
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Como mostrar el ultimo registro de la BD en un lugar, y el resto en un listado

Excelente!!!
Muchas gracias okram.

Despues de mucho buscar habia optado por tu sugerencia agressor, hacer dos consultas... una simple para llamar el primer registro, y otra modificando el LIMIT para mostrar los otros iniciando con el penultimo. Pero así como lo muestra okram funciona perfecto.

Muchas gracias por su ayuda
Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:01.