ventrec Skrevet 23. november 2009 Del Skrevet 23. november 2009 Jeg har en side som lister ut filmer sortert på en oppgitt dato (time()), disse er alle lagret i en database. Slik det er nå skrives de ut sortert etter den oppgitte datoen, og det er korrekt. I tillegg til dette ønsker jeg å ha en overskrift for hver måned som samler alle filmene under sin egen måned. Eksempel: Hvis jeg har fire filmer i databasen hvor en kommer ut i januar, to i februar samt en i mars ønsker jeg at det skal se slik ut... -------------- - Januar Istid 7 - Februar Bad Boys 3 Batman Begins agains - Mars Knerten 2 -------------- Det skal fungere på samme måte som på denne siden: http://www.imdb.com/nowplaying/2009/12/ Siden min ser slik ut nå: http://www.ventrec.org/trailere/ Det hadde vært fint hvis noen her kunne hjulpet meg i riktig retning! Lenke til kommentar
BlueEAGLE Skrevet 23. november 2009 Del Skrevet 23. november 2009 ...og hva var problemet? Lenke til kommentar
ventrec Skrevet 23. november 2009 Forfatter Del Skrevet 23. november 2009 Problemet er at jeg ikke forstår hvordan jeg skal få til å liste ut filmene på den måten jeg ønsker. Jeg forstår ikke hvilken metode jeg må bruke for å få dette til. Lenke til kommentar
JohndoeMAKT Skrevet 23. november 2009 Del Skrevet 23. november 2009 SELECT id, title, DATE_FORMAT(premieredate, '%Y-%m') AS premieredate FROM movies GROUP BY premieredate ORDER BY premieredate ASC; For datoen er vel et dato-datafelt og ikke et string/tallfelt med UNIX-time? Huh? Lenke til kommentar
ventrec Skrevet 23. november 2009 Forfatter Del Skrevet 23. november 2009 Det er nok unix-time ja. Bruker mktime() for å gjøre datoen om til unix-time og lagrer den i et stringfelt! Lenke til kommentar
Alex Moran Skrevet 23. november 2009 Del Skrevet 23. november 2009 Hvorfor bruker ikke folk DATE/TIME-feltene for det er verdt? Og når man først skal lagre en UNIX-time, hvorfor havner det da i et stringfelt? Det er vel en tall? Lenke til kommentar
ventrec Skrevet 23. november 2009 Forfatter Del Skrevet 23. november 2009 Jeg er vant til å bruke unix-time, derfor benytter jeg meg av den. Dataen burde selvfølgelig vært lagret i et int-felt, men jeg slet med å få det til ettersom jeg programmerer via en pluging til wordpress kalt pods. Lenke til kommentar
JohndoeMAKT Skrevet 23. november 2009 Del Skrevet 23. november 2009 (endret) Det er nok unix-time ja. Bruker mktime() for å gjøre datoen om til unix-time og lagrer den i et stringfelt! Repent! Med det mener jeg: Bytt til date eller date_time med en gang. Datofunksjonene i MySQL er kraftige og noe du klart trenger med mindre du vil stadig tømme databasen og gjøre kjedelige itereringer i PHP. Skulle jeg ha gjort det du gjør hadde jeg forresten brukt UNIX_TIMESTAMP som er en av de mange dato-funksjonene i MySQL. Men du må være forsiktig med funksjonsbruken MTP. index-bruk. http://dev.mysql.com/doc/refman/5.1/en/dat...-functions.html Hvorfor bruker ikke folk DATE/TIME-feltene for det er verdt? Ukjent, men det virker som om det er den universelle første-idéen til nye PHP-programmerere. EDIT: Dersom du vil fortsette å bruke UNIX time kan du bruke FROM_UNIXTIME, men som jeg nevner, vær forsiktig med den til du har lært deg om indexer. Endret 23. november 2009 av JohndoeMAKT Lenke til kommentar
TheClown Skrevet 24. november 2009 Del Skrevet 24. november 2009 Dette er kindof en feilpost. Løsningene som har kommet så langt har vært SQL-metoder. Dersom du vil fikse dette gjennom PHP kjører du bare en if som spørr om mnden er den samme som i det foregående filmen. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå