Foros del Web » Programando para Internet » PHP »

El ultimo registro

Estas en el tema de El ultimo registro en el foro de PHP en Foros del Web. Alguien sabe como obtener el ultimo registro insertado de una tabla?? La unica forma que se me ocurre, es hacer un ciclo While() e ir ...
  #1 (permalink)  
Antiguo 23/07/2004, 22:56
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 13 años, 5 meses
Puntos: 53
El ultimo registro

Alguien sabe como obtener el ultimo registro insertado de una tabla??
La unica forma que se me ocurre, es hacer un ciclo While() e ir agarrando cada registro en una variable, y pues cuando salga del ciclo, pues quedara en la variable el ultimo.

mi pregunta es, hay alguna funcion que me diga cual es el ID del ultimo registro??

Thanks!!
  #2 (permalink)  
Antiguo 23/07/2004, 23:12
Avatar de sir_notos  
Fecha de Ingreso: noviembre-2001
Ubicación: Mexicali
Mensajes: 709
Antigüedad: 16 años
Puntos: 1
si tienes un campo id (auto increment) en tu tabla

tons
puedes usar

Código PHP:
$sql 'select max(id) as max from table';
// esto te regrea el id maximo
// el cual luego puedes usar para obtener el ultimo registro

$sql 'selectt * from table where id ='.$maxId
deve haber una mejor forma de hacerlo pero esto fue lo primero que se me ocurrio
__________________
Usuario Registrado de linux #374849
  #3 (permalink)  
Antiguo 24/07/2004, 00:17
 
Fecha de Ingreso: mayo-2004
Mensajes: 8
Antigüedad: 13 años, 6 meses
Puntos: 0
eemm

bueno haber para obtener el ultimo id puedes hacerlo de esta forma :)

$resp = mysql_query("SELECT * FROM tabla ORDER BY id DESC LIMIT 1");
while($row = mysql_fetch_array($resp)){
echo "el ultimo id es: $row[id]";
}


Hasta Pronto

Última edición por FreeBSD69; 24/07/2004 a las 00:20
  #4 (permalink)  
Antiguo 24/07/2004, 10:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tanto desde PHP como Mysql .. tienes comandos para tal fin:

PHP:
myslq_insert_id()
http://www.php.net/manual/en/functio...-insert-id.php

Mysql:
LAST_INSERT_ID()
www.mysql.com
(lo más optimo que hay para obtener ese dato .. sobre todo si se usa en conjunto con transacciones)

Un saludo,
  #5 (permalink)  
Antiguo 26/07/2004, 01:07
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 13 años, 5 meses
Puntos: 53
OK, la funcion mysql_insert_id() te dice el ultimo registro insertado, inmediatamente despues que se a insertado (i understand that, but my english isn`t very well).

Bien, lo que yo quiero hacer, es que tengo una tabla con N numero de elementos, y los quiero mostrar 10 por pagina, entonces se me ocurre N/10, para poder saber cuantas paginas se ban a crear y poner los links a ellas al go asi:

1 | 2 | 3| 4 | etc...

Lo propues de FreeBSD, pues eso ya se me a ocurrido, pero lo que quiero saber es si hay alguna funcion especifica que lo haga, para no hacer el ciclo, La propuesta de Cluster, esar mysql_insert_id() solo funciona despues de insertar un registro, creo que no me sirve mucho. la propuesta de Sir_notos, me parece muy buena pero tengo un par de dudas, de donde sale la variable $maxID, se crea solita al ejecutar la instruccion SQL?? por que si es eso, creo tener la solucion!!

anyway, si alguien tiene otra idea, digalo!!

Thanks!!
  #6 (permalink)  
Antiguo 26/07/2004, 01:43
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 14 años, 1 mes
Puntos: 1
reinventar la rueda.......??

lo que quieres hacer, si es que te explicaste bien. Se llama paginacion. Aqui puedes encontrar un paginador http://jpinedo.webcindario.com/doc-paginator.php
nunca lo he utlilizado, pero creo que es bueno segun dicen.

Y la variable $maxId no se crea sola, la tienes que creas a partir del result set devuelto por mysql.

Código PHP:
 $sql 'SELECT MAX(id) AS maximo FROM table';
$rss mysql_query($sql);
$obj mysql_fetch_object($rss);
$maxId $obj->maximo
y listo tienes tu $maxId.....
pero no entiendo para que quieres el maximo, no puedes basar tu paginador en el ID, por que si en dado momento borras un registro, tu ultimo registro dice 55, pero no necesariamente todos existen, pudiste haber borrado el 42, el 33 etc...

lo que se utiliza es SELECT COUNT() de SQL o bien mysql_num_rows() de PHP

un saludo
  #7 (permalink)  
Antiguo 26/07/2004, 07:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si hubieras dicho eso desde el principio .. que lo que quierías es "paginar" .. buff .. te hubieramos recomendado lo que mencionó sism82. No se hace un "max" sino que se cuentan los registros en toda página de tu "paginado" y todo eso en conjunto con LIMIT de SQL de Mysql que te permite selecionar un grupo de registros desde N hasta N+desplazamiento.

Un saludo,
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 09:34.