oysteii Skrevet 4. oktober 2007 Del Skrevet 4. oktober 2007 (endret) jeg har en tabell med personer og blant annet deres fødselsdato (date) jeg vil vise de med bursdag de nærmeste x antall dagene og bruker en slik spørring: blablabla Where fdato LIKE '____-01-20', fdato LIKE '____-01-21', osv.... Er det mulig å få result settet til å bli sortert slik at de matcher rekkefølgen i where-clausulen? (order by fdato blir ikke riktig siden ikke alle er født samme år) Eller må jeg fikse dette i etterkant i php? Endret 6. oktober 2007 av oysteii Lenke til kommentar
endrebjo Skrevet 4. oktober 2007 Del Skrevet 4. oktober 2007 (endret) SELECT * FROM tabell WHERE DAYOFYEAR(fdato) >= DAYOFYEAR(NOW()) AND DAYOFYEAR(fdato) < DAYOFYEAR(NOW()) + 10 ORDER BY DAYOFYEAR(fdato); Tar alle bursdager 10 dager frem i tid. Hmm... Den kommer til bugge når du nærmer deg årsskiftet. Endret 4. oktober 2007 av endrebjorsvik Lenke til kommentar
Patience Skrevet 5. oktober 2007 Del Skrevet 5. oktober 2007 Emnetittelen i denne tråden er lite beskrivende for trådens innhold og det er derfor ingen god emnetittel. Jo bedre og mer beskrivende emnetittelen er, jo lettere er det for andre å skjønne trådens innhold og det vil være lettere å treffe den riktige forumbrukeren med det rette svaret. Ber deg derfor om å endre emnetittel slik at du unngår at en moderator stenger tråden. Vennligst forsøk å tenk på dette neste gang du starter en tråd, og orienter deg om hva vår nettikette sier om dårlig bruk av emnetitler. Bruk -knappen i første post for å endre emnetittelen. Tråden bryter også med tre-ords-regelen. (Dette innlegget vil bli fjernet ved endring av emnetittel. Ikke kommenter dette innlegget, men ta gjerne og dette innlegget når tittelen er endret, så vil det bli fjernet.) Lenke til kommentar
oysteii Skrevet 6. oktober 2007 Forfatter Del Skrevet 6. oktober 2007 SELECT * FROM tabell WHERE DAYOFYEAR(fdato) >= DAYOFYEAR(NOW()) AND DAYOFYEAR(fdato) < DAYOFYEAR(NOW()) + 10 ORDER BY DAYOFYEAR(fdato); Tar alle bursdager 10 dager frem i tid. Hmm... Den kommer til bugge når du nærmer deg årsskiftet. 9634130[/snapback] Jepp, funker glimrende fram til årskiftet. Men jeg prøvde med +200 uten å få med noen fra neste år så det funker ikke helt nei Lenke til kommentar
oysteii Skrevet 7. oktober 2007 Forfatter Del Skrevet 7. oktober 2007 (endret) Jeg endte opp med denne koden $sortOrder = "ASC"; if(date('m', strtotime('now'))== 12) { $sortOrder = "DESC"; } $query = "SELECT fdato " . "From Medlem " . "WHERE ( YEAR(DATE_ADD(CURRENT_DATE, INTERVAL 14 DAY))- YEAR(fdato) ) " . "- ( RIGHT(DATE_ADD(CURRENT_DATE, INTERVAL 14 DAY),5) < RIGHT(fdato,5) ) " . "> " . "( YEAR(CURRENT_DATE) - YEAR(fdato) ) " . "- ( RIGHT(CURRENT_DATE,5) < RIGHT(fdato,5) ) " . "ORDER BY MONTH(fdato) " . $sortOrder . ", DAYOFMONTH(fdato)"; Men det måtte altså skrive litt php til for å ordne sorteringen rundt årsskiftet. Går det ann å fikse det uten php? Og er dette mer effektivt enn å bruke LIKE='____-xx-yy'? Endret 8. oktober 2007 av oysteii 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å