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
3.09.2005, 11:46:09
SELECT MONTHNAME( DATA ) , YEAR( DATA )
FROM tabela
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
3.09.2005, 12:51:25
<?php
$q=mysql_query("SELECT MONTHNAME(data), YEAR(data) FROM tabela ORDER BY data"); {
echo $row[0].' '.$row[1].'<br>'; }
?>
co dało efekt następujący:
September 2004
November 2004
September 2005
September 2005
October 2005
Zamiast
<?php
echo $row[0].' '.$row[1].'<br>'; ?>
możesz wstawić cokolwiek, np listę rozwijaną.
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
3.09.2005, 13:22:15
SELECT MONTHNAME(DATA) AS a, YEAR(DATA) AS b
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.