Foros del Web » Programando para Internet » PHP »

devolver id a la vez que se inserta

Estas en el tema de devolver id a la vez que se inserta en el foro de PHP en Foros del Web. hola tios, hay alguna manera de que cuando hago un Insert en una tabla me devuelva el autonumerico, esque hay ocasiones que tengo que crear ...
  #1 (permalink)  
Antiguo 05/07/2006, 16:17
Avatar de sith  
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 333
Antigüedad: 20 años, 8 meses
Puntos: 0
devolver id a la vez que se inserta

hola tios, hay alguna manera de que cuando hago un Insert en una tabla me devuelva el autonumerico, esque hay ocasiones que tengo que crear por ejemplo un cliente nuevo y crear los productos que compra, al mismo tiempo y para ello necesito el idCliente. Pues eso, si existe alguna función que me devuelva el id directamente
  #2 (permalink)  
Antiguo 05/07/2006, 16:23
Avatar de vevni  
Fecha de Ingreso: julio-2005
Ubicación: cancun mexico
Mensajes: 598
Antigüedad: 18 años, 8 meses
Puntos: 3
mmmm si lees mas abajo en este foro... esta la respuesta a tu pregunta.

*usen los FAQS---*
*usen los buscadores*

estan para eso. por favor. no llenen el foro con post que ya se han puesto en otra ocasion.!! saludos!
__________________
Código PHP:
echo"hola mundo ver 1221332143.02";
echo
"cuantos usuarios habran impreso hola mundo en el mundo.!???"
  #3 (permalink)  
Antiguo 06/07/2006, 09:39
Avatar de sith  
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 333
Antigüedad: 20 años, 8 meses
Puntos: 0
bueno, no he tenido tanta suerte buscandolo como vevni, no he sido capaz de buscarlo y no se que poner en el buscador para encontrarlo, podria alguien si no ocupa muxo el foro remitirme la direccion de donde se dijo? y por cierto lo del hola mundo no se a que viene
  #4 (permalink)  
Antiguo 06/07/2006, 09:53
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 2 meses
Puntos: 9
" FAQS---"

sith me parece esta claro a donde tenes que ir.... sino sos capaz de eso no se q decirte...
de todas manera nose sikiera q db tenes asi q no te puedo responder.
  #5 (permalink)  
Antiguo 06/07/2006, 09:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Deberías especificar que BBDD usas .. suponemos que Mysql (es bien importante concretar ese datos -siempre- y no dejar que lo "asumamos").

La función que buscas (tanto en su versión "PHP" como en SQL) sería:

mysql_isert_id()
http://www.php.net/mysql_insert_id

Un saludo
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 06/07/2006, 09:59
Avatar de richard20  
Fecha de Ingreso: marzo-2006
Mensajes: 139
Antigüedad: 18 años
Puntos: 0
Para lo que necesitas debes usar la sentencia mysql:

mysql_query("Select Max(Id_Cliente) as Id_Cliente from clientes");

asi extraeras con esa consulta el ultimo id existente en la tabla clientes.

esta instruccion la debes poner despúes de haber creado el cliente, otra cosa si vas a trabajar grabando datos en distintas tablas procura ocupar transacciones es mas seguro y te despreocupas en caso que ocurra algún error durante el proceso de grabación

mysql_query("Begin");
mysql_query("Rollback");
mysql_query("Commit");

Salu2
Ricardo Sandoval.
  #7 (permalink)  
Antiguo 06/07/2006, 10:22
Avatar de sith  
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 333
Antigüedad: 20 años, 8 meses
Puntos: 0
gracias. Por cierto hasta el momento yo venia usando la sentencia del maximo, pero no se xq razón un scrip que hice no me funciona al hacer esa consulta despues. ah!, ya se que esta fuera de lugar, pero hay una misma función como mysql_insert_id pero en JAVA?, tb para mysql
es que con el MAX siempre me ha dado la impresión de que si optimizas la BD la cascaría
  #8 (permalink)  
Antiguo 06/07/2006, 11:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Cita:
Iniciado por richard20
Para lo que necesitas debes usar la sentencia mysql:

mysql_query("Select Max(Id_Cliente) as Id_Cliente from clientes");

asi extraeras con esa consulta el ultimo id existente en la tabla clientes.

esta instruccion la debes poner despúes de haber creado el cliente, otra cosa si vas a trabajar grabando datos en distintas tablas procura ocupar transacciones es mas seguro y te despreocupas en caso que ocurra algún error durante el proceso de grabación

mysql_query("Begin");
mysql_query("Rollback");
mysql_query("Commit");

Salu2
Ricardo Sandoval.
En SQL tienes la función:

LAST_INSERT_ID()

Que equivale a lo mismo en PHP ...

Todo esto bajo una transacción como bien mencionas sería lo ideal:
Cita:
bholbrook at servillian dot com
30-Aug-2005 11:45
An effective way to retrieve the last insert id without fail or having two queries inserted at the same time causing an unexpected number being returned.

Código PHP:
<?

mysql_query
("LOCK TABLES apc_forms WRITE");
mysql_query("SET AUTOCOMMIT = 0");
mysql_query("INSERT INTO apc_forms (form_title, form_event_id, form_expirey) VALUES ('title',1,'2005-10-10')");
define('ID',mysql_query("SELECT LAST_INSERT_ID()"));
mysql_query("COMMIT");
mysql_query("UNLOCK TABLES");

?>
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 06/07/2006, 11:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Cita:
Iniciado por sith
gracias. Por cierto hasta el momento yo venia usando la sentencia del maximo, pero no se xq razón un scrip que hice no me funciona al hacer esa consulta despues. ah!, ya se que esta fuera de lugar, pero hay una misma función como mysql_insert_id pero en JAVA?, tb para mysql
es que con el MAX siempre me ha dado la impresión de que si optimizas la BD la cascaría
Usa la versión SQL de la función equivalente en PHP. (en mi mensaje anterior tienes un ejemplo a nivel SQL).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 06/07/2006, 12:05
Avatar de vevni  
Fecha de Ingreso: julio-2005
Ubicación: cancun mexico
Mensajes: 598
Antigüedad: 18 años, 8 meses
Puntos: 3
le comente que en el foro.. habia un post mas abajo de este donde decia la respuesta, es por eso que...... le dije busca mas abajo................!!!!
efectivamente aqui esta el buen cluster resolviendo dudas como.........

pork manda error un header(); cuando imprimo echos.
o pork meda error esto <?php isett("jjdds"); %> cosas como errores ortograficos.. u otro tipo de errores.
señores sabemos que hay gente que comienza, pero.... en buena onda
existe algo que se llaman FAQS.. que gente de este foro se tomo el tiempo para hacerlo y............ con el motivo de hacer mas facil la busqueda de una respuesta sin saturar el foro con cosas como...

error de ;
como se usan los forms.
que es una sesion
errores de headers
buscador
etc cosas que tanto se ven que hasta se hizo un FAQ.
porfavor, no nos molestamos de responder, pero se apreciaria que usen las FAQS...

grax.!
__________________
Código PHP:
echo"hola mundo ver 1221332143.02";
echo
"cuantos usuarios habran impreso hola mundo en el mundo.!???"
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 08:45.