Avatar billede unsafe Nybegynder
18. oktober 2005 - 18:30 Der er 13 kommentarer og
1 løsning

Angående: http://exp.dk/spm/656911

Kan jeg få lidt hjælp :-)?
Det haster, 8-)

http://exp.dk/spm/656911
Avatar billede mahler Nybegynder
18. oktober 2005 - 19:08 #1
Her er lidt skud...

Når den også viser pigerne, er det typisk dine JOINs den er gal med.

Hvorfor JOIN'er du i øvrigt user-tabellen mod  hon?

Burde du ikke kunne komme lidt nærmere med:

SELECT billed_id, sum(hons.stemme) as stemmer_total, u.brugernavn
FROM user u, hot_or_notStemme as hons
INNER JOIN hot_or_not AS hon ON hons.user_id = hon.user_id
WHERE u.kon='Dreng'AND hon.user_id=u.id
GROUP BY billed_id
ORDER BY StemmerTotal DESC
LIMIT 0, 20;
Avatar billede mahler Nybegynder
18. oktober 2005 - 19:10 #2
Umiddelbart ville jeg i øvrigt tro, at du kunne gøre tingene meget enklere ved at først beregne summerne - til en hon.totalStemmer eller sådan noget... og så søge alene i user og hon tabellen (uden joins, men via simpel relation) for at finde resultatet du vil vise.
Avatar billede unsafe Nybegynder
18. oktober 2005 - 20:17 #3
Med

$query = mysql_query("SELECT billed_id, sum(hons.stemme) as stemmer_total, u.brugernavn
FROM users u, hot_or_notStemme as hons
INNER JOIN hot_or_not AS hon ON hons.user_id = hon.user_id
WHERE u.kon='Dreng'AND hon.user_id=u.id
GROUP BY billed_id
ORDER BY StemmerTotal DESC
LIMIT 0, 20;") or die(mysql_error());

For jeg fejlen

Unknown column 'StemmerTotal' in 'order clause'
Avatar billede mahler Nybegynder
18. oktober 2005 - 20:48 #4
Enten skal du rette "stemmer_total" (i SELECT) til "StemmerTotal" eller også skal du rette "StemmerTotal" (i ORDER) til stemmer_total.
Avatar billede unsafe Nybegynder
18. oktober 2005 - 21:00 #5
Den viser stadig piger.
Avatar billede unsafe Nybegynder
18. oktober 2005 - 21:12 #6
Se her: http://www.unsafe.dk/ny/se.jpg

Den viser ikke dem der har højst rating øverst og den viser også piger.
Avatar billede mahler Nybegynder
18. oktober 2005 - 22:12 #7
Hvorfor er hot_or_not tabellen i øvrigt med i din SQL? bruger du den til noget?

Giver følgende et brugbart resultat:
SELECT billed_id, sum(stemme) as StemmerTotal, u.brugernavn
FROM user u, hot_or_notStemme hons
WHERE u.id=hons.user_id
AND u.kon='Dreng'
GROUP BY billed_id
ORDER BY StemmerTotal DESC
LIMIT 0, 20;
Avatar billede unsafe Nybegynder
18. oktober 2005 - 22:46 #8
Pigerne vises stadig, + det er ikke sorteret efter højst rating .. stadig :/
Avatar billede mahler Nybegynder
18. oktober 2005 - 22:48 #9
Du har checket at data i databasen er korrekte, ikke?
Avatar billede unsafe Nybegynder
18. oktober 2005 - 23:43 #10
Vil du se tabellerne users, hot_or_notStemme og hot_or_nor ?
Avatar billede unsafe Nybegynder
19. oktober 2005 - 00:02 #11
Har prøvet lidt selv
Det opdeler da i drenge og piger nu:

$query = mysql_query("SELECT
    hons.billed_id, Sum(stemme) AS StemmerTotal,
    hon.id,
    u.brugernavn
FROM

    hot_or_notStemme as hons

INNER JOIN

hot_or_not AS hon

ON hons.billed_id=hon.id

INNER JOIN
    users AS u
ON
    hon.user_id=u.id
WHERE
    u.kon='Pige'
GROUP BY hons.billed_id
ORDER BY StemmerTotal DESC
LIMIT 0, 20") or die(mysql_error());

Men den sortere ikke efter om hvilket billede der har den højeste scorre. :/
Hvad gør jeg forkert?
Avatar billede unsafe Nybegynder
19. oktober 2005 - 07:32 #12
Ændret sum til Avg og det virkede,

Tak for din hjælp, men da jeg selv kom op med svaret snupper jeg pointsne tilbage, bare mig der var for træt igår til at finde fejlen.
Avatar billede mahler Nybegynder
19. oktober 2005 - 08:59 #13
okay. Bare du ikke forventer man spilder til på at forsøge at hjælp dig en anden gang...
Avatar billede unsafe Nybegynder
19. oktober 2005 - 10:13 #14
Sorry, vil du have dine points?
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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