Foros del Web » Programando para Internet » PHP »

problemas con los id! en php

Estas en el tema de problemas con los id! en php en el foro de PHP en Foros del Web. HOla, mi problema es el siguiente: La clave primaria de mis datos en SQL es un id que se va generando solo (contador) que a ...
  #1 (permalink)  
Antiguo 14/02/2009, 12:28
 
Fecha de Ingreso: febrero-2009
Ubicación: Santa fe
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 0
Exclamación problemas con los id! en php

HOla, mi problema es el siguiente:
La clave primaria de mis datos en SQL es un id que se va generando solo (contador) que a medida que voy haciendo altas va aumentando de 1 (ej: 1, 2, 3,...) //lo clasico :P
La cosa es que cuando borro un dato, se borra todo pero cuando hago un alta el id queda en esa cantidad... tengo un dato con un id= 76 y solo son dos datos guardados!!!
Como puedo hacer para que se recetee, que cuando yo borre un alta y agregue otro este mantenga el orden???

Espero con ansias soluciones o algun consejo! :)
  #2 (permalink)  
Antiguo 14/02/2009, 12:42
Avatar de Acron_0248  
Fecha de Ingreso: junio-2005
Ubicación: 127.0.0.1
Mensajes: 1.648
Antigüedad: 18 años, 9 meses
Puntos: 18
Respuesta: problemas con los id! en php

Luego de borrar un record, ejecutas algo como:
Código PHP:
$count mysql_num_rows(mysql_query("SELECT id FROM tabla"));

mysql_query("ALTER TABLE tabla AUTO_INCREMENT = "$count 1); 
También podrías usar COUNT() en la consulta y así evitar usar mysql_num_rows

Desgraciadamente, eso solo serviría si el record que eliminaste es el último.

No conozco (aun) una forma de reordernar todos los valores de una clave primaria de forma facil, a lo mejor otro si, yo de tener que hacerlo usaria un ciclo para actualizar cada ID incrementando por 1 el ID en cada actualizacion
__________________
Usuario Reigistrado de linux #399288
  #3 (permalink)  
Antiguo 14/02/2009, 13:30
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: problemas con los id! en php

Vaya Acron_0248 te veo muy seguido ultimamente jeje

Bueno candyvf asi como dice el copañero Acron_0248, yo tampoco se de una manera de recorrer los ID cuando el registro eliminado no es el ultimo.
Primero cabe aclarar que tu campo ID no deberia ser autoincrement (muy usado para ID consecutivos y automaticos.
Si tu eres el que esta calculando el ID.
hay 3 formas de calcular el siguiente ID
1) SELECT id FROM tabla
--> despues contar las filas pero esto no s bueno a alta cantidad de registros
2) SELECT count(*) as total FROM tabla y despues contar las filas
--> esto es peor a alta cantidad de registros y aplica en el UNICO caso que no has borrado ningun registro pq de lo contrario te dira que tienes 20 y tu ultimo id era el 30 y tenias 10 borrados (osea duplica id)
3) SELECT max(id) FROM tabla
--> creo que es el mas recomendable, realiza una consulta mas rapida y te regresa el id mas alto, de ahi solo le sumas 1 antes del insert.

Pero recalco, si borras registros intermedios quedarian los huecos.
la unica es pasarlos a una tabla temporal y despues re-incertarlos con un ID ya filtrado pero no se como esten tus dependencias (relaciones) hacia otras tablas pues eso tambien tendrias que cambiarlo y podria llegar a ser un lio.

Suerte
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
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 09:25.