Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odczytywanie miesięcy z bazy
Forum PHP.pl > Forum > PHP
MP1
W tabeli jest pole DATE zawierające daty nowości. Czy możliwe jest wyciągnięcie z bazy informacji o tym, jakie są miesiące i lata (lub wyciągnąć z niej pojednym rekordzie z każdego miesiąca)?

Chcę uzyskać taki efekt:

Sierpień 2005
Wrzesień 2005
Październik 2005
Listopad 2005

Możnaby wyciągnąć wszystkie daty z bazy i w php dopiero się doszukiwać, jednak może istnieje już odpowiednia funkcja SQL?
batman
  1. SELECT MONTHNAME( DATA ) , YEAR( DATA )
  2. FROM tabela
MP1
Problem z tym, że nie podaję do zapytania nazw miesięcy i lat... Chcę to uzyskać z bazy danych, by potem wyświetlić listę miesięcy, w których znajdują się jakieś nowości (czyli istnieją rekordy).

Jeśli się nie da - będę kombinował inaczej. Wtedy - jak uzyskać najstarszy rekord?
batman
  1. <?php
  2. $q=mysql_query("SELECT MONTHNAME(data), YEAR(data) FROM tabela ORDER BY data");
  3. while ($row=mysql_fetch_row($q))
  4. {
  5. echo $row[0].' '.$row[1].'<br>';
  6. }
  7. ?>


co dało efekt następujący:

September 2004
November 2004
September 2005
September 2005
October 2005

Zamiast
  1. <?php
  2. echo $row[0].' '.$row[1].'<br>';
  3. ?>

możesz wstawić cokolwiek, np listę rozwijaną.
MP1
Nadal złe wyjaśnienie...

Jeśli będzie nowości z tego samego miesiąca 8, to wyświetli się 8 takich nazw...

No, nic... Pewnie nie da się tego zrobić w MySQL. Jak jednak wyciągnąć najstarszy rekord z bazy?
batman
  1. SELECT MONTHNAME(DATA) AS a, YEAR(DATA) AS b
  2. FROM tabela GROUP BY a, b ORDER BY DATA


A co do najstarszego rekordu to piszesz:

ORDER BY data DESC
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.