Ver Mensaje Individual
  #9 (permalink)  
Antiguo 17/07/2006, 09:38
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
La idea de "rotar" registros sobre una tabla cualquiera. Sería algo tipo:

El "id" autonumérico último lo obtienes viendo cual es el n° mayor de esa "columna" (campo ID) .. aprovechando de las virtudes de un campo autonumérico que sabes que es incremental, único y que no se "ocupan" los espacios vacios si es que se borra una secuencia de ID's ...

Código PHP:
<?
// Conectas a tu BBDD .. etc ...

// Cuento el total de registros que tiene la tabla .. para ver si he llegado a mi tope ..

$sql="SELECT COUNT(*) FROM tabla";
$resultado=mysql_query($sql) or die (mysql_error());
$total=mysql_result($resultado,0);

if (
$total == 10){
   
// Borrar el registro más viejo
   
$sql="DELETE FROM tabla WHERE MIN(id)";
   
mysql_query($sql) or die (mysql_error());
}

// INSERTA el nuevo registro 
$sql="INSERT INTO tabla (id,IP) VALUES ('','".$IP."')";
mysql_query($sql) or die (mysql_error());
?>
Hay un detalle en este método .. si te basas en un ID incremental .. al final te vas a llenar de "ID's" .. creo que sería recomendable gestinar ese "ID" a mano o resetearlo (todo depende de que relaciones hagas con ese ID en otras tablas para respetar la "integridad referencial").

También estaría bueno meter todo este proceso bajo una "transacción" para evitar problemas tipo "por un lado COUNT() arrojó tal valor y en ese instante otro "INSERT" ya incrementó esa tabla.


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.