Foros del Web » Programando para Internet » PHP »

Huecos libres en base de datos

Estas en el tema de Huecos libres en base de datos en el foro de PHP en Foros del Web. Hola a todos,tengo una base de datos con una tabla cuya pk es autoincremental.Me gustaria saber si hay algun tipo de codigo en php para ...
  #1 (permalink)  
Antiguo 15/05/2008, 17:47
 
Fecha de Ingreso: enero-2008
Mensajes: 111
Antigüedad: 16 años, 3 meses
Puntos: 0
Huecos libres en base de datos

Hola a todos,tengo una base de datos con una tabla cuya pk es autoincremental.Me gustaria saber si hay algun tipo de codigo en php para que si se han borrado filas el siguiente numero no sea el ultimo,si no uno que haya quedado libre,un saludo.
  #2 (permalink)  
Antiguo 15/05/2008, 18:28
isra00
Invitado
 
Mensajes: n/a
Puntos:
De acuerdo Respuesta: Huecos libres en base de datos

Pues que yo sepa eso no existe en MySQL, aunque lo podemos solucionar rápidamente:

Código PHP:
$consulta=mysql_query("SELECT id FROM tabla");

$anterior=0;
while (
$c=mysql_fetch_row($consulta)) {
    if (
$c[0] != $anterior+1) echo $c[0]-"<br>";
    
$anterior=$c[0];

Como podrás ver no es muy precisa, quizá sería más seguro extraer el valor máximo de la PK, y después, mediante un bucle de 0 a [valor máximo de PK] hacer una consulta sobre el id del bucle, y si la consulta no devuelve resultados es que ese valor de la PK está libre. Este método sería bastante más lento, claro, ya que tienes que hacer x consultas, donde x es la cantidad de resgistros de la tabla.

Saludos,
Isra.
  #3 (permalink)  
Antiguo 18/05/2008, 14:25
 
Fecha de Ingreso: enero-2008
Mensajes: 111
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Huecos libres en base de datos

Gracias,voy a probarlo.un saludo
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:29.