Hallo nogmaals,

ik heb een gastenboek met een mysql database. Als het gastenboek nu vol aan het raken is of ik wil iemands ip adres achterhalen dan log ik in via phpMyAdmin via mijn ISP. Dit is heel omslachtig doordat ik twee maal moet inloggen met wachtwoorden en usernames die niet zijn te onthouden.

Nu ben ik bezig met een klein script te maken zodat ik iemands ip adres kan achterhalen. Dit is inmiddels voldoende gelukt. Op deze manier:


$result = mysql_query ("SELECT * FROM gastenboek ORDER BY id DESC");

if ($result && mysql_num_rows($result) > 0)
    {
        while ($row = mysql_fetch_array($result))
        {
            echo ''.$row['id'].' '.$row['auteur'].' '.$row['ip'].'<br>';
        }
    } else {
        echo 'Geen data gevonden';
    }


Nu wil ik ook een knop of zo maken waarmee ik alles uit de database DELETE behalve de laatste 200 berichten. Er kan niet met datums gewerkt worden omdat deze niet goed zijn gebruikt. De datum komt namelijk als gewoon tekstveld in de mysql database te staan. De berichten in het gastenboek worden dan ook gesorteerd op ID.

Kan iemand mij een voorzetje geven of iets dergelijks??
Als het gastenboek nu vol aan het raken is
Hoeveel miljard bezoekers heb jij dan wel niet? Een database raakt echt zelden vol, dat kan bijna niet.

En wanneer jij niet alles op het scherm wilt tonen, gebruik dan een LIMIT.

Dit topic klinkt mij in de oren als volkomen onzinnig.

ps. Waar is de WHERE in jouw query? Je haalt nu alle data op, niet de gegevens van 1 user.

Edit: In PostgreSQL kan 1 enkele tabel 32 TB groot zijn. Volgens Wikipedia is dat gelijk aan alle tekst van 32 grote universiteitsblibliotheken...

Edit 2: moet niet overdrijven...
Ik weet dat er veel gegevens in een database kunnen en ik haal inderdaad alle gegevens op uit de database. Dit is gewoon mogelijk omdat het maar +/- 1000 records zijn. Ik wil het graag op deze manier hebben en ik hoop dat iemand mij hiermee kan helpen.


Ik denk in de volgende richting...

Het script moet de eerste row pakken en dan daar het ID van, deze plus 200 doen en alles boven dat getal verwijderen.
Wat wil je hier eigenlijk mee bereiken? Voor zover ik het nu kan inschatten, levert je dit helemaal niets op. Verder is het niet slim gescript, het kost je extra tijd om alles op te halen en je doet er niets mee. Haal datgene op dat je nodig hebt.

Kortom, wat is het doel van dit script?
Frank, j kan een host hebben waar je maar 50MB ruimte hebt voor en DB (fo zelfs total)e

wat ee kk toetsenoekn
sql> DELETE FROM gastenboek ORDER BY id DESC limit 200, 500000;

denk ik :)
Het doel is:

1 Dat ik alle gegevens uit de database ophaal en naar het scherm schrijf. Zodat ik wanneer iemand onder een andere naam in mijn gastenboek post verschillende ip adressen kan vergelijken om te kijken wie het werkelijk is.

2 Ik wil graag mijn database schoon houden (dus onnodige gegevens verwijderen als die niet meer nodig zijn). En in dit geval zijn dat oude berichten in het gastenboek.

En deze dingen wil ik kunnen doen zonder al de moeite van het 2 keer inloggen met moeilijke gebruikergegevens via phpMyAdmin. Deze inloggegevens zijn overigens niet aan te passen anders had ik hier wel voor gekozen.
Ok, de goede query heb ik gevonden.


$delete = mysql_query ("DELETE * FROM gastenboek ORDER BY id DESC LIMIT 100, 1000");


Alleen hoe zet ik die query in werking d.m.v. een knop. Want het moet niet zo zijn wanneer ik die pagina open dat hij elke keer die query uitvoert.


ps. hoe krijg je die gekleurde php code hier in het codevak?
@Bassos
Misschien off topic maar waarom zou je een scipt gebruiken als je makkelijk op basis van ID een hele range kunt verwijderen.
Stel voor dat je 10000 gebruikers in je gastenboek geschreven hebben, nu wil je 200 laatste berichten bewaren. dan doe je toch:

DELETE from gastenbeok where id between 1 and 9800;

Ik gebruik zelf een unixserver... en dit is wel erg een makkelijke manier om het te doen.
Ja dat is inderdaad ook mogelijk, ik zal eens kijken naar deze methode.

Maar hoe zet je die query in werking met behulp van een knop?
*bump*

Is er dan niemand die me even kan vertellen hoe ik de query in werking zet dmv een knop?

Reageren