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

el ultimo registro ingresado en una DB mysql

Estas en el tema de el ultimo registro ingresado en una DB mysql en el foro de Bases de Datos General en Foros del Web. Amigos alguien me podria decir como hago para seleccionar el ultimo registro ingresado en una base de datos mysql??? muchas gracias!...
  #1 (permalink)  
Antiguo 27/10/2004, 15:44
 
Fecha de Ingreso: octubre-2003
Mensajes: 304
Antigüedad: 20 años, 6 meses
Puntos: 0
el ultimo registro ingresado en una DB mysql

Amigos alguien me podria decir como hago para seleccionar el ultimo registro ingresado en una base de datos mysql???

muchas gracias!
  #2 (permalink)  
Antiguo 27/10/2004, 16:23
Avatar de xcorpion  
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 20 años, 6 meses
Puntos: 4
puedes asignar un campo llamandolo "ID" con la propiedad "autoincrement" asi el ultimo registro siempre tendra el mayor "ID", asi cuando hagas la seleccion puedes hacer algo como esto SELECT * FROM tabla WHERE 1 ORDER BY ID DESC LIMIT 1
  #3 (permalink)  
Antiguo 27/10/2004, 18:02
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
loading.........



O simplemente usar

mysql_insert_id

http://www.php.net/manual/es/functio...-insert-id.php

te devolverà el ultimo ID usado


connection closed.
__________________

Maborak Technologies
  #4 (permalink)  
Antiguo 28/10/2004, 01:19
 
Fecha de Ingreso: diciembre-2003
Ubicación: Málaga
Mensajes: 495
Antigüedad: 20 años, 5 meses
Puntos: 0
tb se puede hace select max(campo) from tabla. Te devolvera el ultimo registro
  #5 (permalink)  
Antiguo 28/10/2004, 08:26
 
Fecha de Ingreso: mayo-2003
Mensajes: 174
Antigüedad: 21 años
Puntos: 0
Una consulta relacionada... saben como rescatar el record anterior en una tabla con "autoincrement", o sea, si el último registro quedó con id=4 necesito rescatar el que tiene id=3... ¿?

Gracias
  #6 (permalink)  
Antiguo 28/10/2004, 13:22
Avatar de xcorpion  
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 20 años, 6 meses
Puntos: 4
si lo que quieres es obtener los datos del penultimo registro despues de haber insertado el ultimo puedes hacer esto:

Código PHP:
mysql_query("INSERT INTO tabla(campo1, ..) VALUES(valor1,...)");
$ultimo mysql_insert_id(); //contiene el id del registro que acabamos de insertar
$penultimo $ultimo-1;
$query "SELECT * FROM tabla WHERE id_campo = $penultimo LIMIT 1";
$selpenultimo mysql_query($query);
$datospenultimo mysql_fetch_array($selpenultimo);  //array con los datos del penultimo registro 

Última edición por xcorpion; 28/10/2004 a las 13:23
  #7 (permalink)  
Antiguo 28/10/2004, 13:45
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
hola xmedia
En primer lugar pense hacer un:
SELECT max(tu_campo_id)-1 FROM tu tabla
esto devolvera el penultimo registro ingresado, pero no es optimo, ya que si el ID penultimo registro es 10 y el ultimo es 12, la sentencia devolvera 11, esto producira un error!
En los campos que son untoincrement suele suceder que los numero no estan correlativos, ya sea por que se elimino algun registro de la BD.

no probe el script de nuestro amigo xcoprion pero creo que tiene el mismo inconveniente

Le estoy investigando, si se me ocurre algo. lo poseto por aqui
Saludos!

Última edición por Genetix; 28/10/2004 a las 13:46
  #8 (permalink)  
Antiguo 28/10/2004, 13:49
Avatar de xcorpion  
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 20 años, 6 meses
Puntos: 4
o puedes utilizar simplemente

query = "SELECT * FROM tabla WHERE 1 order by id_campo DESC LIMIT 1,1";

creo que eso funcionaria, pruevalo y luego nos avisas
  #9 (permalink)  
Antiguo 29/10/2004, 09:50
 
Fecha de Ingreso: mayo-2003
Mensajes: 174
Antigüedad: 21 años
Puntos: 0
OK... gracias a todos... voy a probar

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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 16:27.