Nel mio db, ho una tabella (feed) in cui vengono inseriti frequentemente svariati dati.
Il numero massimo di dati che vengono utilizzati (mostrati) è però 50, e quindi tutti i dati che eccedono questo numero sono - in effetti - ridondanti.
Vorrei quindi eliminarli via via. Ad es., se ci sono 52 items nella tabella, quelli contrassegnati dai n° 1 e 2 dovrebbero essere cancellati.
Inizialmente, avevo pensato questa soluzione:
Ma così non mi funziona, per la semplice ragione che la numerazione (feed_id) sale...Codice PHP:
$resultC = mysql_query("SELECT * FROM `feed`");
$totrow = mysql_num_rows( $resultC);
if ($totrow > 50) {
$delrow = $totrow-50;
$resultD = mysql_query("DELETE FROM `feed` WHERE feed_id < $delrow");
}
Insomma, se ho 73 items nella tabella, $totrow sarà uguale a 73, e quindi $delrow sarà uguale a 23.
La prima volta che quest'azione sarà eseguita, è tutto ok, perchè verranno cancellati gli items da 1 a 22.
Ma poniamo che vengano aggiunti altri 3 items.
A questo punto, $totrow sarà uguale a 53, e quindi $delrow sarà uguale a 3.
Ma ovviamente non verrà cancellato nessun item, in quanto il campo feed_id più basso sarà 23 (quindi maggiore di 3!...
La cosa migliore, quindi (secondo me) sarebbe di far precedere alla query DELETE un'altra query che modifichi il contenuto dei campi feed_id, ricostruendo una numerazione da 1 a salire.
Ma come potrei fare ad ottenere questo risultato?