Avatar billede sylvesternielsen Nybegynder
26. januar 2003 - 17:21 Der er 25 kommentarer og
1 løsning

Afstemningsscript...

Jeg har et galleri hvor det er muligt at stemme i forskellige kategorier...

Når man stemmer bliver det lagt ind i en anden database.
Mit spørgsmål er så hvordan jeg henter det billede som har højest gennemsnit i votes.

Den ene database hedder galleri og det andet hedder vote. Når man stemmer bliver id fra galleri gemt i vote.
Avatar billede bufferzone Praktikant
26. januar 2003 - 17:25 #1
Avatar billede sylvesternielsen Nybegynder
26. januar 2003 - 17:26 #2
Jeg er ikke så glad for et link... Vil gerne have et eksempel på noget kode som laver dette.
Avatar billede bufferzone Praktikant
26. januar 2003 - 17:28 #3
Avatar billede bufferzone Praktikant
26. januar 2003 - 17:28 #4
OK jeg går lige i tænkeboksen
Avatar billede sylvesternielsen Nybegynder
26. januar 2003 - 17:30 #5
Jeg har allerede et vote system og galleri... Skal KUN bruge den del som regner votes ud... Jeg ved bare ikke hvordan eller om man kan regne gennemsnittet ud i mysql..
Avatar billede jakoba Nybegynder
26. januar 2003 - 17:58 #6
$sql_kommando = "
    SELECT AVG(vote.stemme) as rang, galleri.*
    FROM vote, galleri
    WHERE vote.billedID = galleri.id
    GROUP BY galleri.id
    ORDER BY rang.desc
";

giver dig dem med flest stemmer først
Avatar billede jakoba Nybegynder
26. januar 2003 - 17:59 #7
Ups
    ORDER BY rang.desc
skal være
    ORDER BY rang desc
Avatar billede sylvesternielsen Nybegynder
26. januar 2003 - 18:00 #8
Det er jo ikke flest stemmer men med højest gennemsnit som skal udskrives..
Avatar billede jakoba Nybegynder
26. januar 2003 - 18:08 #9
det er også det den giver
    AVG(vote.stemme)
udregner gennemsnittet for hver gruppe stemmer med samme billedid
Avatar billede sylvesternielsen Nybegynder
26. januar 2003 - 18:10 #10
Det må du undskylde... Tester lige
Avatar billede jakoba Nybegynder
26. januar 2003 - 18:12 #11
ikke nødvendigt at undskylde. jeg sagde jo det andet :-)
Avatar billede sylvesternielsen Nybegynder
26. januar 2003 - 18:15 #12
Laver fejlen: Unknown table 'rang' in order clause
Avatar billede jakoba Nybegynder
26. januar 2003 - 18:18 #13
det kommer af at du har det der .-tegn efter rang. det skal væk.
Avatar billede sylvesternielsen Nybegynder
26. januar 2003 - 18:20 #14
Hvilket tegn????
Det står som du skrev med komma efter... Hvis jeg fjerner det laver det bare en fejl for hele linien.
Avatar billede sylvesternielsen Nybegynder
26. januar 2003 - 18:20 #15
sorry.. ikke hele linien, men alt efter "as rang"...
Avatar billede sylvesternielsen Nybegynder
26. januar 2003 - 18:26 #16
Fik den.. Der var et punktum til sidst i stedet for et mellemrum..

Skriver du svar jacob eller skal jeg beholde dem som sædvanligt? ;-)
Avatar billede jakoba Nybegynder
26. januar 2003 - 18:29 #17
det er nede i linien med ORDER BY der skal fjernes et punktum

$sql_kommando = "
    SELECT AVG(vote.stemme) as rang, galleri.*
    FROM vote, galleri
    WHERE vote.billedID = galleri.id
    GROUP BY galleri.id
    ORDER BY rang desc
";
Avatar billede jakoba Nybegynder
26. januar 2003 - 18:30 #18
gimme :-)
Avatar billede sylvesternielsen Nybegynder
26. januar 2003 - 18:31 #19
hehe.... Vil man have gratis pro da? *Gg*
Avatar billede jakoba Nybegynder
26. januar 2003 - 18:36 #20
nemlig :-))
Avatar billede sylvesternielsen Nybegynder
26. januar 2003 - 18:38 #21
Tænkte jeg jo nok siden du gerne ville have dem... Ligner ikke dig..
Avatar billede sylvesternielsen Nybegynder
26. januar 2003 - 18:38 #22
Kan du forklare den streng du skrev? Så kan jeg måske selv lave dem i fremtiden.
Avatar billede jakoba Nybegynder
26. januar 2003 - 18:54 #23
Som du kan se er den delt op i flere linier. på SQL-sprog er de hver deres 'clause'

Select-clause er der hvor man fortæller hvilke værdier man vil have fat i. som regel er det blot feltnavne man skriver en liste af:
    SELECT feltnavn1, feltnavn2, ...
her er det lidt mere kompliceret  AVG(vote.stemme) as rang  laver en udregning of definere et 'feltnavn' der ikke findes i tabellen, men som vi bagefter kan gruge til at pege på resultatet.  galleri.*  betyder: alle felterne i tabellen galleri.

From-clause fortæller hvilken tabel vi vil hente data fra, her er der to tabeller der skal hentes fra samtidig så tabelnavnene står som liste med komma imellem

Where-clause fortæller hvilke betingelser der skal være opfyldt i det vi henter, her bruges den kun til at fortælle hvordan de to tabeller skal kombineres sammen

Group-clause bruges til at komprimere det vi henter, hvis der var 100 stemmer på et billede ville vores where-clause give 100 rækker, men vi vil kun have en. 'Group by' definerer samtidig de grupper der udregnes gennemsnit på.

Order-clause fortæller hvilken rækkefølge vi vil have resultatrækkerne, de skal ordnes efter det 'pseudofelt' der hedder rang, og de skal arrangeres i faldende (DESCending) orden.

mvh JakobA
Avatar billede sylvesternielsen Nybegynder
26. januar 2003 - 18:56 #24
Så giver det hele mening.. Tak.. Er der et sted jeg kan se alle de kommandoer i SQL som fx AVG, MD5 osv?
Avatar billede jakoba Nybegynder
26. januar 2003 - 19:05 #25
Ja da, desværre er det ikke ligefrem nemt at læse: http://www.mysql.com/doc/
IDG har lavet et hæfte om SQL, det er nok det du får mest ud af i første omgang.
Avatar billede Slettet bruger
26. januar 2003 - 19:22 #26
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