Foros del Web » Programando para Internet » PHP »

borrado de registros

Estas en el tema de borrado de registros en el foro de PHP en Foros del Web. Tabla con campo id (auto increment) por ejemplo tengo 20 registros en una base de datos, borro el numero 12, la tabla tiene entonces 19 ...
  #1 (permalink)  
Antiguo 02/07/2003, 04:37
Avatar de jonk  
Fecha de Ingreso: julio-2002
Ubicación: Barakaldo
Mensajes: 104
Antigüedad: 21 años, 8 meses
Puntos: 0
borrado de registros

Tabla con campo id (auto increment)

por ejemplo tengo 20 registros en una base de datos, borro el numero 12, la tabla tiene entonces 19 registros, añado uno nuevo, entonces el nuevo registro tiene id=21

hay alguna forma d k se normalizen los id? k el id=21 sea id=20

gracias

__________________

MyWay. A mi manera
http://myway.i-barakaldo.com
  #2 (permalink)  
Antiguo 02/07/2003, 04:53
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Con autonumericos, no. Ademas, lo que sugieres es totalmente ilogico. Si tu borras el registro con id 12, el siguiente que añadas no puede ser el id 20, porque este sigue existiendo. Entonces, pensarias tu, pues que el nuevo coga el id 12. Entonces, si en otra tabla habia un registro que enlazaba con el registro borrado a traves del id, en ese caso el nuevo registro quedara vinculado a ese registro de la otra tabla. En este caso, no seria el borrado de uno y la insercion de uno nuevo, sino la modificacion del registro con id 12. Con lo cual es totalmente logico que el nuevo registro sea el id 21.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 02/07/2003, 05:04
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
La unica forma de "recuperar" los ids autonumericos (a partir del id más grande existente en la tabla) es exportar la tabla a un .sql y volverla a importar.
__________________
M a l d i t o F r i k i
  #4 (permalink)  
Antiguo 02/07/2003, 05:48
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
hombre.... no se... pero yo cuando borro los 3 ultimos... ejemplo: 17,18,19.... cuando hago unos nuevos empieza por el 17,18,19... a mi me funciona asi... ID autoincrement BigInt Not Null.


Para hacer lo que dices.... lo mejor creo yo es que no sea ID autoincrement... que sea un registro normal, tipo numerico... y lo autoincrementes tu con otro Script, asi podrias scanear los registros vacios, y añadirlos automaticamente... yo pienso que toda esta faena no merece la pena... pq?, que mas da el numero que tengan, o si salta alguno... a mi personalmente me gusta mas con numeros altos, pero bueno...sobre gustos no hay nada escrito....;)
__________________
3w.valenciadjs.com
3w.laislatv.com
  #5 (permalink)  
Antiguo 03/07/2003, 20:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Los campos autonumericos se usa para eso mismo .. para que sean "Unicos" entre otras cosas. He de ahí que el "contador" sigua adelante para mantener una de las principales reglas de toda Base de datos relacional que es la "integridad referencial" (como ya explicó josemi).

Si a la hora de presentar tus X registros de esa tabla quieres "numerarlos" de 1 a N registros que tegas .. Usa una simple variable contador ($contador++; ) ... pero internamente (cara a generar tus nose.php?id=elquetoque) sigue usando los ID de ese campo autoincremental.

Un saludo,

pd: Esta pregunta creo que mas de uno no la hemos hecho (yo recuerdo habermela hecho) .. Pero como te comento, la solución "visual" es usar un contador y seguir trabajando como debe ser.
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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:32.