Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => Mensaje iniciado por: Siempre Azul en 8 Julio 2013, 21:57 PM

Título: ayuda campo con auto increment
Publicado por: Siempre Azul en 8 Julio 2013, 21:57 PM
hola amigos bueno resulta que tengo en phpmyadmin un campo ID en auto_increment y pues por ejemplo tengo:

1-LIBRO 1
2-LIBRO 2

pero cuando yo borro LIBRO 2
y intento agregar un libro nuevo, me aparece

1-LIBRO 1
3-LIBRO 2

ves como ven me puso el numero 3 envez del 2, como hago para que no suceda eso?

gracias de antemano.
Título: Re: ayuda campo con auto increment
Publicado por: 1mpuls0 en 8 Julio 2013, 23:25 PM
Qué se supone que esperaba que hiciera? xD

Hay varias formas de hacerlo (hasta cierto punto)
Una es seleccionar el último id y sumarle uno.

Código (sql) [Seleccionar]

select max(id)+1 AS siguiente_id from tabla;


Código (sql) [Seleccionar]

SELECT LAST_INSERT_ID(id)+1 AS siguiente_id FROM tabla;


Debes tener cuidado cual vas a utilizar, lo digo por la cuestion de multiusuarios.

Saludos.
Título: Re: ayuda campo con auto increment
Publicado por: Siempre Azul en 9 Julio 2013, 00:22 AM
por favor ayudame amigo, no me sirvio, modifico como pusiste tu en el phpmyadmin y me sale el numero 2 y cuando ingreso el dato nuevo me sale:

1-LIBRO 1
0-LIBRO 2
Título: Re: ayuda campo con auto increment
Publicado por: 1mpuls0 en 9 Julio 2013, 01:13 AM
Lo que quiero decir es que tienes que quitar la propiedad autoincrement al campo, aunque también es posible dejando esta propiedad pero no tiene caso si al final vas a colocar un valor calculado.

Después de eso tienes que hacer una consulta para conocer el valor de tu último id

Código (sql) [Seleccionar]

select max(id) AS siguiente_id from libros


Supongo que estás utilizando además un lenguaje de programación, entonces lo que tienes que hacer es comparaciones.

*Pseudocódigo
if(resultado=NULL)
siguiente_id=1
else
siguiente_id=resultado+1


Entonces ahora tienes el valor de tu siguiente id a insertar.

Código (sql) [Seleccionar]

insert into libros values(siguiente_id, 'titulo');


Espero haberme explicado mejor.

Saludos.
Título: Re: ayuda campo con auto increment
Publicado por: Siempre Azul en 9 Julio 2013, 03:53 AM
hola amigo dime exactamente como hacerlo no se entiende lo que has puesto:

lo puse asi:

SELECT MAX(id)+1 AS sig_id FROM libros;
INSERT INTO libros (id) VALUE('sig_id')

y no sirve marca el numero 0 y no agrega mas nada

lo puse asi tampoco sirve marca error en 'titulo':

SELECT MAX(id) AS siguiente_id FROM libros
INSERT INTO libros VALUES(siguiente_id, 'titulo');

Título: Re: ayuda campo con auto increment
Publicado por: 1mpuls0 en 9 Julio 2013, 04:15 AM
xD
Es broma?, lo que yo te puse es un ejemplo, no sé como se llaman tus campos.

Hasta pronto!
Título: Re: ayuda campo con auto increment
Publicado por: Siempre Azul en 9 Julio 2013, 14:47 PM
Cita de: Darhius en  9 Julio 2013, 04:15 AM
xD
Es broma?, lo que yo te puse es un ejemplo, no sé como se llaman tus campos.

Hasta pronto!

que se supone que va en titulo?
Título: Re: ayuda campo con auto increment
Publicado por: peib0l en 9 Julio 2013, 15:33 PM
Cita de: shitoman en  9 Julio 2013, 14:47 PM
que se supone que va en titulo?

colega empieza a aprender bien de SQL porque asi no....