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

obtener el ultimo registro realizado de una tabla

Estas en el tema de obtener el ultimo registro realizado de una tabla en el foro de Mysql en Foros del Web. Hola habitantes del foro, les cuento que soy nuevo aqui y apenas estoy comenzando. Ya los molesto con una duda. Resulta que estoy trabajando con ...
  #1 (permalink)  
Antiguo 26/06/2009, 00:06
 
Fecha de Ingreso: junio-2009
Mensajes: 22
Antigüedad: 14 años, 10 meses
Puntos: 1
obtener el ultimo registro realizado de una tabla

Hola habitantes del foro, les cuento que soy nuevo aqui y apenas estoy comenzando.
Ya los molesto con una duda.
Resulta que estoy trabajando con php/mysql para una aplicacion de negocios. estoy registrando las compras de un negocio. cuando ingreso la compra y la guardo en la base, el campo id va en blanco, ya que es un autoincrement y la base se encarga de colocarle un id.

tabla compra
Código:
id_compra, id_empresa, fecha, etc
tabla item_compra
Código:
id_compra, id_producto

Mi problema se presenta cuando luego de cargar la compra (con sus datos generales), quiero que el usuario seleccione los prodcuctos para esa compra (a la que debo hacer referencia con su id), pero no puedo obtenerlo de la variable del formulario ya que esta en blanco como explicaba arriba. Se me ocurrio que quizas podria obtener la ultima compra insertada en la tabla compras, obtener su id y asi si continuar.

Espero se entienda la consulta, realmente me esta vovlviendo loco, ya no se que mas hacer.


Saludos y agradecimeinto de ante mano. !!
  #2 (permalink)  
Antiguo 26/06/2009, 00:19
Avatar de amanbur  
Fecha de Ingreso: noviembre-2006
Ubicación: Valencia
Mensajes: 129
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: obtener el ultimo registro realizado de una tabla

No deberías seleccionar por empresa y fecha, o algo así, para asegurarte que es la que quieres ? Luego ya sacas la id si la necesitas
  #3 (permalink)  
Antiguo 26/06/2009, 00:21
Avatar de amanbur  
Fecha de Ingreso: noviembre-2006
Ubicación: Valencia
Mensajes: 129
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: obtener el ultimo registro realizado de una tabla

he encontrado esto:

LAST_INSERT_ID(), LAST_INSERT_ID(expr)

Retorna el último valor generado automáticamente que se insertó en una columna AUTO_INCREMENT.

mysql> SELECT LAST_INSERT_ID();
-> 195
  #4 (permalink)  
Antiguo 26/06/2009, 00:24
 
Fecha de Ingreso: junio-2009
Mensajes: 22
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: obtener el ultimo registro realizado de una tabla

Amanbur, gracias por responder, encontre la solucion par mi caso, ya que tengo el campo autoincrement en el atributo id de la compra.
Estas son dos explicaciones de como puede solucionarse este problema:

1) Tabla con un indice primario autoincrement (o algun tipo de indice primario que tenga que ver con la ordinalidad, por ejemplo un timestamp): Quiere decir que la tabla tendra una columna (suponte id) que tiene un numero ordinal que va incrementandose automáticamente, en este caso, puedes hacer "Select * from tabla order by id desc limit 0,1".

2) Si la tabla no tiene nigun índice, lo que puedes hacer es:
Select count(*) from tabla;
y luego hacer un select * from tabla limit xx,1;
De esta manera, no te puedo asegurar que siempre obtengas el ULTIMO REGISTRO, dado que cuando eliminas un registro, este es aprovechado por otro insertado.. Por lo que si necesitas por alguna razón mantener un orden, te recomiendo utiliza r un campo autoincrement como en el ejemplo 1.

No dejo el enlace de la fuente por que soy nuevito por aqui no me dejan.

amanbur, de nuevo gracias po responder tan pronto, espero que sirva a alguien en el futuro.


Saludos !!
  #5 (permalink)  
Antiguo 26/06/2009, 00:25
 
Fecha de Ingreso: junio-2009
Mensajes: 22
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: obtener el ultimo registro realizado de una tabla

Voy a probar eso tambien, si funciona aviso asi quedan las dos opciones corroboradas.
La otrame funciono bien. ya te cuento.
  #6 (permalink)  
Antiguo 26/06/2009, 00:34
 
Fecha de Ingreso: junio-2009
Mensajes: 22
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: obtener el ultimo registro realizado de una tabla

probe esa funcion pero no logre que funcionara, no me devuelve nada, ni error.
el otro metodo si me devuelve con seguridad el ultimo campo, ya que me en mi caso es un autoincrement, y nohay manera de que otra tupla ocupe ese lugar.

Gracias de todas maneras.

Mis saludos !
  #7 (permalink)  
Antiguo 26/06/2009, 00:42
Avatar de amanbur  
Fecha de Ingreso: noviembre-2006
Ubicación: Valencia
Mensajes: 129
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: obtener el ultimo registro realizado de una tabla

De acuerdo, supongo que esa función es para ciertas versiones de mysql
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 22:48.