Foros del Web » Programando para Internet » PHP »

Devolver el ID generado al momento de insertar un registro

Estas en el tema de Devolver el ID generado al momento de insertar un registro en el foro de PHP en Foros del Web. HOla a todos, aqui el pato volador como siempre dando la lata... Antes que nada quiero agradecer a todos y cada uno de los foristas ...
  #1 (permalink)  
Antiguo 02/06/2006, 13:11
Avatar de pato_volador  
Fecha de Ingreso: octubre-2005
Ubicación: Planeta tierra
Mensajes: 254
Antigüedad: 12 años, 2 meses
Puntos: 0
Devolver el ID generado al momento de insertar un registro

HOla a todos, aqui el pato volador como siempre dando la lata...
Antes que nada quiero agradecer a todos y cada uno de los foristas que tanto me han ayudado, estos dias han sido de mata-teclados y hubieran sido un verdadero martirio de no ser por ustedes. MUCHAS GRACIAS!!!

Ahora, mi pregunta del dia es:

Al momento de insertar un registro en una base de datos MySQL el ID se genera automaticamente, pues es autonumerico, y la gran duda es como puedo devolverlo al momento de generarlo??? por que estoy haciendo una aplicacion en donde das de alta un producto y al momento de decir "El producto se agrego a la BD" tambien debe de decir "y se le asigno el numero XX" como puedo hacer eso?

solo tengo dos archivos, uno que tiene el formulario y las sentencias para insertar el registro, con un header para redireccionar si la insercion fue exitosa, en el siguiente archivo tengo el mensaje de "se agrego el producto" y pense en poner como primera instruccion en este ultimo archivo la sentencia SQL que consultara la base y me devolviera el último registro, pero creo q puede suceder que otra persona de al mismo tiempo otra alta y sabe Dios cual clave me va a devolver... asi que supongo que debe existir algun medio de que en el resultado de la insercion venga tambien la clave autonumerica que se asigno.. no?

Saludos de el pato volador pregunton!!
  #2 (permalink)  
Antiguo 02/06/2006, 13:15
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 15 años, 9 meses
Puntos: 771
Hola pato_volador

A ver si te sirve esto:
Código PHP:
$sql "INSERT INTO tutabla (campos) VALUES ('Valor')";
mysql_query($sql)
echo 
mysql_insert_id(); 
Saludos,
  #3 (permalink)  
Antiguo 02/06/2006, 13:42
Avatar de pato_volador  
Fecha de Ingreso: octubre-2005
Ubicación: Planeta tierra
Mensajes: 254
Antigüedad: 12 años, 2 meses
Puntos: 0
Diría mi abuelo : "Que buen pex!!!"

Muuuchas gracias, no lo use exactamente tal cual, pero me sirvio mucho, les pongo el como lo use por si alguien tiene un pex similar:

ARCHIVO 1:

<?php
$insertSQL = sprintf("INSERT INTO resumenfinal (titulo, autor, cuerpo) VALUES (%s, %s, %s)",
GetSQLValueString($_POST['titulo'], "text"),
GetSQLValueString($_POST['autores'], "text"),
GetSQLValueString($_POST['cuerpo'], "text"));

mysql_select_db($database_conex, $conex);
$Result1 = mysql_query($insertSQL, $conex) or die(mysql_error());
$mokos= mysql_insert_id();

$insertGoTo = "resrecibido.php?nuevoid=$mokos";

header(sprintf("Location: %s", $insertGoTo));
?>

en el achivo dos use lo siguiente:

<?php
Se ha asignado la clave <?php echo $_GET['nuevoid']; ?> a su resumen,
?>

Muchas gracias de nuevo!!
  #4 (permalink)  
Antiguo 02/06/2006, 13:44
 
Fecha de Ingreso: abril-2006
Ubicación: mexico
Mensajes: 287
Antigüedad: 11 años, 7 meses
Puntos: 2
a ver, a ver, yo también tengo un problema similar al tuyo pato volador, eso quiere decir que a mi también me puede ayudar. Bueno en mi caso yo puse un ID clave o mejor dicho llave, ese también yo lo podría generar automáticamente, o mejor dicho el Mysql lo podría generar automaticamente?.
  #5 (permalink)  
Antiguo 02/06/2006, 13:48
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 14 años, 4 meses
Puntos: 21
De acuerdo

Siempre y cuando el campo de la llave sea autoincrementable

saludos
__________________
gerardo
  #6 (permalink)  
Antiguo 02/06/2006, 13:54
Avatar de pato_volador  
Fecha de Ingreso: octubre-2005
Ubicación: Planeta tierra
Mensajes: 254
Antigüedad: 12 años, 2 meses
Puntos: 0
asi es, lo unico es que el campo llave será ENTERO y autoincrementable. (como dice CHALCHIS )
asi cada registro nuevo se le asignara como llave un 1,2,3,4,5 y asi sucesivamente.

SAludos!
  #7 (permalink)  
Antiguo 05/06/2006, 16:00
 
Fecha de Ingreso: abril-2006
Ubicación: mexico
Mensajes: 287
Antigüedad: 11 años, 7 meses
Puntos: 2
Entonces... autoincrementable, por ejemplo cuando declare mi llave puse esto... table fulanitox(nick integer primary key not null, nombre char(25),apellidos char(45));

eso estaría bien o aparte tendría que poner alguna instruccion para hacer autoincrementable?
  #8 (permalink)  
Antiguo 05/06/2006, 16:04
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 14 años, 4 meses
Puntos: 21
Sonrisa un ejemplo

CREATE TABLE articulos (
id int(10) unsigned NOT NULL auto_increment,
nombre varchar(30) default NULL,
precio decimal(10,2) default '0.00',
codigo varchar(7) default NULL,
grupo int(10) unsigned default '0',
PRIMARY KEY (id)
) TYPE=MyISAM;
__________________
gerardo
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 16:59.