Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql]calculate daty - archiwum
Forum PHP.pl > Forum > Bazy danych > MySQL
JOHNY
Witam ma pewien problem po nowym roku z archiwum w które wyświetla wszystkie daty oprócz ostatniego miesiąca i teraz jest problem bo nie wiem jak to poprawić a działało dobrze

kod:
  1. <?php
  2.  
  3. //$dzisiaj=date('Y-m-d'); // aktualna data
  4. //$rok=date('Y'); // aktualny rok
  5. $miesiac=date('m'); // aktualny miesiac
  6. //$dzien=date('d'); // aktualny dzien
  7. //$iledni = date(\"t\"); //ile dni ma miesiac
  8.  
  9. $roznica = $miesiac - 1;
  10.  
  11.  $query = &#092;"SELECT DISTINCT DATE_FORMAT(data_dodania,'%Y.%m') AS data_dodania FROM newspl WHERE MONTH(data_dodania) <= '\".$roznica.\"' ORDER BY data_dodania DESC\";
  12.  $wynik = mysql_query($query);
  13. while($row = mysql_fetch_array($wynik)) {
  14. $dat=explode(&#092;".\", $row['data_dodania']); //formatowanie daty
  15. $dat[0];
  16. $dat[1];
  17. echo &#092;"<a href=\"archiwum.php?r=\".$dat[0].\"&m=\".$dat[1].\"\" class=\"news_bold\">\".$row['data_dodania'].\"</a><br>\";
  18. ?>


kod wyświetlał a w zasadzie rozdzielał date na rok.miesiac (forma buttona) po naciśnieciu ktorego pod spodem wyświetlał wszystkie newsy z danego roku.miesiąca
Teraz jest problem po nowym roku bo taka funkcja
  1. <?php
  2. $roznica = $miesiac - 1;
  3. ?>
nie ma sensu

Jak to poprawić zeby wyświetlało
2004.12
2004.11
ect

zamiast (tak wyświetla gdy usune z zapytania WHERE - a w takiej postaci jak jest powyższy kod nie wyświetla nic)
2005.01
2004.12
ect

Z góry dzięki za jakąś wskazówke
crash
  1. <?php
  2. if($roznica < 1)
  3. {
  4.    $roznica = 12;
  5.    $rok = $rok - 1;
  6. }
  7. ?>

A do warunku w zapytaniu SQL chyba jednak będzie lepiej dać całą datę a nie sam miesiąc.
JOHNY
  1. <?php
  2.  
  3. $query = &#092;"SELECT DISTINCT DATE_FORMAT(data_dodania,'%Y.%m') AS data_dodania FROM newspl WHERE (YEAR(data_dodania) <= '\".$rok.\"' AND MONTH(data_dodania) <= '\".$roznica.\"') ORDER BY data_dodania DESC\";
  4.  
  5. ?>


Qcze zrobiłem tak i nie działa dodając ten kod co napisałeś pokazyje nadal rok 2004 sad.gif i dlaczego nie chce wyświetlać wszystkiego skoro jest
  1. YEAR(data_dodania) <= '".$rok."'

powinno przecież wyswietlić 2005 i mniejsze no chyba że <= jakoś inaczej działa questionmark.gif

Sam nie wiem co tu wymodzić HELP
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.