13. december 2008 - 20:00
Der er
6 kommentarer og 1 løsning
Navn + Alder på ældste person
Jeg har en database med en række personer - et felt er fornavn (VARCHAR(50)) og et er f_dato (DATE). Jeg bruger MySQL og php og vil gerne have vist "Den ældste person er X som er X år." Jeg har prøvet med en masse forskellige forespørgelser, men kan højst få vist alderen på den ældste person - ikke navnet. Mit gæt er noget i denne stil, men som sagt kan jeg ikke finde noget der virker. $query18 = "SELECT fornavn, FLOOR((TO_DAYS(NOW())-TO_DAYS(f_dato))/365.25) AS alder FROM telefonliste WHERE alder = MAX(alder)"; $result18 = mysql_db_query($database, $query18, $connection); while($data = mysql_fetch_array($result18)) { $navn = $data['fornavn']; $max_alder = $data['alder']; } Jeg henter $navn og $max_alder længere nede. Dette stykke: FLOOR((TO_DAYS(NOW())-TO_DAYS(f_dato))/365.25) Har jeg brugt flere andre steder, og det virker fint - giver mig personens alder. Jeg har også forsøgt noget med MIN(f_dato), uden held.
Annonceindlæg fra Infor
13. december 2008 - 20:23
#1
? Kan du ikke SELECT fornavn, MIN(f_dato) FROM tabel ORDER BY f_dato ASC LIMIT o,1
13. december 2008 - 20:24
#2
0,1 og o,1 :O)
13. december 2008 - 20:53
#3
Det ville jo ikke vise alderen, men datoen? Og hvorfor limit? der er jo kun én tidligste dato.
13. december 2008 - 20:59
#4
he, ja ( limit ) Men du burde kunne hente fornavn og f_dato uden problemer. Bruger selv. flg. til at udregne alder i en query: (YEAR(CURDATE())-YEAR(birth))-(RIGHT(CURDATE(), 5)< RIGHT(birth, 5)) as `alder`
13. december 2008 - 21:28
#5
hmm, Der er jo ingen grund til at bruge MAX eller MIN $sql = "SELECT `fornavn`, (YEAR(CURDATE())-YEAR(`f_dato`))-(RIGHT(CURDATE(), 5)< RIGHT(`f_dato`, 5)) as `alder` FROM `tester` ORDER BY `f_dato` ASC LIMIT 0,1";
13. december 2008 - 22:56
#6
Det virkede sørme! Mange tak. Læg et svar, så du kan få point.
14. december 2008 - 07:53
#7
ok
Computerworld tilbyder specialiserede kurser i database-management