Avatar billede webcreator Nybegynder
03. juni 2003 - 21:28 Der er 3 kommentarer og
1 løsning

Udløb fra database efter X sek/min - PHP/MySQL

Hej.

Jeg har en row i min DB, som jeg meget gerne vil have til at udløbe (slette sig selv) efter X sekunder den har været tilføjet. Jeg har pt. kun en kolonne (nick) men kan sagtens tilføje et tidsfelt.

Er der en funktion i MySQL, som expire felter, som er X 60 gamle ?

Eller kan det gøres med PHP ? Helst først-nævnte løsning
Avatar billede tipsen Nybegynder
03. juni 2003 - 22:00 #1
Mener ikke der findes noget i MySQL - det vil vist være alt for ressourcekrævende - vil anbefale dig at lave en garbage-rutine i et php-script - så kan den rydde op med jævne mellemrum - du kan evt. også tilpasse dine udtræk, så gamle poster ikke medtages og så kun rydde op måske en gang i døgnet - for ikke at overbelaste serveren...
Avatar billede webcreator Nybegynder
03. juni 2003 - 22:03 #2
Det er til en chat, og er inddelt på en sådan måde, at der er én tabel der indeholder nicks, og en tabel der indeholder beskeden. Helt nøjagtigt er indholdet af besked :
til (hvilken bruger det skal sendes til. Dette er lavet for at muliggøre private beskeder).
fra (siger sig selv. igen en del af systemet)
besk (beskeden sendt fra brugeren)
IP (så man liige kan holde lidt øje med folk :)
Avatar billede webcreator Nybegynder
03. juni 2003 - 22:08 #3
Så jeg har brug for en rutine, der tjekke om en bruger er "for gammel", og ikke længere aktiv. Jeg tror jeg vil lave det således :

Hvis brugeren er online, sendes automatisk et nyt "TimeStamp" med 10 sek.s interval.

Hvis der er flere brugere online på chatten, vil disse køre et script i baggrunden, som vil ryde "ikke-ud-loggede" brugere af vejen. Dette kan fx. gøres ved at tjekke, om et timestamp er ældre end 1 minut.

Flg. kode er starten på forsøget :

<?php

$conn = mysql_connect("localhost", "jemt", "mscool") or die(mysql_error());
mysql_select_db("jemt");
$r = mysql_query("SELECT * FROM $chatusers");

while ($row = mysql_fetch_array($s)) {

if ($row["time" - 60 sekunder => now()) {

>> Slette post her - kan jeg godt finde ud af..

)

Ville dette være løsningen ?
Avatar billede webcreator Nybegynder
03. juni 2003 - 23:33 #4
Hm, tror jeg lukker her. Har vist fat i noget af det rigtige nu..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester