Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Problem z usuwamien rekordów z ostatniego miesiąca
Forum PHP.pl > Forum > Przedszkole
djpotwosss
Witam, mam taki skrypt, któy usuwa rekordy któy są starsze niż 24 h:

  1.  
  2. <?php
  3.  
  4. $odejmij=date('d.m.Y H:i', time()-86400);
  5.  
  6. $query="DELETE FROM `tabela` WHERE `data` < '$odejmij'";
  7.  
  8. //I TAK DALEJ..
  9. ?>
  10.  


i skrypt działa prawie dobrze, usuwa rekordy z ostatnich 24 godzin ALE z poprzedniego miesiąca nie może usunąć..
CuteOne
Dlatego powinno się używać wbudowanych rozwiązań(typy kolumn) - DATE, DATETIME lub TIMESTAMP.
kefirek
  1. $odejmij = mktime(0, 0, 0, date('n'), 1, date("Y"));
  2.  
  3. $query="DELETE FROM `tabela` WHERE `data` < '$odejmij'";
djpotwosss
Niestety, to usunęło rekordy nawet z kilku minut a rekordy które były miesiąc temu zostały nadal..

I nikt nie umie pomóc.. ?
kefirek
Spróbuj tak
  1. DELETE FROM tabela WHERE DATE(FROM_UNIXTIME(DATA)) <= LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))
djpotwosss
Niestety, ale to polecenie wyczyściło całą bazę danych wraz z rekordami dodanymi kilka minut temu.....
CuteOne
Nie wyciągnąłeś wniosków z mojej rady. Gdybyś zmienił typ kolumny na taki jak podałem wyżej uniknął byś tych wszystkich problemów
kpt_lucek
Tak jak powiedział CuteOne:
Dodaj sobię kolumnę która będzie Ci przetrzymywać ciąg znakowy w postaci "Y-m" (przykład: 2012-10, Y-m ponieważ chcesz usuwać dane z danego miesiąca i danego roku).
CuteOne
Żadnego ciągu znaków... DATETIME lub TIMESTAMP
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.