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

[SOLUCIONADO] Recuperar último usuario registrado en la base de datos.

Estas en el tema de Recuperar último usuario registrado en la base de datos. en el foro de Mysql en Foros del Web. Hola a todos. Mi pregunta es simple. Tengo un formulario de registro al cual al grabar un usuario en la bd se le asigna una ...
  #1 (permalink)  
Antiguo 11/06/2013, 04:48
 
Fecha de Ingreso: octubre-2012
Mensajes: 45
Antigüedad: 12 años, 1 mes
Puntos: 2
Recuperar último usuario registrado en la base de datos.

Hola a todos. Mi pregunta es simple.
Tengo un formulario de registro al cual al grabar un usuario en la bd se le asigna una id automática (autoincremental). Este formulario podría enviarlo yo desde mi casa, pero también otra persona desde Francia a la vez que yo, por lo que buscar el último registro insertado no serviría, pues si mientras recupero el último el de Francia envía otro registro se fastidia la veracidad de mi consulta. Entonces, ¿como podría recuperar los datos del registro que yo acabo de hacer?
  #2 (permalink)  
Antiguo 11/06/2013, 06:40
 
Fecha de Ingreso: agosto-2003
Mensajes: 174
Antigüedad: 21 años, 3 meses
Puntos: 3
Respuesta: Recuperar último usuario registrado en la base de datos.

Hola
Mysql tiene un conjunto de funciones de información que son muy útiles.

En tu caso te puede interesar la función last_insert que devuelve el id del último usuario insertado
Código:
select last_insert() from tabla
admite un parámetro que debería ser una expresión (habitualmente el nombre de un campo). Si se especifica devuelve ese dato y no el id

Código:
select last_insert('nombre') from tabla
Otra forma de hacerlo es buscar el mayor id
Código:
select max(id) as ultimo from tabla
Yo el que uso muchísimo es found_rows() que devuelve la cantidad de filas que has tocado tras un update, delete, ..., etc.

Aqui los tienes
http://dev.mysql.com/doc/refman/5.0/...functions.html
  #3 (permalink)  
Antiguo 11/06/2013, 08:30
 
Fecha de Ingreso: octubre-2012
Mensajes: 45
Antigüedad: 12 años, 1 mes
Puntos: 2
Respuesta: Recuperar último usuario registrado en la base de datos.

Ya, si eso lo conocía. Igual no lo he explicado bien. Es posible que durante mi inserción y la consulta otra persona haga otra inserción y es por eso que lo que dices no me serviría.
  #4 (permalink)  
Antiguo 11/06/2013, 08:44
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Recuperar último usuario registrado en la base de datos.

Hola yafuslae:

Deberías de leer más acerca de lo que te comentan los foristas antes de descartar la respuesta... Gedeon, te habló de la función LAST_INSERT_ID(), leíste o buscaste ayuda acerca de esta función??? checa esta liga:

http://mysql.conclase.net/curso/?sqlfun=LAST_INSERT_ID

Ahí encuentras este párrafo:

Cita:
El último ID que fue generado se mantiene en el servidor en una base por conexión. Esto significa que el valor que devuelve la función para un cliente dado es valor AUTO_INCREMENT más reciente generado por ese cliente. El valor no puede verse afectado por otros clientes, aunque generen valores AUTO_INCREMENT por si mismos. Este comportamiento asegura que se puede recuperar un ID sin preocuparse por la actividad de otros clientes, y sin necesidad de bloqueos o transacciones. El valor de LAST_INSERT_ID() no cambia si se actualiza una columna AUTO_INCREMENT de una fila con un valor no mágico (es decir, un valor que no es NULL ni 0). Si se insertan muchas filas al mismo tiempo con una sentencia , LAST_INSERT_ID() devuelve el valor para la primera fila insertada. El motivo para esto es hacer posible reproducir más fácilmente la misma sentencia de nuevo en algún otro servidor. Si se da un argumento expr a LAST_INSERT_ID(), el valor del argumento será devuelto por la función, y se asigna como siguiente valor a retornar por LAST_INSERT_ID(). Esto se puede usar para simular secuencias:
¿Qué quiere decir esto? que no importa que otros usuarios hagan INSERT's mientras tú estás consultando este valor... ES INDEPENDIENTE... entonces por qué piensas que no te serviría???

Saludos
Leo.
  #5 (permalink)  
Antiguo 11/06/2013, 11:32
 
Fecha de Ingreso: octubre-2012
Mensajes: 45
Antigüedad: 12 años, 1 mes
Puntos: 2
Respuesta: Recuperar último usuario registrado en la base de datos.

Vaya, debo haberme confundido. Me sonaba que hay un "last" en mysql cuya función era coger el último registro insertado de una tabla. Para otra me fijo más. Y bueno, en leerme el artículo completo y probarlo ya digo como me ha ido.
  #6 (permalink)  
Antiguo 12/06/2013, 13:01
 
Fecha de Ingreso: octubre-2012
Mensajes: 45
Antigüedad: 12 años, 1 mes
Puntos: 2
Respuesta: Recuperar último usuario registrado en la base de datos.

Finalmente probé lo sugerido pero me ha venido mejor el "$mysqli->insert_id" de php [URL="http://www.php.net/manual/es/mysqli.insert-id.php"]http://www.php.net/manual/es/mysqli.insert-id.php[/URL]. Hace exactamente lo que necesitaba. Gracias por las respuestas.

Etiquetas: insert, registrado, registro, usuario
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 18:09.