Hm.
Als ik een tabel heb met 40 rows met unieke (door autoincr. geplaatste) ID's en ik doe dit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| // ----------------------------
// hier nog even een DB connectie maken
// ----------------------------
// grens ID in $data['id'] stoppen
$query[1] = "SELECT id FROM tablename ORDER BY id DESC LIMIT 25,1";
if (!$result[1] = mysql_query($query[1]))
exit ("Er gaat iets mis: error 1.");
$data = mysql_fetch_array($querry[1]);
// alle rijen die een lager ID dan het hierboven bepaalde grensID hebben verwijderen
$query[2] = "DELETE FROM tablename WHERE id < " . $data['id'];
if (!mysql_query($query[2]))
exit ("Er gaat iets mis: error 2.");
// melding doen dat het gelukt is :) een totaal aantal rijen laten zien
$query[3] = "SELECT count(*) FROM tablename";
if (!$aantalRijen = mysql_query($query[3]))
exit ("Er gaat iets mis: error 3.");
echo "<b>De rijen zijn verwijderd!</b><br>";
echo "Er zitten: <b>" . $aantalRijen . "</b> rijen in de tabel " . $tablename . ".";
// ----------------------------
// hier nog even een DB connectie sluiten
// ---------------------------- |
..dan maakt het toch echt niets uit wat voor ID's de rijen hebben, als ze maar oplopen (waarbij de recenste rij de hoogste ID moet hebben, maar dit is vanzelfsprekend bij een goede tabel en goede scripts die met de tabel werken).
Er werd als argument gegeven dat je per ongeluk een rij kan toevoegen met een ander ID dan de autoincr. ID maar dan ligt dit toch echt aan je scripts!
PS: in het geval hierboven maakt het toch echt niet uit of de ID's gaten bevatten (40, 39, 12, 11, 10, enz). Hij zorgt gewoon dat de recenste 25 rijen blijven bestaan.
En als er gezeur komt over de ID's, dan doe je toch lekker bij elke INSERT de datum erin stoppen? Ga je daarmee werken.
[
Voor 11% gewijzigd door
Verwijderd op 23-08-2003 16:53
]