Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zrobić aby usuwało wszystkie wpisy z bazy a zostawiało 20?
Forum PHP.pl > Forum > PHP
Saki
Jak zrobić aby usuwało wszystkie wpisy z bazy a zostawiało tylko 20 najnowszych wpisów, chce skrypt uruchamiać co godzinę z Crona i żeby zawsze zostało w bazie 20 wpisów nawet jeżeli nikt nic nie napisał.

Zrobiłem coś takiego ale nie działa:

  1. $delid = 20; // zawsze ma zostać 20 najnowszych wpisów
  2.  
  3. $getcom = mysql_query('SELECT * FROM wp_chat_message');
  4. while($row=mysql_fetch_array($getcom)){
  5. mysql_query("DELETE FROM shoutbox WHERE id <= $delid");
  6. }
  7. }
Crozin
  1. DELETE FROM tbl_name ORDER BY created_at DESC LIMIT 20, 99999999;
Saki
Cytat(Crozin @ 30.06.2011, 05:43:12 ) *
  1. DELETE FROM tbl_name ORDER BY created_at DESC LIMIT 20, 99999999;



Zrobiłem też tak biggrin.gif

  1. $getcom = mysql_query('SELECT id FROM wp_chat_message');
  2. while($row=mysql_fetch_array($getcom)){
  3.  
  4. // jezeli jest powyżej 30 wpisów może usuwać
  5. if ($row['id'] >= '30') {
  6.  
  7. $getcom = mysql_query('SELECT id FROM wp_chat_message ORDER BY id DESC LIMIT 1');
  8. while($row=mysql_fetch_array($getcom)){
  9. $delid = $row['id'] - 20; // zostaną 20 najnowsze wpisy
  10. // echo $delid;
  11. mysql_query("DELETE FROM wp_chat_message WHERE id <= $delid");
  12. // usuń wszystkie wpisy które są mniejsze
  13. }
  14.  
  15.  
  16. }
  17. }


Dzięki smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.