Foros del Web » Programando para Internet » PHP »

Conocer el ultimo identificador de registro real

Estas en el tema de Conocer el ultimo identificador de registro real en el foro de PHP en Foros del Web. Hola a todos Me surge la siguiente pregunta: ¿Como puedo conocer el último ID de la base de datos para saber cual será el siguiente? ...
  #1 (permalink)  
Antiguo 03/01/2007, 06:24
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
Conocer el ultimo identificador de registro real

Hola a todos

Me surge la siguiente pregunta:

¿Como puedo conocer el último ID de la base de datos para saber cual será el siguiente?
He probado haciendo una consulta, pero claro, si el ultimo registro que se ha insertado, tambien ha sido eliminiado la consulta no me devuelve un ID real, sino el ID del ultimo registro...

No se si me he explicado bien...

Alguna sugerencia
  #2 (permalink)  
Antiguo 03/01/2007, 07:42
 
Fecha de Ingreso: octubre-2004
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 19 años, 6 meses
Puntos: 7
Re: Conocer el ultimo identificador de registro real

Tienes que hacer la consulta SQL siguiente:
Código PHP:
"SELECT LAST_INSERT_ID()" 
  #3 (permalink)  
Antiguo 03/01/2007, 08:08
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Conocer el ultimo identificador de registro real

Ejecuta la siguiente query

Código PHP:
$sql "SHOW TABLE STATUS FROM tubasedatos where name='tutabla'"
Te devolverá una sóla fila.

El campo Auto_increment tiene el valor real: el próximo id de tu tabla.

Un saludo

Última edición por holahola; 03/01/2007 a las 08:38
  #4 (permalink)  
Antiguo 04/01/2007, 05:43
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
Re: Conocer el ultimo identificador de registro real

Tengo el siguiente codigo

$sql_con="SELECT LAST_INSERT_ID()";
$con=mysql_query($sql_con) or die (mysql_error());
$id=mysql_fetch_array($con);
$num=$id[0];
echo $num;

Pero $num me devuelve 0

¿?
  #5 (permalink)  
Antiguo 04/01/2007, 05:47
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Conocer el ultimo identificador de registro real

¿Probaste con SHOW TABLE STATUS?
  #6 (permalink)  
Antiguo 04/01/2007, 05:49
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
Re: Conocer el ultimo identificador de registro real

No.

Podrias exponerme el codigo tambien de la query y como obtener el dato del Id??

Gracias por el interes
  #7 (permalink)  
Antiguo 04/01/2007, 05:49
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Conocer el ultimo identificador de registro real

Lo tienes en mi respuesta anterior...
  #8 (permalink)  
Antiguo 04/01/2007, 05:53
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Conocer el ultimo identificador de registro real

Este es un ejemplo completo que he probado y funciona correctamente:

Código PHP:
<?
$link 
mysql_connect('****','****','****');

echo 
'<br><br>Sólo se espera una fila';
$result mysql_query("SHOW  TABLE STATUS  FROM dbusuarios where name='usuarios'",$link);

$row mysql_fetch_array($result);
if (
$row) {

    
// Tenemos en $row una fila del resultado
    
echo "<br>Proximo id a insertar $row[Auto_increment] ";

} else {
    
// No se ha devuelto ningún resultado
    
echo "<br>No hay datos";
}
mysql_free_result($result);




mysql_close($link);

?>
  #9 (permalink)  
Antiguo 04/01/2007, 06:00
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
Re: Conocer el ultimo identificador de registro real

Este es mi codigo

$sql_con="SHOW TABLE STATUS FROM qbi929 WHERE name='galerias'";
$con=mysql_query($sql_con) or die (mysql_error());
$id=mysql_fetch_array($con);
$num=$id[Auto_increment];

Y me dice:

You have an error in your SQL syntax near 'where name='galerias'' at line 1

Y la tabla se llama galerias (no hay error al escribirlo)
  #10 (permalink)  
Antiguo 04/01/2007, 06:03
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Conocer el ultimo identificador de registro real

¿Ese es tu código?¿Y no estableces una conexión mysql antes?

$link = mysql_connect('****','****','****');
  #11 (permalink)  
Antiguo 04/01/2007, 06:07
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
Re: Conocer el ultimo identificador de registro real

si hombre, tambien hago la conexion antes de ese codigo
  #12 (permalink)  
Antiguo 04/01/2007, 06:09
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Conocer el ultimo identificador de registro real

Y el nombre de tu base de datos es: qbi929

¿es así?
  #13 (permalink)  
Antiguo 04/01/2007, 06:14
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
Re: Conocer el ultimo identificador de registro real

si. no hay errores al escribir.
Se me hace rarísimo
  #14 (permalink)  
Antiguo 04/01/2007, 06:17
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Conocer el ultimo identificador de registro real

La única duda que me queda es la versión de mysql que utilizas. Yo estoy probando con mysql 5.0 y funciona correctamente.
  #15 (permalink)  
Antiguo 04/01/2007, 06:23
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Conocer el ultimo identificador de registro real

Aquí tienes el enlace:

http://dev.mysql.com/doc/refman/5.0/...le-status.html
  #16 (permalink)  
Antiguo 04/01/2007, 06:23
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
Re: Conocer el ultimo identificador de registro real

Creo que la mia es 3.23
  #17 (permalink)  
Antiguo 04/01/2007, 06:25
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
Re: Conocer el ultimo identificador de registro real

Pues creo que el problema entonces es la version de Mysql.
Alguna artenativa para versiones más antiguas??
  #18 (permalink)  
Antiguo 04/01/2007, 06:36
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Conocer el ultimo identificador de registro real

He estado probando en versiones anteriores. Prueba la query así:

Código PHP:
SHOW  TABLE STATUS  FROM tubasedatos
 like 
'tutabla%'
Espero que ahora sí te funcione.

pd: ha sido un error mío en el formato de la query ya que el manual indica claramente el siguiente formato

SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern']

Mi sorpresa es que en la versión 5.0 tambien funciona como te dije al principio (con where).

Última edición por holahola; 04/01/2007 a las 06:49 Razón: aclaración
  #19 (permalink)  
Antiguo 04/01/2007, 07:02
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
Re: Conocer el ultimo identificador de registro real

Perfecto.

Muchas gracias por tu paciencia. todo esta resuelto
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 21:39.