Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wyświetlanie miesięcy, roku względem daty w artykułach
SN@JPER^
post
Post #1





Grupa: Zarejestrowani
Postów: 266
Pomógł: 0
Dołączył: 4.01.2007
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Witam,

Mam tabele 'news' w niej pole 'data', gdzie dodaje wartości poprzez time();.

W jaki sposób zrobić wyświetlanie dni miesięcy i roku względem tej daty, np.:


Grudzień 2008
Listopad 2008
Październik 2008
Wrzesień 2008
Sierpień 2008
Lipiec 2008
Czerwiec 2008
Maj 2008

gdzie jak kliknę na któraś z tych dat, to pokażą się artykuły, dodane np. w grudniu 2008 roku.
Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
krowal
post
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

Ostrzeżenie: (0%)
-----


Wyświetlać możesz w ten sposób:
  1. <?php
  2. echo date('F Y', $time); //wyswietli np 'January 2008'
  3. ?>


potem robisz z tego linka:
  1. <?php
  2. $month = date('m', $time);
  3. $year = date('Y', $time);
  4. echo '<a href="script.php?month='.$month.'&year='.$year.'">'.date('F Y', $time).'</a>';
  5. ?>


a w skrypcie możesz zobić takie zapytanie:
  1. SELECT * FROM articles WHERE date BETWEEN '$year-$month-01' AND '$year-$month-31';


Weź jeszcze poprawkę na ilość dni w miesiącu i inne drobiazgi i skrypt gotowy smile.gif


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
Go to the top of the page
+Quote Post
SN@JPER^
post
Post #3





Grupa: Zarejestrowani
Postów: 266
Pomógł: 0
Dołączył: 4.01.2007
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Tylko, że jak 'zapętluje', wyświetla tyle razy nazwę miesiąca i roku, ile jest artykułów w bazie:

  1. <?php
  2. $sql = "SELECT * FROM news";
  3. $query = @mysql_query($sql);
  4.  
  5. while($fetch = @mysql_fetch_array($query))
  6. {
  7.  $data = htmlspecialchars(stripslashes($fetch['data']));
  8.  $data_ = date("Y.m.d; H:i", $data);
  9.  
  10.  
  11.  echo date('F Y', $data).'<br /><br /><br />'; //wyswietli np 'January 2008'
  12.  
  13.  $month = date('m', $data);
  14.  $year = date('Y', $data);
  15.  echo '<a href="script.php?month='.$month.'&year='.$year.'">'.date('F Y', $data).'</a><br />';
  16.  
  17. }
  18. ?>


Ten post edytował SN@JPER^ 3.01.2009, 21:02:45
Go to the top of the page
+Quote Post
outsider
post
Post #4





Grupa: Zarejestrowani
Postów: 267
Pomógł: 36
Dołączył: 8.08.2008

Ostrzeżenie: (0%)
-----


Cytat
Tylko, że jak 'zapętluje', wyświetla tyle razy nazwę miesiąca i roku, ile jest artykułów w bazie:

Bo pobierasz wszystkie rekordy z bazy smile.gif Petla while wydrukuje Ci wszystkie daty.
Go to the top of the page
+Quote Post
SN@JPER^
post
Post #5





Grupa: Zarejestrowani
Postów: 266
Pomógł: 0
Dołączył: 4.01.2007
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Owszem,

tylko jak zrobić, żeby skrypt sam tworzy takie coś:

(to są linki) - nacisnę na któryś z nich i przechodzę podstrony gdzie są artykuły z tej daty.
Grudzień 2008
Listopad 2008
Październik 2008
Wrzesień 2008
Sierpień 2008
Lipiec 2008
Czerwiec 2008
Maj 2008
Go to the top of the page
+Quote Post
outsider
post
Post #6





Grupa: Zarejestrowani
Postów: 267
Pomógł: 36
Dołączył: 8.08.2008

Ostrzeżenie: (0%)
-----


Obecnie dostajesz wyniki po angielsku - poszukaj na google jak za pomoca petli zmienic ja na polski, pozniej w petli while drukujesz odnosnik czyli <a href="zzz"></a> gdzie zzz to link do strony z artykulami z danego miesiaca
Go to the top of the page
+Quote Post
krowal
post
Post #7





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

Ostrzeżenie: (0%)
-----


No tak... tak będzie.
Spróbuj czegoś takiego:
  1. <?php
  2.  $query = "SELECT DISTINCT FROM_UNIXTIME(data, '%m %Y') as month_year FROM news"; //jesli zapisujesz date w timestamp
  3.  $query = "SELECT DISTINCT DATE_FORMAT(data,'%m %Y') as month_year FROM news"; //jesli zapisujesz date w datetime
  4.  //wynikiem tego beda niepowtarzajace sie zestawy 'miesiac rok'
  5.  
  6.  
  7.  $result = mysql_query($query);
  8.  
  9.  $monthsPl = array(
  10.    1 => 'Styczen',
  11.    2 => 'Luty', //wypelnij wszystkie do grudnia
  12.  );
  13.  
  14.  while($row = mysql_fetch_array($result)){
  15.    $date = explode(' ', $row['month_year']);
  16.    echo '<a href="script.php?month='.$date[0].'&year='.$date[1].'">'.$monthsPl[(int)$date[0]].' '.$date[1].'</a>';
  17.  }
  18. ?>


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 04:36