Miten saisin rakennettua kun mulla on mysql uutisia ja niillä on timestampit eli sellanen että tulisi ensin vaikka 2007 ja sen alle ne kuukaudet joissa on uutisia?
Taulu on rakenteeltaan:
CREATE TABLE `news` ( `id` int(11) NOT NULL auto_increment, `filename` varchar(20) NOT NULL, `title` varchar(20) NOT NULL, `text` text NOT NULL, `time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `ip` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
Tällä pitäisi päästä alkuun:
SELECT DATE_FORMAT(time, '%Y%m') AS vvvvkk, DATE_FORMAT(time, '%Y') AS vvvv FROM news GROUP BY vvvvkk ORDER BY time DESC
Tuolla saat listattua kaikki kuukaudet, joissa on uutisia. Sitten tulostussilmukassa vain katsot, milloin vuosi vaihtuu ja tulostat sen "väliotsikoksi"
tekeeks sen niin sit et linkki on muotoa ?m=12&y=2007 vai a=122007
Tuhon on vaikea minun vastata. Tee linkit niin kuin haluat sen toimivan :)
Myöhäinen edit: Laita ne mod_rewritella vaikka muotoon:
/uutiset - listaa kaikki uutiset
/uutiset/VVVV - listaa kyseisen vuoden uutiset
/uutiset/VVVV/MM - listaa kyseisen kuukauden uutiset
/uutiset/VVVV/MM/DD - näyttää kyseisen päivän uutiset
Aihe on jo aika vanha, joten et voi enää vastata siihen.