Foros del Web » Programando para Internet » PHP »

Obtener ultimo valor insertado en BD

Estas en el tema de Obtener ultimo valor insertado en BD en el foro de PHP en Foros del Web. Hola amigos, necesito saber cual fue el ultimo ID que se inserto, para yo definir cuando sera el numero siguiente... ya que yo guardo ciertas ...
  #1 (permalink)  
Antiguo 06/04/2007, 15:39
 
Fecha de Ingreso: enero-2007
Mensajes: 49
Antigüedad: 17 años, 3 meses
Puntos: 0
Exclamación Obtener ultimo valor insertado en BD

Hola amigos, necesito saber cual fue el ultimo ID que se inserto, para yo definir cuando sera el numero siguiente... ya que yo guardo ciertas imagenes en carpetas con el numero de cada ID, entonces para poder hacer esto necesito el ultimo ID y sumar 1... trabajo con PHP y Mysql

Gracias...!!
  #2 (permalink)  
Antiguo 06/04/2007, 15:46
Avatar de AdRiAnCeTe  
Fecha de Ingreso: marzo-2007
Mensajes: 140
Antigüedad: 17 años
Puntos: 0
Re: Obtener ultimo valor insertado en BD

mysql_insert_id($identificador);

Pones el indentificador de la consulta y listo, espero que te sirva, Saludos.

funcion.mysql_insert_id
  #3 (permalink)  
Antiguo 06/04/2007, 15:51
 
Fecha de Ingreso: enero-2007
Mensajes: 49
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Obtener ultimo valor insertado en BD

Gracias...

Ya esa funcion la use, y solo me sirve para saber el ultimo id inmediamente de la inserccion, pero el detalle es q yo necesito saber ese resultado en cualquier momento, especificamente antes de hacer un nuevo insert, ya q si no tengo ese valor no puedo saber como va a ser el nuevo valor q tengo usar...

sera q se te ocurre algo para eso?
  #4 (permalink)  
Antiguo 06/04/2007, 16:00
 
Fecha de Ingreso: marzo-2007
Mensajes: 347
Antigüedad: 17 años, 1 mes
Puntos: 2
Re: Obtener ultimo valor insertado en BD

pues un select de esta manera:
select * from prueba order by id desc limit 0,1
lo que hace el limit es indicarle que solo coja un valor, osea, una linea de la tabla, y el desc, que empieze por abajo, a si que cojera la ultima id y solo una, osea, la ultima. (aun asi no lo he comprobado, si tiene algun fallo comunicamelo)

Un saludo
  #5 (permalink)  
Antiguo 06/04/2007, 18:40
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: Obtener ultimo valor insertado en BD

O bien:
Código PHP:
select max(campoIdultimo from tu_tabla where esto estoOtro 
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #6 (permalink)  
Antiguo 07/04/2007, 11:07
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: Obtener ultimo valor insertado en BD

Buenas Tardes..
yo tambien necesitaria algo como lo que pregunto fxdesign si alguno puede acercarme alguna funcion o ejemplo se lo agradeceria..
saludos!
MC
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #7 (permalink)  
Antiguo 07/04/2007, 16:12
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Obtener ultimo valor insertado en BD

Nunca pidas datos si solo necesitás un conteo, y bajo ningún concepto uses SELECT * si podés evitarlo, le estás añadiendo trabajo al servidor inútilmente.

MySQL soporta algunas consultas "administrativas" para las tablas, una de ellas es SHOW TABLE STATUS

Por ejemplo, para obtener el id que se correspondería al siguiente registro insertado en un auto_increment:

$res = mysql_query("SHOW TABLE STATUS LIKE 'nombre_de_la_tabla'");
$resultado = mysql_fetch_assoc($res);

Tendrás el siguiente id (el mayor de la tabla + 1) en $resultado['Auto_increment']

Saludos.
  #8 (permalink)  
Antiguo 07/04/2007, 18:23
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: Obtener ultimo valor insertado en BD

Muchas Gracias.. ahora veo.. pero de todos modos, como puedo buscar en gogole en php.net esta funcion para leer e interiorizarme mas??
saludos y gracias!
MC
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #9 (permalink)  
Antiguo 07/04/2007, 18:41
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Obtener ultimo valor insertado en BD

Cita:
Iniciado por McBlink Ver Mensaje
Muchas Gracias.. ahora veo.. pero de todos modos, como puedo buscar en gogole en php.net esta funcion para leer e interiorizarme mas??
saludos y gracias!
MC
Asi? :P

SHOW TABLE STATUS es de MySQL, por lo que dudo que lo encuentres en php.net, pero si en el manual de MySQL.

Saludos
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #10 (permalink)  
Antiguo 07/04/2007, 22:13
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: Obtener ultimo valor insertado en BD

Buenas Noches...
mira.. tengo el siguiente codigo para sacar la ID proxima, osea una mas de la que hay en la BD, entonces le quiero restar 1 a ese numero.. pero no me sale ,
este es mi codigo..

Código PHP:
<?
$link 
mysql_connect('localhost','root','mcblink');

$resta 1;
$user $row[Auto_increment]; 

$result mysql_query("SHOW  TABLE STATUS  FROM usuarios where name='user'",$link);

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

    
    echo 
"<br>Proximo id a insertar $row[Auto_increment]";

$id =  $user $resta;
var_dump($id);
    
} else {
    
// No se ha devuelto ningún resultado
    
echo "<br>No hay datos";
}
mysql_free_result($result);
mysql_close($link);

?>
y este este esta sin retocar, que te da el numero siguiente..

Código PHP:
<?
$link 
mysql_connect('localhost','root','mcblink');

$result mysql_query("SHOW  TABLE STATUS  FROM usuarios where name='user'",$link);

$row mysql_fetch_array($result);
if (
$row) {
    
    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);

?>
Saludos y gracias de antemano!
MC
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #11 (permalink)  
Antiguo 08/04/2007, 00:00
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Obtener ultimo valor insertado en BD

El problema es que $user no vale nada. Le restas 1 a nada y...

Por que $user no vale nada? Fijate que le estas asignando el aparente ultimo id cuando aun no lo averiguaste, antes de hacer la consulta.

Código PHP:
<?php
$link 
mysql_connect('localhost','root','mcblink');

$resta 1;

$result mysql_query("SHOW  TABLE STATUS  FROM usuarios where name='user'",$link);

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

    
    echo 
"<br>Proximo id a insertar $row[Auto_increment]";

$user $row[Auto_increment]; 
$id =  $user $resta;
var_dump($id);
    
} else {
    
// No se ha devuelto ningún resultado
    
echo "<br>No hay datos";
}
mysql_free_result($result);
mysql_close($link);

?>
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #12 (permalink)  
Antiguo 08/04/2007, 07:25
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: Obtener ultimo valor insertado en BD

Buenos Dias y Felices Pascuas!! :D
bueno lo que les queria preguntar, como puedo hacer para imprimir el numero sin que me salga el int, porque con var_dump me sale integer(XX).. hay forma de que salga XX..¿?
saludos y gracias!!
MC
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #13 (permalink)  
Antiguo 08/04/2007, 10:15
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Obtener ultimo valor insertado en BD

McBlink, me extraña araña! :P

En tu mismo codigo ya lo estas usando!


Código PHP:
<?php
    
echo "<br>Proximo id a insertar $row[Auto_increment]";
?>

Modificandolo a lo que necesitas:

Código PHP:
<?php
    
echo "<br>Proximo id a insertar $id";
?>
Código PHP:
<?php
    
echo $id;
?>

Código PHP:
<?php
$user 
$row[Auto_increment]; 
$id =  $user $resta;
echo 
$id;
?>
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #14 (permalink)  
Antiguo 08/04/2007, 11:10
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: Obtener ultimo valor insertado en BD

DIossss qwue inutil..
lo hacia asi..:

Código PHP:
echo ('$id'); 
o asi


Código PHP:
echo '$id'
y no andaba!!

pero andaba cerca!!
saludos!!
MC
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #15 (permalink)  
Antiguo 08/04/2007, 11:44
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Obtener ultimo valor insertado en BD

PHP no busca variables en cadenas encerradas entre comillas simples, es por eso que no te funcionaba. Si lo probas asi de seguro tambien te funciona:

Código PHP:
<?php
echo ("$id");  
?>
Código PHP:
<?php
echo "$id";  
?>

Aunque las comillas en este caso estan demas, no es necesario que las utilices..., lo mejor:

Código PHP:
<?php
echo $id;  
?>
Saludos
__________________
Federico.

Mi página: www.jourmoly.com.ar
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 10:34.