Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Obtener los últimos 5 valores de una tabla en orden (con PHP)

Estas en el tema de Obtener los últimos 5 valores de una tabla en orden (con PHP) en el foro de Mysql en Foros del Web. Saludos! Necesito saber como puedo hacer con PHP y MySQL para obtener los últimos 5 registros de una base de datos ordenados por su ID. ...
  #1 (permalink)  
Antiguo 16/11/2010, 14:58
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Pregunta Obtener los últimos 5 valores de una tabla en orden (con PHP)

Saludos!

Necesito saber como puedo hacer con PHP y MySQL para obtener los últimos 5 registros de una base de datos ordenados por su ID.

Se que se puede hacer haciendo la consulta del ultimo al primero con limite 5 (SELECT * FROM tabla ORDER BY id DESC LIMIT 5), guardando todos los registros en un arreglo y luego invertirlos para imprimir.

Pero estoy seguro de que con lógica se puede hacer sin todo ese montón de código, se agradecen sus respuestas.

(Si tengo poco karma es por que me registre hace años y deje de entrar por un buen tiempo, pero antes ayudaba bastante )
  #2 (permalink)  
Antiguo 16/11/2010, 15:03
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Obtener los últimos 5 valores de una tabla en orden (con PHP)

stramin... podrías poner un ejemplo de lo que quieres?

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 16/11/2010, 15:21
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Obtener los últimos 5 valores de una tabla en orden (con PHP)

ok, supongamos que tengo esta tabla llamada table:

ID Nombre Apellido Pelicula contraseña variable1 variable2 variable3 variable4 ... variable 999
1
2
3
4
5
6
7
8

donde solo quiero obtener los últimos 5 en orden (4,5,6,7,8), lo ideal es hacerla solo en mysql, pero si no se puede usar un poco de PHP.

Conozco 2 formas pero muy largas como explique antes que vendria ser:

FORMA 1:

SELECT * FROM tabla ORDER BY id DESC LIMIT 5

la cual me da los registros 8,7,6,5,4, luego guardo todas las variables en varios arreglos para cada campo y luego invierto el orden usando PHP

Este paso es larguisimo! sobretodo si son muchos campos.

FORMA 2:

averiguar cuantos registros tiene la tabla usando algo como mysql_num_rows() de PHP o COUNT() de MySQL, restarle 5 y tomar los ultimos 5

SELECT * FROM tabla ORDER BY id ASC LIMIT $var_total_menos_5,5

Este es un poco mas corto pero cuando son muchas consultas se pone lento el servidor, y solo para contar cuantos registros hay (a veces son muchos)
  #4 (permalink)  
Antiguo 16/11/2010, 16:16
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Obtener los últimos 5 valores de una tabla en orden (con PHP)

Si entendí bien es algo mas o menos así:

Código MySQL:
Ver original
  1. mysql> select *from ordenamiento;
  2. +------+
  3. | id   |
  4. +------+
  5. |    1 |
  6. |    2 |
  7. |    3 |
  8. |    4 |
  9. |    5 |
  10. |    6 |
  11. |    7 |
  12. |    8 |
  13. +------+
  14. 8 rows in set (0.00 sec)
  15.  
  16. mysql> select *from ordenamiento order by 1 desc limit 5;
  17. +------+
  18. | id   |
  19. +------+
  20. |    8 |
  21. |    7 |
  22. |    6 |
  23. |    5 |
  24. |    4 |
  25. +------+
  26. 5 rows in set (0.02 sec)
  27.  
  28. mysql> SELECT *FROM (select *from ordenamiento order by 1 desc limit 5) t order by 1 asc;
  29. +------+
  30. | id   |
  31. +------+
  32. |    4 |
  33. |    5 |
  34. |    6 |
  35. |    7 |
  36. |    8 |
  37. +------+
  38. 5 rows in set (0.00 sec)
  39.  
  40. mysql>
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 17/11/2010, 08:01
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Obtener los últimos 5 valores de una tabla en orden (con PHP)

ooooh! muy buena, excelente, nunca había hecho selects anidados así en mysql, funcionó perfecto!
  #6 (permalink)  
Antiguo 17/11/2010, 08:02
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Obtener los últimos 5 valores de una tabla en orden (con PHP)

Me sale:

Tu debes de esparcir algo de Karma a otros usuarios antes de darle otra vez a huesos52.

eso por que es?
  #7 (permalink)  
Antiguo 17/11/2010, 08:04
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Obtener los últimos 5 valores de una tabla en orden (con PHP)

Ayer me diste karma.

Debes darle a 30 personas mas, antes de poder darme nuevamente. Ademas el karma, fue en este mismo tema stramin.

Muchas gracias por el karma y me alegra que te haya funcionado.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #8 (permalink)  
Antiguo 17/11/2010, 08:20
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Obtener los últimos 5 valores de una tabla en orden (con PHP)

30!? pero si solo uno me ha ayudado XD

Etiquetas: orden, php, tablas
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 07:01.