|
| MySQL / php - topscorerliste. Fra : Kenneth Brun Nielsen |
Dato : 06-05-02 12:05 |
|
Jeg sidder og overvejer hvordan jeg skal udarbejde en topscorerliste til
vores fodboldhjemmeside.
Jeg har alle spillere oprettet i en separat tabel, og alle målene oprettet i
en anden, hvor en af kolonnerne naturligvis er spillerID'en.
Jeg overvejer pt. to løsninger:
1) Finder samtlige målscorer ved et "..DISTINCT.."-databasekald til
måltabellen. Og derefter for samtlige målscorere findes antallet af
forekomster i måltabellen ved brug af "count(*)...".
2) Overfører samtlige data fra måltabellen til php-scriptet i een kommando,
og får talt antal scoringer af de enkelte spillere op vha. noget dynamisk
variabel-sjov.
Slutteligt sorteres efter antallet af scoringer..
Har folk nogle bedre forslag? Jeg er ikke så erfaren i SQL, men er der ikke
mulighed for at klare både optælling og sortering her på en smartere måde
end metoden i 1)?
Hvis der ikke er bedre forslag, er der så nogen der har en ide om hvilken af
de ovennævnte metoder, der er mest "økonomisk" i drift. Ex. giver den
øverste ret mange databasekald (er det et problem?). Til jeres info drejer
det sig om 10-15 målscorere...
På forhånd tak!
Kenneth
| |
Peter Lykkegaard (06-05-2002)
| Kommentar Fra : Peter Lykkegaard |
Dato : 06-05-02 12:33 |
|
"Kenneth Brun Nielsen" <kenneth@pbk.dk> wrote in message
news:ab5o4b$67v$1@eising.k-net.dk...
> Jeg sidder og overvejer hvordan jeg skal udarbejde en topscorerliste til
> vores fodboldhjemmeside.
>
> Jeg har alle spillere oprettet i en separat tabel, og alle målene oprettet
i
> en anden, hvor en af kolonnerne naturligvis er spillerID'en.
>
> Jeg overvejer pt. to løsninger:
>
> 1) Finder samtlige målscorer ved et "..DISTINCT.."-databasekald til
> måltabellen. Og derefter for samtlige målscorere findes antallet af
> forekomster i måltabellen ved brug af "count(*)...".
>
Prøv at kikke lidt på GROUP BY i din foretrukne SQL dokumentation
mvh/Peter Lykkegaard
| |
Kenneth Brun Nielsen (06-05-2002)
| Kommentar Fra : Kenneth Brun Nielsen |
Dato : 06-05-02 13:22 |
|
"Peter Lykkegaard" <polonline@hotmail.com> skrev i en meddelelse
news:3cd669c1$0$11941$edfadb0f@dspool01.news.tele.dk...
>
> "Kenneth Brun Nielsen" <kenneth@pbk.dk> wrote in message
> news:ab5o4b$67v$1@eising.k-net.dk...
> > Jeg sidder og overvejer hvordan jeg skal udarbejde en topscorerliste til
> > vores fodboldhjemmeside.
> >
> > Jeg har alle spillere oprettet i en separat tabel, og alle målene
oprettet
> i
> > en anden, hvor en af kolonnerne naturligvis er spillerID'en.
> >
> > Jeg overvejer pt. to løsninger:
> >
> > 1) Finder samtlige målscorer ved et "..DISTINCT.."-databasekald til
> > måltabellen. Og derefter for samtlige målscorere findes antallet af
> > forekomster i måltabellen ved brug af "count(*)...".
> >
> Prøv at kikke lidt på GROUP BY i din foretrukne SQL dokumentation
>
God ide! Tak for det. Flg. sql-sætning opfylder mine behov:
"select spillere.navn, mål.spillerID, count(*) as scoringer from mål,
spillere where spillere.id=mål.spillerID group by mål.spillerID order by
scoringer desc"
Kenneth
| |
-Martin- (06-05-2002)
| Kommentar Fra : -Martin- |
Dato : 06-05-02 13:44 |
|
On Mon, 6 May 2002 14:21:36 +0200, "Kenneth Brun Nielsen"
<kenneth@pbk.dk> wrote:
>
>"Peter Lykkegaard" <polonline@hotmail.com> skrev i en meddelelse
>news:3cd669c1$0$11941$edfadb0f@dspool01.news.tele.dk...
>>
>> "Kenneth Brun Nielsen" <kenneth@pbk.dk> wrote in message
>> news:ab5o4b$67v$1@eising.k-net.dk...
>> > Jeg sidder og overvejer hvordan jeg skal udarbejde en topscorerliste til
>> > vores fodboldhjemmeside.
>> >
>> > Jeg har alle spillere oprettet i en separat tabel, og alle målene
>oprettet
>> i
>> > en anden, hvor en af kolonnerne naturligvis er spillerID'en.
>> >
>> > Jeg overvejer pt. to løsninger:
>> >
>> > 1) Finder samtlige målscorer ved et "..DISTINCT.."-databasekald til
>> > måltabellen. Og derefter for samtlige målscorere findes antallet af
>> > forekomster i måltabellen ved brug af "count(*)...".
>> >
>> Prøv at kikke lidt på GROUP BY i din foretrukne SQL dokumentation
>>
>God ide! Tak for det. Flg. sql-sætning opfylder mine behov:
>"select spillere.navn, mål.spillerID, count(*) as scoringer from mål,
>spillere where spillere.id=mål.spillerID group by mål.spillerID order by
>scoringer desc"
Pas på med at bruge Å Æ Ø i dine kald kan MULIGVIS ikke altid virke :)
Så FROM mål as maal fx :)
Og for den egen skyld så sæt det op lidt ala
SELECT blabla, COUNT(*) FROM tabel WHERE blaa=blaa
Altså med mySQL's egne ord med stort.. er MEGET nemmere at overskue
hvis dit kald bliver STORT :)
| |
Kenneth Brun Nielsen (06-05-2002)
| Kommentar Fra : Kenneth Brun Nielsen |
Dato : 06-05-02 14:34 |
|
"-Martin-" <admin@DELETEnatten-i.dk> skrev i en meddelelse
news:jgucduc6t0e86ninldsg5lr43tssrq1vh1@4ax.com...
> Pas på med at bruge Å Æ Ø i dine kald kan MULIGVIS ikke altid virke :)
>
OK, men det virker i min situation...
> Så FROM mål as maal fx :)
>
> Og for den egen skyld så sæt det op lidt ala
>
> SELECT blabla, COUNT(*) FROM tabel WHERE blaa=blaa
>
> Altså med mySQL's egne ord med stort.. er MEGET nemmere at overskue
> hvis dit kald bliver STORT :)
Det vil jeg gøre fremover så - tak for rådet!
Greetings FROM kenneth
| |
|
|