Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Wyświetlanie wg daty
Forum PHP.pl > Forum > Przedszkole
ksaw
Witam
Ma zapisane w bazie 3 pola: data w formacie Y-m, dane1, dane2
I teraz chciałbym aby na stronie pojawiał mi się pierwszy rekord z każdego miesiąca.
Jak to zrobić w najprostszy sposób ?
evolucja
  1. $query = mysql_query("SELECT * FROM `tabela` ORDER BY `date`");
  2. $lastrecord = 82800;
  3. while($result = mysql_fetch_array($query)) {
  4. if(date('m/Y', $lastrecord) != date('m/Y', $result['data'])) {
  5. echo $result['dane1'].", ".$result['dane2']."\n";
  6. }
  7. $lastrecord = $result['data'];
  8. }
PanGuzol
Spróbuj zapytanie
  1. SELECT * FROM `tabela` GROUP BY `data`;
erix
Po co GROUP BY, skoro nie ma funkcji agregującej?

~evolucja - jak będzie kilka mln rekordów, to też tak obrabiać?

Jednym zapytaniem:
  1. SELECT DISTINCT MONTH(DATA), * FROM tabela ORDER BY DATA


To jest jak timestamp. Jak wg Twojego formatu - rozdziel odpowiednią funkcją. Ale polecam timestamp.
PanGuzol
Ale działa.
erix
Porównaj sobie wydajność i ilość zżeranej pamięci...

Jak wszyscy będą podchodzić do tego ale działa, to niedługo zamiast optymalizować oprogramowanie, to będą wciskać więcej RAM/rdzeni do momentu, gdy nie będzie się dało więcej. Po co myśleć, jak można się wyręczyć.
H4eX
Cytat(erix @ 21.07.2010, 23:23:56 ) *
do momentu, gdy nie będzie się dało więcej


Oj, raczej nie będzie takiego momentu biggrin.gif
evolucja
Cytat(erix @ 21.07.2010, 22:10:31 ) *
~evolucja - jak będzie kilka mln rekordów, to też tak obrabiać?

Nawet gdyby twórca postu przetrzymywał w bazie informacji od roku 0 do 3000 to i tak było by to zaledwie 36000 rekordów do pobrania smile.gif
erix
A skąd wiesz, że akurat tyle ma? Skoro chce pierwszy rekord z danego miesiąca, to śmiem twierdzić, że dla jednego miesiąca jest ich z pewnością więcej. Teoria obalona.
evolucja
Mimo wszystko śmiem przypuszczać, że autorowi to do niczego nie potrzebne a zapytał się tylko jako ciekawostkę. Mimo wszystko główne założenie wątku
Cytat
Jak to zrobić w najprostszy sposób ?
po kilku odpowiedziach zostało spełnione graduated.gif
erix
Prosty, to nie znaczy, że fuszerkowaty.
evolucja
fuszerkowaty? a co to za określenie?
erix
Wykonuje pierdyliard niepotrzebnych operacji - marnujesz moc, czas i energię...

a jeśli traktujemy dosłownie: http://sjp.pwn.pl/slownik/2558758/fuszerka
evolucja
A czy ja gdziekolwiek napisałem, że to rozwiązanie jest dobre? smile.gif Jako, że po 3 godzinach nikt nie dał odpowiedzi a ja nie znałem innych funkcji napisałem tą fuszerkowatą funkcję.
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.