Foros del Web » Programando para Internet » PHP »

Ultimo registro insertado

Estas en el tema de Ultimo registro insertado en el foro de PHP en Foros del Web. Hola amigos, Quisiera saber de que forma puedo recuperar de la BD el último registro insertado perteneciente a un xID. Por ejemplo una agencia tine ...
  #1 (permalink)  
Antiguo 02/05/2002, 18:12
Avatar de locojars  
Fecha de Ingreso: mayo-2002
Mensajes: 265
Antigüedad: 15 años, 7 meses
Puntos: 4
Ultimo registro insertado

Hola amigos,

Quisiera saber de que forma puedo recuperar de la BD el último registro insertado perteneciente a un xID.

Por ejemplo una agencia tine ID3 y cuando inserta en la BD inserta el ID3 (tabla relacional) cuando recupero los registros de esta tabla lo hago con el ID3 pero quisiera saber la forma de hacer un Select de el último registro.
Gracias por su ayuda.
Salu2
JARS.
  #2 (permalink)  
Antiguo 02/05/2002, 18:31
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 16 años, 1 mes
Puntos: 5
Re: Ultimo registro insertado

pues te recomiendo k primero cuentes los registros de la base de datos, de esa manera sabes cual es el ultimo, y luego hagas un SELECT campo FROM tabla WHERE id = $ultimo

$ultimo seria el numero total de registros

<table style="border:1px solid black"><tr><td><center>
<embed width="88" height="144" src="http://www.alaplaya.com/~epplestun/yo.swf"></td></td><font face=verdana size=1>Ivan Rodriguez el poder es [B]PHP</p></td></tr></table>
  #3 (permalink)  
Antiguo 02/05/2002, 20:13
 
Fecha de Ingreso: diciembre-2001
Mensajes: 451
Antigüedad: 16 años
Puntos: 0
Re: Ultimo registro insertado

mira segun yo,si estamos buscando el ultimo registro ingresado, no se.. pero no le entendi muy bien a a epplestun, pero al ojo no funcionaria eso, lo que se podria hacer seria

1.- si estas usando como clave o como ID's un campo numero autoincrementable, que es lo mas comun, deberias usa un select asi para obtener el ultimo registro, ya que segun he observado al autoincrementar los indices cuando se inserta, siempre incrementa el mayor a 1 y no 'ocupa' los numeros que fueron borrados y que estan al medio, asi que cada vez que insertes siempre el ultimo registro va a ser el que tenga el mayor valor en la ID (campo de tipo autoincrement)

el select seria

SELECT Max(Id) FROM tabla

luego, el resultado seria el Id del registro que tiene mayor valor en el campo Id, osea el ultimo registro ingresado.

Saludois
  #4 (permalink)  
Antiguo 02/05/2002, 20:40
Avatar de locojars  
Fecha de Ingreso: mayo-2002
Mensajes: 265
Antigüedad: 15 años, 7 meses
Puntos: 4
Re: Ultimo registro insertado

Hola Amigos,

Bueno gracias a epplestun por la primera respuesta y a ti d^_^b por tomarte el tiempo y pensar cual es la respuesta correcta.

Bueno he estado realizando pruebas y lo que dice d^_^b es cierto.. yo tengo el campo autoincrement y si borro un registro de enmedio de la tabla cuando ingreso uno nuevo siempre incrementa en 1 y hace caso omiso del que se ha borrado.

Ya probe el Select Max(My campo ID) y exactamente devuelve el ultimo valor.. osea el mas alto. Asi que creo que por el momento esta es la solucion al problema que tenia.

Salu2 y gracias a ambos
JARS.
  #5 (permalink)  
Antiguo 03/05/2002, 01:40
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 16 años, 1 mes
Puntos: 5
Re: Ultimo registro insertado

Me alegro de k lo hayas logrado, pero lo que yo decia era lo siguiente, hacer un primera consulta, que te contase el numero de registros, no el valor del ultimo registro, de esa forma si hay 5 registrosy los cuentas el valor de la variable que lo contega es 5 y luego para selecionar ese registro tan solo tendrias que hacer la consulta hacia ese valor.

<table style="border:1px solid black"><tr><td><center>
<embed width="88" height="144" src="http://www.alaplaya.com/~epplestun/yo.swf"></td></td><font face=verdana size=1>Ivan Rodriguez el poder es [B]PHP</p></td></tr></table>
  #6 (permalink)  
Antiguo 03/05/2002, 09:39
 
Fecha de Ingreso: diciembre-2001
Mensajes: 451
Antigüedad: 16 años
Puntos: 0
Re: Ultimo registro insertado

ya me quedo mas clara tu idea epplestun, pero que pasa si yo tengo 5 registros cada uno con su id autoincrementable, osea 1,2,3,4,5 cierto?...

y ahora hago el select count(*) para que me devuelva los registros y asi tengo 5, osea si pongo select * where id=5 obtendre el ultimo registro...

ok, hasta ahi estamos bien, pero que pasa si yo borro 1 registro , digamos el que tiene id 3, y se me ocurre insertar otro, ese ultimo quedaria con id 6, ya que el campo incrementa en uno el ultimo numero de indice usado y lo usa como clave para el nuevo registro,

entonces tendriamos los registros asi 1,2,4,5,6 , ahora no podriamos hacer lo que dices tu porque tendria 5 registros de nuevo pero al hacer el SELECT * from tabla where ID = 5, no sacariamos los datos del ultimo registro sino del que tiene ID 5.

eso...esteeee...saludois
  #7 (permalink)  
Antiguo 03/05/2002, 10:26
 
Fecha de Ingreso: marzo-2002
Mensajes: 6
Antigüedad: 15 años, 8 meses
Puntos: 0
Re: Ultimo registro insertado

Saludos

Hay varias formas de de encontrar el ultimo registro, tengo que estar deacuerdo con epplestun , en que contar los resgistros usando la funcion mysql_num_rows() y luego usando el resultado en la función mysql_data_seek(), es totalmente valida y muy eficiente, pero si quieres puedes usar un acercamiento mas simple, si ordenas el resultado del query de forma descendiente el primer resgistro tendra el ultimo ID, hago como esto;

$sql = &quot;select * from tabla order by id desc&quot;;
  #8 (permalink)  
Antiguo 03/05/2002, 10:48
 
Fecha de Ingreso: diciembre-2001
Mensajes: 451
Antigüedad: 16 años
Puntos: 0
Re: Ultimo registro insertado

sip, bueno no conocia la funcion mysql_seek...pero por lo que vi solo mueve el puntero dentro del cuersor que saca de la base de datos, en la ayuda hay un ejemplo que recorre los registros en orden inverso, pero no es lo mismo, y con este select

$sql = &quot;select * from tabla order by id desc&quot;;

sacarias todos los registros de la base de datos para solo sacar UNO, y que tal si tenemos 5000 registros o mas y ademas cada registro con 20 campos ???...no es lo mas optimo, es mejor hacerlo con dos consultas pequeñas que usar ese metodo, es mas directo.
  #9 (permalink)  
Antiguo 08/05/2002, 13:57
Avatar de locojars  
Fecha de Ingreso: mayo-2002
Mensajes: 265
Antigüedad: 15 años, 7 meses
Puntos: 4
Re: Ultimo registro insertado

Bueno amigos en lo personal agradezco mucho el tiempo que se tomaron todos en contestar.. ahi en ese debate si no me meto porque es de GURUS y yo apenas comienzo con PHP, pero lo que si puedo decir es que la respuesta de d^_^b sobre como encontrar el ultimo registro me funciono, los otros metodos que me dieron no los he probado.

Lo que hice fue esto:
$resultado1=mysql_query(&quot;Select MAX(IDInvent) from puntos_club where IDSocio=&quot;.$IDSocio,$link);
while($row=mysql_fetch_array($resultado1))
{
$IDInvent = $row[&quot;MAX(IDInvent)&quot;];
}

Ahora estoy utilizando el IDInvent en cualquier lugar que quiero y me esta funcionando de maravilla. Claro mi IDInvent es autoincrement.

Agradezco de nuevo vuestra ayuda y saludos a todos.
JARS. :)
  #10 (permalink)  
Antiguo 08/05/2002, 15:52
 
Fecha de Ingreso: diciembre-2001
Mensajes: 451
Antigüedad: 16 años
Puntos: 0
Re: Ultimo registro insertado

de nada amigo
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 13:33.