Avatar billede dytti Novice
20. august 2006 - 16:08 Der er 11 kommentarer og
1 løsning

udvælge data (igen)

I et tidliger spørgsmål http://www.eksperten.dk/spm/724632
spurgte jeg hvordan man finder den største værdi.
Nu er spørgsmålet: hvordan finder jeg de 5 største værdier?

Næste spørgsmål går på at lægge flere værdier sammen.
I min db som hedder "konkurrence" har jeg en kolonne som hedder "navn" og en som hedder "afisk"
I "navn" er der f.eks: Ib - Bo - jørgen - kurt - Bo.
I "afisk" er der f.eks: 2 - 3 - 5 - 1 - 7 (antal af fisk)

Hvordan finder jeg den der sammenlagt har fanget flest fisk.
I dette tilfælde Bo som har 3+7=10

Jeg har prøvet den her, men det er åbenbart ikke rigtigt.
$query = mysql_query("SELECT  navn,  COUNT(*) FROM konkurrence GROUP BY afisk") or die(mysql_error());
Avatar billede arne_v Ekspert
20. august 2006 - 16:46 #1
prøv:

SELECT navn,SUM(afisk) FROM konkurrence GROUP BY navn ORDER BY SUM(afisk) DESC LIMIT 5
Avatar billede dytti Novice
20. august 2006 - 17:43 #2
så får jeg sådan en:
Invalid use of group function
Avatar billede arne_v Ekspert
20. august 2006 - 18:10 #3
hvad data type er afisk ?
Avatar billede dytti Novice
20. august 2006 - 18:27 #4
int
Avatar billede dytti Novice
20. august 2006 - 18:31 #5
har prøvet at ændre til varchar. hjælper ikke
Avatar billede arne_v Ekspert
20. august 2006 - 18:47 #6
int er fint
Avatar billede arne_v Ekspert
20. august 2006 - 18:47 #7
har du lavet den SQL præcis som jeg skrev ?
Avatar billede dytti Novice
20. august 2006 - 18:58 #8
Har fået fejlmeddelelsen væk på denne måde, men den lægger ikke "afisk" sammen.
Der skulle gerne stå: Bo Assens 10 - Men der står Bo Assens 7
$query = mysql_query("SELECT navn, afdel, afisk, SUM(afisk) AS sum_alias FROM konkurrence GROUP BY navn ORDER BY sum_alias DESC LIMIT 5") or die(mysql_error());
$afisk = mysql_fetch_assoc($query);

echo $afisk['navn'];
echo $afisk['afdel'];
echo $afisk['afisk'];
Avatar billede arne_v Ekspert
20. august 2006 - 19:03 #9
det er jo ikke afisk men sum_alias du vil udskrive
Avatar billede dytti Novice
22. august 2006 - 15:07 #10
Nu har jeg prøvet alt. Det virker stadig ikke.

Jeg kan bare ikke få det ti at lægge antallet af fisk sammen, som en given person har fanget.
Avatar billede dytti Novice
22. august 2006 - 15:15 #11
Det er måske lettere at gennemskue ved at se det hele.
Link til siden med indtastningformular: http://www.dytti.dk/konkurrence/fisk.php
Output på denne side: http://www.dytti.dk/konkurrence/fisk.php

Kode til det sammenlagt største antal fisk, som een peson har fanget:

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT navn, afisk, SUM(afisk) AS sum_alias FROM konkurrence GROUP BY navn ORDER BY sum_alias DESC LIMIT 4";
$sum_alias=mysql_query($query);

$num=mysql_numrows($sum_alias);

mysql_close();



$i=1;
while ($i < $num) {

$navn=mysql_result($sum_alias,$i,"navn");
$afisk=mysql_result($sum_alias,$i,"afisk");


echo "<b>$navn </b><br> $afisk<br><br><hr><br>";

$i++;
}


?>
Avatar billede dytti Novice
01. september 2006 - 10:52 #12
Det virker ikke, så jeg lukker ind til videre
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