Weblogs Código

RecorteX

» datos
73 usuarios y 244 recortes de código
Usuario

Contraseña
Crear cuenta
Estás viendo los recortes de la etiqueta datos

RSS
Recortes: 1

Etiquetas relacionadas:
tabla
ID
libre
PHP
base
SQL
database

Encontrar un ID libre en una tabla de una base de datos

Pues es sencillo: se sacan todos los IDs de la tabla y se inicializa una variable a 0 (el ID mínimo) y se va mirando si está en la matriz de los IDs de la tabla. Si está en la matriz, probar con el siguiente ($i++), pero si no está, hemos encontrado un ID reutilizable (o nuevo, si se ha llegado al límite de la matriz).

Principalmente sirve para no tener que meter un ID nuevo en una tabla, si ya se han liberado IDs (borrado registros) anteriormente. Así además el tamaño del campo ID no hace falta que sea muy grande si se eliminan y se añaden muchos registros.

 
  // Doy por supuesto que ya se ha conectado a una base de datos
  // $tabla es el nombre de la tabla en donde hay que buscar un ID libre
  
  function buscar_id_libre($tabla){
      global $db;
      // Sacar todos los IDs de la tabla
      $res = mysql_query("SELECT id FROM $tabla");
      if($res){
          while(false !== ($reg = mysql_fetch_assoc($res)))
                  $ids[] = intval($reg['id']);
      }else{
          $ids = array(0);
      }
 
      // Buscar un ID que no este en la matriz (o en la tabla)
      $i = 0;
      while(in_array($i, $ids)){
          $i++;
      }
      return $i;
  }
 
Proyecto: Juanjo Navarro, 2006 - Diseño: Albin