Avatar billede ye10 Nybegynder
03. november 2004 - 17:35 Der er 5 kommentarer og
1 løsning

Hvordan får man en liste over de navne hvor en alder er højest?

Jeg har en database der hedder:
Navn - Alder
Jan 30
Morten 30
Thomas 20
Susanne 10

Navne og Alder ændre sig tit, hvordan kan man få en liste over de navne hvor alderen er højest?

Så oven over ville jeg få
Jan/Morten

Men hvis den hed:
Jan 10
Morten 10
Thomas 20
Susanne 20

Ville jeg få Thomas/Susanne.

I øjeblikket bruger jeg dette:

$foresp = mysql_query("SELECT * FROM database ORDER BY `alder` DESC");
while($data = mysql_fetch_array($foresp)){
$alder[] = $data[alder]
$folk[] = $data[navn]
}

if($folk[0] == $folk[1]){
// Der er flere med samme alder og den laver så et nyt query hvor den henter navnene på alle med alderen $alder[0]
} else {
// Der er kun 1 med den højeste alder og det er folk[0]
}

Nogen der kender en nemmere måde?
Avatar billede arne_v Ekspert
03. november 2004 - 19:42 #1
Hvis du er på version 4.1.x burde du kunne:

SELECT * FROM database WHERE alder = (SELECT MAX(alder) FROM database)
Avatar billede arne_v Ekspert
03. november 2004 - 19:43 #2
I ældre versioner er det enten 2 queries:

SELECT MAX(alder) FROM database

og

SELECT * FROM database WHERE alder=X
Avatar billede arne_v Ekspert
03. november 2004 - 19:46 #3
Eller som du gør:

SELECT * FROM database ORDER BY alder DESC

men med en logik:

// udskriv navn[0]
$i = 1;
while($alder[$i] == $alder[$i]) {
  // udskriv navn[$i]
}
Avatar billede arne_v Ekspert
03. november 2004 - 19:46 #4
Jeg er ikke så skrap til PHP så måske er der fejl i PHP'en men logikken
burde fremgå.
Avatar billede arne_v Ekspert
03. november 2004 - 22:41 #5
OK ?
Avatar billede arne_v Ekspert
21. november 2004 - 20:34 #6
??
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester