Weblogs Código

RecorteX

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

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

RSS
Recortes: 2

Etiquetas relacionadas:
libre
base
mysql
datos
PHP
hosts
SQL
ID
tabla

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;
  }
 

Migrar una base de datos MySQL de un host a otro


mysqldump -h oldhost -u oldusername -poldpassword olddbname | mysql -h newhost -u newusername -pnewpassword newdbname
Proyecto: Juanjo Navarro, 2006 - Diseño: Albin