Als je een databace hebt, je haalt berichten op.

Die berichten hebben verschillende waard ( een bericht, twee berichten enz.)

Als ik ze wil verwijderen moet ik dus de hele grote sql code typen en dan hopen dat ik het goed gok.

Kan je niet gewoon doen dat een sql opdracht automatic alle berichten verwijderd.

het gaat om een chat.
Hoe ziet je situatie eruit dan? Wat is je database model?
Dat is allemaal klaar XD

Maar hoe kan je bijvoorbeeld:
<?php
$a = 5;
$t = " Heey";
?>

Hoe kan je dan $t zovaak weergewen wat in $a staat?

nu moet heey 5 keer op het scherm komen
Om iets te herhalen kun je een for-lus gebruiken:

<?php

for($i = 0; $i < $a; $i++) {
echo $t;
}

?>
Er komt nu 5x "Heey" op het scherm te staan. Zie ook http://nl3.php.net/for

Maar wat ik me afvraag: wat voor soort berichten moet worden verwijderd? Of moet gewoon de hele tabel leeg?

Als het op basis voor userID is kun je bijvoorbeeld gebruiken:

DELETE
FROM `berichten`
WHERE `userid` = 25

Alle records waar het userID 25 is, worden dan verwijderd.

Als gewoon de hele tabel leeg moet, kun je gebruiken:

TRUNCATE TABLE `berichten`

Als je meer info wil, graag je database model, en uitleg over wat je precies wil...
Hoi Carlo,


<?php
$a=5;
$t=" Heey";
echo str_repeat($t, $a);
?>


it's simple ;-)
grts, René
bedankt, ik heb nu geen beschikking over m'n databace.
Maar er is een tabel waar alle berichten in staan van de chat.

En die worden elke keer weergeven dus er staan berichten in van een maand terug.
dat word m'n databace ook heel groot.

Maar hoe kan je verkomen dat de kolom (waar de berichten staan)

elke keer word verwijderd?
dat hij maar een keer per dag word verwijderd
(ik wil het script op de index zetten zodat ik ook op vakantie kan.)
Als ik het goed begrijp wil je een Tb leeg makken.
mysql_query("TRUNCATE TABLE Tb_naam ")or die(mysql_error());
johan schreef op 02.04.2009 08:13
Als ik het goed begrijp wil je een Tb leeg makken.
mysql_query("TRUNCATE TABLE Tb_naam ")or die(mysql_error());


Bedankt.
Maar hoe zorg je dat de tabel maar een keer per dag word opgeschoond.

Dan kan ik dat op de index pagina zetten
Waarom wil je de tabel opschonen? In 99,9% van de gevallen is dat echt niet nodig.
En probeer een TRUNCATE te voorkomen, maar gebruik gewoon DELETE FROM tabel, om de id's niet in de war te laten komen.

En dagelijks je tabel leegmaken kan simpel met een cronjob.
Maar nogmaals: waarschijnlijk is dat echt niet nodig.
Ja het klinkt gek, maar de chat toont dan berichten van de vorigge dag, en als het druk word, dan kan de chat heel sloom worden.

Dus daarom wil ik graag een tabel iedere dag automatisch opschonen
Dan moet je het script aanpassen dat ie alleen de berichten van niet ouder dan 6 uur toont ofzo. Database elke dag leegmaken is niet nodig en ook niet handig. Zit ik net te chatten in jou chatbox, is ineens mn scherm leeg omdat jou scriptje ineens alles opruimt.
<?php
mysql_query("SELECT tabel FROM chatbox WHERE datum > DATE_SUB(NOW(), INTERVAL 6 HOUR)");
?>
Nou selecteert die alle berichten die niet ouder zijn dan 6uur. Dit kan je gewoon bovenaan je chatbox scriptje zetten dan.

Wil je je database toch graag leger houden (wat niet echt nodig is maar toch) kan je ook DELETE gebruiken. Nou verwijdert die alle berichten die ouder zijn dan 6uur.

<?php
mysql_query("DELETE FROM chatbox WHERE datum < DATE_SUB(NOW(), INTERVAL 6 HOUR)");
?>

Reageren