Foros del Web » Programando para Internet » PHP »

como crear un ID autoincrementable??

Estas en el tema de como crear un ID autoincrementable?? en el foro de PHP en Foros del Web. hola amigos de FDW. necesirtro crear una funcion o lo ke sea para incrementar el numero ID de la tabla personas. lo particular de este ...
  #1 (permalink)  
Antiguo 20/11/2006, 18:11
 
Fecha de Ingreso: abril-2006
Mensajes: 140
Antigüedad: 18 años
Puntos: 0
como crear un ID autoincrementable??

hola amigos de FDW.

necesirtro crear una funcion o lo ke sea para incrementar el numero ID de la tabla personas.
lo particular de este caso, es ke el número de ID debe verse dentro del formulario de inscripcion antes de ke sea ingresado, o sea, debe estar disponible apenas se abre el formulario de inscripcion.
como hago esto?

he probado arto y aun no puedo encontrar la solucion :(.

ayuda porfavor

desde ya se agradece la ayuda
  #2 (permalink)  
Antiguo 20/11/2006, 19:13
Avatar de radionix  
Fecha de Ingreso: septiembre-2006
Mensajes: 31
Antigüedad: 17 años, 6 meses
Puntos: 0
usa esta consulta:
select id from personas order by id desc limit 0,1
esto cogera el ultimo id insertado a la tabla, si le sumas 1 obtienes lo que quieres.salu2
  #3 (permalink)  
Antiguo 20/11/2006, 19:24
Avatar de reyesoft  
Fecha de Ingreso: abril-2006
Ubicación: San Rafael, Mendoza
Mensajes: 311
Antigüedad: 18 años
Puntos: 15
Esa función no es precisa, ya que si eliminás el ultimo registro cargado te devolverá uno menos de lo que es en realidad; sin contar si el el formulario lo acceden varias personas (ya que todas verán el mismo ID pero luego pondrá el que corresponda de acuerdo al orden de quien envíe primero el form).

Tiene que haber una función que devuelve el próximo ID, ya que phpMyAdmin lo hace.

Has despertado mi intriga, por lo que ahora mismo estoy bajando phpMyAdmin para hecharle un vistazo al código.

Te mantengo al tanto si logro algo.
  #4 (permalink)  
Antiguo 20/11/2006, 20:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por reyesoft Ver Mensaje
Esa función no es precisa, ya que si eliminás el ultimo registro cargado te devolverá uno menos de lo que es en realidad; sin contar si el el formulario lo acceden varias personas (ya que todas verán el mismo ID pero luego pondrá el que corresponda de acuerdo al orden de quien envíe primero el form).

Tiene que haber una función que devuelve el próximo ID, ya que phpMyAdmin lo hace.

Has despertado mi intriga, por lo que ahora mismo estoy bajando phpMyAdmin para hecharle un vistazo al código.

Te mantengo al tanto si logro algo.
Si .. se llama:
mysql_insert_id()
http://www.php.net/mysql_insert_id

Y se aplica inmediatamente despues de un INSERT .. ahí te devolverá el último ID generado por un campo autoincremental.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 20/11/2006, 20:24
Avatar de reyesoft  
Fecha de Ingreso: abril-2006
Ubicación: San Rafael, Mendoza
Mensajes: 311
Antigüedad: 18 años
Puntos: 15
Cita:
Iniciado por Cluster Ver Mensaje
Si .. se llama:
mysql_insert_id()
http://www.php.net/mysql_insert_id
Cluster, está bien lo que dices; pero él necesita saber la ID antes de hacer el INSERT.

Estuve mirando el phpMyAdmin y no logré sacar como saben el proximo valor del Auto_increment. Fijate en las propiedades de la tabla, es más hasta podés cambiarlo.

Saludos...
  #6 (permalink)  
Antiguo 20/11/2006, 20:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por reyesoft Ver Mensaje
Cluster, está bien lo que dices; pero él necesita saber la ID antes de hacer el INSERT.

Estuve mirando el phpMyAdmin y no logré sacar como saben el proximo valor del Auto_increment. Fijate en las propiedades de la tabla, es más hasta podés cambiarlo.

Saludos...
Ok ..

El hecho de cambiar un ID automumérico lo hace phpMyadmin ejecutando una sentencia SQL tipo:

ALTER TABLE tabla AUTO_INCREMENT = n°;

Por otro lado .. en este ambiente "web" multiusuario donde no sabes si X usuario está interactuando con tu sistema por otro lado mientras el usuario Y está actuando en el sistema .. lo más sano es -dar- ese N° una vez otorgado por la BBDD en este caso por un campo autoincremental .. todo manejado bajo una transacción para evitar problemas.

Todo lo demás corres el problema que para cuando tu obtengas el ID últimio generado .. otro generó otro registro y ya no corresponderá el que obtuvistes.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 20/11/2006, 21:21
Avatar de reyesoft  
Fecha de Ingreso: abril-2006
Ubicación: San Rafael, Mendoza
Mensajes: 311
Antigüedad: 18 años
Puntos: 15
Exacto, lo dije dije en mi primera respuesta, es algo medio raro lo que quiere.

Saludos!
  #8 (permalink)  
Antiguo 20/11/2006, 21:27
 
Fecha de Ingreso: abril-2006
Mensajes: 140
Antigüedad: 18 años
Puntos: 0
ok si es raro habra ke cambiar no mas la manera de mostrar el ID.
lo ke necesito saber entonces, podre ese resultado obtenido ingresarlo en un alert JS?
gracias amigos por la ayuda
  #9 (permalink)  
Antiguo 20/11/2006, 21:34
 
Fecha de Ingreso: abril-2006
Mensajes: 140
Antigüedad: 18 años
Puntos: 0
lo hice amigos y funciona la solucion ke me diste cluster
ahora me gustaria saber como podria convertir ese numero ke devuelve el mysql_insert_id() a una variable JS para mostrarlo en una ventanita alert :P.


desde ya se agracede el tiempo y la dedicacion,gracias amigos
  #10 (permalink)  
Antiguo 21/11/2006, 05:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Genera el HTML/Javascript que corresponda .. simplemente sería algo tipo:

Código PHP:
<?
// etc ...

$ultimo_id_generado=mysql_insert_id();

echo 
"<script languaje=\"javascript\">alert('".$ultimo_id_generado."')</javascript>";
?>
Lo mejor sería usar más javascript .. crear tu función javascript que haga el alert .. meterla en el "<head>" de tu página HTML creada y llamarla ante un evento (onLoad() de la página). Si tienes dudas con eso .. primero consulta en el foro de javascript como lo harías con algún dato de prueba estático ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 21/11/2006, 05:28
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 1
yo lo que hago es al crear la tabla hacer que sea autoincrementable directamente, y ya me olvido de posibles problemas:

CREATE TABLE prueba (
ID int(11) NULL auto_increment,
//resto de campos
PRIMARY KEY (ID)
)

y listo
__________________
ALOZORRO v5.0 (ahora en .es)
  #12 (permalink)  
Antiguo 21/11/2006, 05:34
 
Fecha de Ingreso: abril-2006
Mensajes: 140
Antigüedad: 18 años
Puntos: 0
gracias cluster me sirvio lo que expusiste
  #13 (permalink)  
Antiguo 21/11/2006, 05:35
 
Fecha de Ingreso: abril-2006
Mensajes: 140
Antigüedad: 18 años
Puntos: 0
asi tmb deje mi campo azrael ;)
  #14 (permalink)  
Antiguo 05/11/2012, 21:34
 
Fecha de Ingreso: diciembre-2010
Mensajes: 4
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: como crear un ID autoincrementable??

muy bueno lo de imprimir el ID en el messagebox o en el echo yo lo aplique en una window.location y salio de maravilla. (Y) buen aporte
  #15 (permalink)  
Antiguo 05/11/2012, 21:51
 
Fecha de Ingreso: noviembre-2012
Mensajes: 1
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: como crear un ID autoincrementable??

Hola, perdon por no hablar sobre el tema, pero me podrian decir como hacer un tema en este foro?, es que soy nuevo en esto, gracias
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 02:37.