Toon posts:

[MySql] max 100 lijntjes in een db

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ey, ik heb een vraag...

Ik heb een db voor mijn statistieken, deze database bevat stats van meerdere sites en nu heb ik er een table bij gezet waar ik ook de laatste 100 (of anders gedefenieerd) users kan zien, maar nu wil ik dat er maximaal 100 (*) regels in zitten dus stel ik add er 1 dat ik dan de 'oudste' verwijder..

hoe kan ik dit het simpelste doen?

  • ProgrammerX
  • Registratie: Juli 2002
  • Laatst online: 26-02-2021
Ik krijg de indruk dat je wel kan bepalen welke de nieuwste is enz. (aan de hand van een timestamp ?). Dan kun je toch voor het inserten van de nieuwe, de oudste verwijderen door alles te selecteren en te sorteren op de timestamp aflopend. Hierna de nieuwe inserten.

Wat misschien handiger is, is gewoon alles toevoegen en als je je gegevens laat zien gewoon de 100 nieuwste laten zien (kan dacht ik met LIMIT, maar dat moet je ff opzoeken in de documentatie) door weer te sorteren op je timestamp.

Verwijderd

Topicstarter
Ik doe gewoon

PHP:
1
2
3
4
5
6
7
8
9
    $sql = "SELECT
                *
            FROM
                statlast
            WHERE
                  sid='$id'
            ORDER BY
                id DESC
            LIMIT 0,100";


maar idd ik weet nu hoe ik het weg kan halen, door gewoon de oudste timestamps te verwijderen... :)

Verwijderd

PHP:
1
2
3
4
5
6
$max = 100;
$res = mysql_query("SELECT id FROM statlast ORDER BY DESC") or die (mysql_error());
$num = mysql_num_rows($res);
if($num>$max){
 mysql_query ("DELETE MIN(id) FROM statlast") or die (mysql_error());
}


misschien heb je hier iets aan....