Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Newsy. MySQL, podział na miesiące
Forum PHP.pl > Forum > PHP
Marusz
Witam grupowiczow. Zrobilem sobie prosty skrypt newsowy. No i tak pomyslalem, ze przydalo by sie rowniez zrobic archiwum owych newsow. No i zaczely sie schody. Nie potrafie wymyslec, w jaki sposob zrobic cos w tym stylu: http://phpnuke.org/modules.php?name=Stories_Archive. Powiem tylko jeszcze, ze tabela odpowiedzialna za date jest formatu timestamp. Potrafie wyswietlic newsa z danego miesiaca, z danej daty, godziny, etc... aczkolwiek nie kumam sposobu, jakim robi sie powyzszy podzial. Z gory dziekuje za odpowiedzi.
spenalzo
Zastosuj [manual:fa66328736]mktime[/manual:fa66328736], żeby wydobyć znacznik czasu odpowiadający danemu dniu, miesiącowi itd. potem wyciągnij kolejny +1 dzień, miesiąc, i wyciągnij z bazy wszystko z tego przedziału.
Marusz
Hm, chyba nie zrozumialem w czym mktime ma mi pomoc. Aby wyciagnac newsy - na przyklad - z miesiaca sierpnia, to wpisuje zapytanie:
[php:1:68a4a55399]<?php
$miesiac = '8';
mysql_query("SELECT *, DATE_FORMAT(data, '%d.%m.%Y %H:%i:%s') as data FROM mz_news WHERE MONTH(data) = '$miesiac' order by id DESC");
?>[/php:1:68a4a55399]
i voila. Mnie generalnie chodzi o to, aby AUTOMATYCZNIE robilo sie cos takiego w archiwum - przeciez nie bede co miesiac dopisywal tego recznie.
Teodor
[php:1:15a0f44b11]<?php
for ($miesiac=1; $miesiac <=12; $miesiac++) {
mysql_query("SELECT *, DATE_FORMAT(data, '%d.%m.%Y %H:%i:%s') as data FROM mz_news
WHERE MONTH(data) = '$miesiac' order by id DESC");
//tutaj ca tam chcesz dla danego miesiaca
}
?>
[/php:1:15a0f44b11]
to do Twojego zapytania. Jednak to nie jest dobre rozwiazanie - wyciaganie z bazy po nr miesiaca - w styczniu sie zdziwisz tongue.gif

Najlepiej wyciagac z bazy (wogole operowac na "czasie") w postaci znacznikow unixowych a dopiero wyswietlac w postaci dd.mm.YYYY.
spenalzo
Ja miałem na myśli coś takiego.
[php:1:72c1c64c2e]<?php
// Pokaz wszystkie newsy np. od 15:15:12 12 maja 2002 do 23:59:59 1 czerwca 2002
$t_poczatkowy=mktime(15,15,12,5,12,2002);
$t_koncowy=mktime(23,59,59,6,1,2002);
$sql="SELECT * FROM newsy WHERE time > '".$t_poczatkowy."' AND time < '".$t_koncowy."'";
$wyniki=mysql_fetch_array(mysql_query($sql));
[...]
?>[/php:1:72c1c64c2e]
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.