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

problema mostrar ultimos datos ingresados

Estas en el tema de problema mostrar ultimos datos ingresados en el foro de Mysql en Foros del Web. Hola tengo este codigo. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original $consulta = mysql_query ( "SELECT id _ anuncio FROM anuncios order by id _ anuncio ...
  #1 (permalink)  
Antiguo 24/11/2011, 12:48
Avatar de pampa_  
Fecha de Ingreso: mayo-2006
Mensajes: 334
Antigüedad: 18 años, 6 meses
Puntos: 1
problema mostrar ultimos datos ingresados

Hola tengo este codigo.
Código MySQL:
Ver original
  1. $consulta = mysql_query("SELECT id_anuncio FROM anuncios order by id_anuncio desc limit 3", $link);

De esta manera obtengo mis ultimos 3 campos, pero el problema es que si tengo 5 campos 1 2 3 4 5 me muestra el 5 4 3 correcto. Pero si borro el 4 me muestra el 5 y el 3 pero donde esta el 4 lo pone todo blanco.

Existe alguna forma de hacer que corran los numero y me muestre el 5 3 2??

Gracias
  #2 (permalink)  
Antiguo 24/11/2011, 16:19
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 9 meses
Puntos: 96
Respuesta: problema mostrar ultimos datos ingresados

Saludos!

El error no es como tal de la consulta, debería funcionar como indicas, por lo que puede ser un error en tu código php.
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 06/12/2011, 11:46
Avatar de pampa_  
Fecha de Ingreso: mayo-2006
Mensajes: 334
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: problema mostrar ultimos datos ingresados

mi codigo php, esta bien vamos no tiene nada raro...
  #4 (permalink)  
Antiguo 06/12/2011, 12:57
Avatar de gnzsoloyo
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: problema mostrar ultimos datos ingresados

No sabeos si tu script de PHp tiene o no algo "raro", porque en este foro no tratamos los temas de PHP sino sólo SQL.
Lo qué si te podemos decir es que la consulta está bien escrita y no tiene errores de ningún tipo. El problema no es ese... El problema es que poner LIMIT junto con GROUP BY tiene a producir resultados erráticos inesperados.
Lo que tienes que tener en cuenta es:
- LIMIT es la última sentencia en aplicarse, pero se hace sobre el resultado como se esté devolviendo (ver manual de referencia).
Cita:
If you use LIMIT row_count with ORDER BY, MySQL ends the sorting as soon as it has found the first row_count rows of the sorted result, rather than sorting the entire result. (...) In either case, once the rows have been found, there is no need to sort any remainder of the result set, and MySQL does not do so
Lo que significa que:
Cita:
Si utiliza row_count LIMIT con ORDER BY, MySQL termina el ordenamiento tan pronto como se ha encontrado la cantidad de filas indicadas en el LIMITde los resultados ordenados, en lugar de ordenar todo el resultado. (...) En cualquier caso, una vez que las filas se han encontrado, no hay necesidad de ordenar cualquier resto del conjunto de resultados, y MySQL no lo hace
En otras palabras, no ordena todo y busca el limite. Primero busca el límite y luego ordena lo encontrado.

Para que la consulta de el resultado que tu esperas, deberás transformarla en una subconsulta, y que el LIMIT esté en la exterior:
Código MySQL:
Ver original
  1. SELECT id_anuncio
  2.     (SELECT id_anuncio
  3.     FROM anuncios
  4.     ORDER BY  id_anuncio DESC) T
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 07/12/2011, 14:18
Avatar de pampa_  
Fecha de Ingreso: mayo-2006
Mensajes: 334
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: problema mostrar ultimos datos ingresados

gracias por la respuesta, voy a probarlo.

De todas maneras el problema viene por lo que yo comentaba en el post, que al tener el indice auto_increment el solo me va actualizando cada vez que inserto un registro nuevo si borro y vuelvo a insertar me lo pone con otro indice y si quiero mostrarlos aunque lo halla borrado lo que hace es que lo saca pero vacio a mi me gustaria que este registro vacio se lo sale y solo busque los que tienen datos.

Gracias

Etiquetas: campos, query, select, sql, ultimo
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 15:34.