Avatar billede Morten Professor
27. oktober 2015 - 16:11 Der er 4 kommentarer og
1 løsning

Slet id automatisk efter ti min,

Hej eksperter

Jeg vil høre om der er nogen der kan hjælpe mig med at få slettet noget fra en tabel efter f.eks. 10 min.
Det er bare så mine tabeller bliver helt fyldt helt op, med tiden.

Med venlig hilsen
Morten
Avatar billede arne_v Ekspert
27. oktober 2015 - 16:29 #1
To muligheder:

* scheduleret job (*nix: cron, windows: scheduler)

* lad den kode som indsaetter teste og slette eventuelt gammelt
Avatar billede olsensweb.dk Ekspert
27. oktober 2015 - 16:40 #2
har du prøvet denne google ?? https://www.google.dk/search?q=mysql+delete+older+than+10+minutes
ref http://stackoverflow.com/questions/3433465/mysql-delete-all-rows-older-than-10-minutes
Otherwise (if time_created is mysql timestamp), you could try this:
DELETE FROM locks WHERE time_created < (NOW() - INTERVAL 10 MINUTE)

ref http://stackoverflow.com/questions/23585623/delete-rows-older-than-30-minutes-in-mysql
DELETE FROM your_table WHERE TIMESTAMPDIFF(MINUTE,session_time,NOW()) > 30;

du kunne så sætte et cron job der køres med faste intervaller feks 1 gang om dagen
https://da.wikipedia.org/wiki/Cron
hvis din host ikke tilbyder det er der nogle gratis service der gør det
ref https://www.google.dk/search?q=free+cron+job
http://www.onlinecronjobs.com/
https://www.cronjob.de/
https://cron-job.org/en/

eks på script https://www.google.dk/search?q=cron+job+php+script+example
Avatar billede Morten Professor
27. oktober 2015 - 22:27 #3
Hej Ronols

Fandt frem til en løsning med det vi har lavet sammen før.
Vil du smide et svar så du kan få dine point.

PS. Tak for forslag arne_v

Her er resultatet:
  $deleteSQL = "DELETE FROM samlet_pris WHERE datetime < DATE_SUB(NOW(),INTERVAL 10 MINUTE)";

  mysqli_select_db($hellestrik, "DELETE FROM samlet_pris WHERE datetime < DATE_SUB(NOW(),INTERVAL 1 MINUTE)");
  $Result1 = mysqli_query($hellestrik, $deleteSQL) or die(mysqli_error($hellestrik));

Og har lavet <?php require_once('slet_efter_10_min.php'); ?> på den side de går ind på så det hele tiden opdateres.
Avatar billede Morten Professor
27. oktober 2015 - 22:31 #4
Hov lige en rettelse:
  $deleteSQL = "DELETE FROM samlet_pris WHERE datetime < DATE_SUB(NOW(),INTERVAL 10 MINUTE)";

  mysqli_select_db($hellestrik, "DELETE FROM samlet_pris WHERE datetime < DATE_SUB(NOW(),INTERVAL 10 MINUTE)");
  $Result1 = mysqli_query($hellestrik, $deleteSQL) or die(mysqli_error($hellestrik));
Avatar billede olsensweb.dk Ekspert
28. oktober 2015 - 06:37 #5
hermed et svar.

kan du ikke forklare mig hvorfor du gentager dit sql i mysqli_select_db ??
eks
mysqli_select_db($hellestrik, $sql);
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
Computerworld tilbyder specialiserede kurser i database-management

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