Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] Jak zablokowac wyswietlanie danych po 30 dniach?
Forum PHP.pl > Forum > Przedszkole
microh
Witam ponownie wszystkich użytkowników guitar.gif

Mam w tabeli rekord typu (datetime) każdy wie, co ona przechowuje biggrin.gif .
Chodzi mi oto, ze jeżeli minie 30 dni od daty dodania tegoż rekordy, to przestanie się on wyswietlac na stronie... WYGLADA TO .. TAK:

  1. <?php
  2.  
  3. $link = mysql_connect("localhost", "?questionmark.gifquestionmark.gifquestionmark.gif", "******)
  4. or die("BŁĄD: nie można się połączyć z serverem MySQL ;/");
  5.  
  6. mysql_select_db("SHIT")
  7. or die("Blad bazy MYSQL");
  8.  
  9. $query = "SELECT * FROM linki";
  10. $result = mysql_query($query)
  11. or die("Blad tabeli!");
  12.  
  13.  
  14.  
  15.  
  16. if ($row["data"] < 30) // wiem, ze źle, ale nie mam pomysłu jak zrobnić poprawnie ;/
  17. {
  18.  
  19.  
  20.  
  21.  
  22. while ($row = mysql_fetch_array($result)) {
  23.  $link = $row["link"];
  24.  $opis = $row["opis"];
  25.  echo '<li><a href="'.$row['link'].'" class="ostatnie" target="_blank">'.$row['opis'].'</a></li>';
  26.  
  27. }
  28. mysql_free_result($result);
  29. }
  30.  
  31. ?>


Pomożecie i tym razem??
arczi
najlepiej napisz funkcje, ktora uruchamiasz przy pobieraniu wpisu z bazy, jesli wpis jest starszy niz 30dni to go usuwaj, albo przenos do tabeli archiwum, albo co sobie wymyslisz, to juz zalezy od Ciebie smile.gif
microh
Też nad tym myślałem, ale właśnie nie umiem zrobić żeby sprawdzał czy jest starszy niż 30 DNI ;/
nospor
pierwszy przyklad w manualu:
http://dev.mysql.com/doc/refman/4.1/en/dat...-functions.html

to sie robi po stronie bazy. przenosze
microh
Dzięki bardzo, z ego manuala nie czaiłem ;/ ale sobie poradziłem:

  1. <?php
  2. $query = "SELECT * FROM linki WHERE mail > NOW() - INTERVAL 720 HOUR ";
  3. $result = mysql_query($query)
  4. ?>
aarambo.gif

Dzieki bardzo:)
nospor
ale co tu czaic? Napisalem ci przeciez, ze pierwszy przyklad:
  1. SELECT something FROM tbl_name WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col

Ten przyklad wybiera rekordu z ostatnich 30 dni, czyli dokladnie to oco ci chodzilo.
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.