/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Hjælp Søges
Fra : Jesper Davidsen


Dato : 18-05-03 21:27

Jeg har lavet en simpel topscorerliste for en fodboldklub ud fra en access
database. Jeg har en enkelt tabel med navne og antal scoringer.

Nu vil jeg så gerne lave listen en smule mere rafineret. Jeg vil gerne
tilføje noget grafik der indikerer om den enkelte spiller er på vej op eller
ned af listen. (som på en musik hitliste).

Jeg forestiller mig noget med, at jeg i min tabel tilføjer en kolonne for
hver spillerunde og noterer scoringerne i de respektive for hver spiller.
Jeg vil således kunne summere det samlede antal scoringer frem til den
aktuelle spillerunde og sammen ligne med den foregående, og der ud fra vælge
min grafik.

Mit problem er så bare at det eneste jeg ved om asp/access er hvad jeg har
læst mig til på html.dk, og jeg syntes ikke helt det rækker her.

Er det nogen der har et forslag til hvordan det kan lade sig gøre?





 
 
Henrik (19-05-2003)
Kommentar
Fra : Henrik


Dato : 19-05-03 20:35

> Jeg har lavet en simpel topscorerliste for en fodboldklub ud fra en access
> database. Jeg har en enkelt tabel med navne og antal scoringer.
>
> Nu vil jeg så gerne lave listen en smule mere rafineret. Jeg vil gerne
> tilføje noget grafik der indikerer om den enkelte spiller er på vej op
eller
> ned af listen. (som på en musik hitliste).

Den simple (men sikkert ikke mest elegante) løsning er at have en tabel med
følgende oplysninger:

Spiller
Runde
Mål
Totalmål
Placering

Efter hver runde registrerer du naturligvis de scorede mål og derefter
opdater du "Totalmål", hvilket nok gøres lettest med en forespørgsel. Du kan
nu lave et recordset som looper igennem hver runde og er sorteret på
"Totalmål Desc". Med en tæller kan du så opdatere placeringen.

Giver dette nogen mening? Ellers skriv igen

/Henrik



Torben Brandt (19-05-2003)
Kommentar
Fra : Torben Brandt


Dato : 19-05-03 20:50

Henrik wrote:
>>Jeg har lavet en simpel topscorerliste for en fodboldklub ud fra en access
>>database. Jeg har en enkelt tabel med navne og antal scoringer.
>>
>>Nu vil jeg så gerne lave listen en smule mere rafineret. Jeg vil gerne
>>tilføje noget grafik der indikerer om den enkelte spiller er på vej op
> eller ned af listen. (som på en musik hitliste).
>
> Den simple (men sikkert ikke mest elegante) løsning er at have en tabel med
> følgende oplysninger:
>
> Spiller
> Runde
> Mål
> Totalmål
> Placering
>
> Efter hver runde registrerer du naturligvis de scorede mål og derefter
> opdater du "Totalmål", hvilket nok gøres lettest med en forespørgsel. Du kan
> nu lave et recordset som looper igennem hver runde og er sorteret på
> "Totalmål Desc". Med en tæller kan du så opdatere placeringen.

Som udgangspunkt er jeg enig, men jeg synes ikke så godt om
total-felterne (totalmål og placering) de vil kunne findes total ud fra
posterne i databasen. Jeg mener "kun" der skal være to felter: spiller
og runde.
Så skal der tilføjes en post i databasen for hvert scoret mål.

Jeg vil umiddelbart tro at man kan lave de relevante opgørelser ud fra
dette, og så er der ikke så meget vedligeholdelsesarbejde efter hver
runde. Skriv, hvis jeg (eller en anden) skal give nogle eksempler på
udtræk af statistikker...

mvh Torben


Henrik (19-05-2003)
Kommentar
Fra : Henrik


Dato : 19-05-03 21:14


"Torben Brandt" <name@domain.invalid> wrote in message
news:3EC9356B.6090603@domain.invalid...
Henrik wrote:
>>Jeg har lavet en simpel topscorerliste for en fodboldklub ud fra en access
>>database. Jeg har en enkelt tabel med navne og antal scoringer.
>>
>>Nu vil jeg så gerne lave listen en smule mere rafineret. Jeg vil gerne
>>tilføje noget grafik der indikerer om den enkelte spiller er på vej op
> eller ned af listen. (som på en musik hitliste).
>
> Den simple (men sikkert ikke mest elegante) løsning er at have en tabel
med
> følgende oplysninger:
>
> Spiller
> Runde
> Mål
> Totalmål
> Placering
>
> Efter hver runde registrerer du naturligvis de scorede mål og derefter
> opdater du "Totalmål", hvilket nok gøres lettest med en forespørgsel. Du
kan
> nu lave et recordset som looper igennem hver runde og er sorteret på
> "Totalmål Desc". Med en tæller kan du så opdatere placeringen.

Som udgangspunkt er jeg enig, men jeg synes ikke så godt om
total-felterne (totalmål og placering) de vil kunne findes total ud fra
posterne i databasen. Jeg mener "kun" der skal være to felter: spiller
og runde.
Så skal der tilføjes en post i databasen for hvert scoret mål.

Jeg vil umiddelbart tro at man kan lave de relevante opgørelser ud fra
dette, og så er der ikke så meget vedligeholdelsesarbejde efter hver
runde. Skriv, hvis jeg (eller en anden) skal give nogle eksempler på
udtræk af statistikker...

mvh Torben


Jeg er ganske enig med dig i, at det vil være redundante oplysninger at have
liggende, men på den anden side vil det gøre dit liv lettere (eller i det
mindste mit, hvis det var mig der skulle lave det

Du kan naturligvis godt lave et view (en forespørgsel), som giver dig de
relevante oplysninger, men så skal du jo beregne skidtet hver gang du skal
levere oplysningerne. Er det sådan en forespørgsel du gerne vil have hjælp
til? Det er ikke helt ukompliceret når du skal have placeringen med. Faktisk
har jeg svært ved lige at se hvordan det skal kunne lade sig gøre uden et
recordset...

/Henrik



Torben Brandt (19-05-2003)
Kommentar
Fra : Torben Brandt


Dato : 19-05-03 21:35

Henrik wrote:
> Jeg er ganske enig med dig i, at det vil være redundante oplysninger at have
> liggende, men på den anden side vil det gøre dit liv lettere (eller i det
> mindste mit, hvis det var mig der skulle lave det

Jeg kan ikke komme i tanke om et eksempel, hvor det er en fordel at have
redundante oplysninger i databasen (når vi ikke snakker et projekt, der
er større end dette). Og jeg vil hævde at alle relevante statistikker
kan laves hurtigt nok til at dét ikke er problemet.

> Du kan naturligvis godt lave et view (en forespørgsel), som giver dig de
> relevante oplysninger, men så skal du jo beregne skidtet hver gang du skal
> levere oplysningerne. Er det sådan en forespørgsel du gerne vil have hjælp
> til? Det er ikke helt ukompliceret når du skal have placeringen med. Faktisk
> har jeg svært ved lige at se hvordan det skal kunne lade sig gøre uden et
> recordset...

Prøv at se et eksempel, jeg har skrevet for lidt tid siden. Det
omhandler godt nok udtræk af tilfældige poster, men undervejs opnår man
en "placering"-variabel (kaldet mindre).
<URL:http://actuar.dk/torben/show.asp?id=randomrecords>

Det problem, jeg ser i dit eksempel, er, at hvis placeringen skal med,
så skal alle spillere, der har scoret opdateres hver runde, men i mit
setup skal kun nye mål lægges ind.
Det arbejde der ligger i at skulle lave lidt mere komplicerede udtræk
synes jeg klart opvejes at opdateringsbesværligheder. Så er der også håb
om hyppige opdateringer.

--
mvh Torben
Der netop i dag har skrevet at man sjældent bruger JOINs hvis man kun
har én tabel, og så giver et eksempel, hvor man gør - tsk tsk


Henrik (20-05-2003)
Kommentar
Fra : Henrik


Dato : 20-05-03 12:00

Prøv at se et eksempel, jeg har skrevet for lidt tid siden. Det
omhandler godt nok udtræk af tilfældige poster, men undervejs opnår man
en "placering"-variabel (kaldet mindre).
<URL:http://actuar.dk/torben/show.asp?id=randomrecords>

Det problem, jeg ser i dit eksempel, er, at hvis placeringen skal med,
så skal alle spillere, der har scoret opdateres hver runde, men i mit
setup skal kun nye mål lægges ind.
Det arbejde der ligger i at skulle lave lidt mere komplicerede udtræk
synes jeg klart opvejes at opdateringsbesværligheder. Så er der også håb
om hyppige opdateringer.

Hej Torben,

det da bestemt meget fikst men heller ikke specielt enkelt for en begynder,
som jeg havde indtryk af det var der lavede den første tråd. Det er vel et
holdningsspørgsmål om man vil prioritere opdatering eller udtræk højest.
Spørgsmålet er vel primært forholdet mellem nye data og udtræk af
eksisterende. Hvis man nu forestiller sig det meget sandsynlige
scenarie, at der er tale om en total topscorerliste for alverdens ligaer og
lad os bare sige 1000 samtidige brugere som spørger på data, vil jeg ikke
være ret meget i tvivl om hvilken metode der er hurtigst.

Opdateringsbesværlighederne ser jeg da i øvrigt ikke som voldsomme. Er der
noget du specielt tænker på? For at føje lidt til din argumentation vil jeg
da lige sige, at også ikke scorende spillere skal opdateres hver runde i mit
eksempel

/Henrik



--
mvh Torben
Der netop i dag har skrevet at man sjældent bruger JOINs hvis man kun
har én tabel, og så giver et eksempel, hvor man gør - tsk tsk




Torben Brandt (20-05-2003)
Kommentar
Fra : Torben Brandt


Dato : 20-05-03 14:23

Henrik wrote:
> Prøv at se et eksempel, jeg har skrevet for lidt tid siden. Det
> omhandler godt nok udtræk af tilfældige poster, men undervejs opnår man
> en "placering"-variabel (kaldet mindre).
> <URL:http://actuar.dk/torben/show.asp?id=randomrecords>
>
> Det problem, jeg ser i dit eksempel, er, at hvis placeringen skal med,
> så skal alle spillere, der har scoret opdateres hver runde, men i mit
> setup skal kun nye mål lægges ind.
> Det arbejde der ligger i at skulle lave lidt mere komplicerede udtræk
> synes jeg klart opvejes at opdateringsbesværligheder. Så er der også håb
> om hyppige opdateringer.
>
> Hej Torben,
>
> det da bestemt meget fikst men heller ikke specielt enkelt for en begynder,
> som jeg havde indtryk af det var der lavede den første tråd. Det er vel et
> holdningsspørgsmål om man vil prioritere opdatering eller udtræk højest.
> Spørgsmålet er vel primært forholdet mellem nye data og udtræk af
> eksisterende. Hvis man nu forestiller sig det meget sandsynlige
> scenarie, at der er tale om en total topscorerliste for alverdens ligaer og
> lad os bare sige 1000 samtidige brugere som spørger på data, vil jeg ikke
> være ret meget i tvivl om hvilken metode der er hurtigst.
>
> Opdateringsbesværlighederne ser jeg da i øvrigt ikke som voldsomme. Er der
> noget du specielt tænker på? For at føje lidt til din argumentation vil jeg
> da lige sige, at også ikke scorende spillere skal opdateres hver runde i mit
> eksempel

Nå ja, det var vist også en smutter; jeg mente _alle_ spillere. Godt du
selv kan se det

Jeg mente heller ikke, at det var simpelt at sætte placering på, men
argumentet var bare, at alt kunne lade sig gøre med min opbygning.
For en nybegynder (og andre) ville man vel også først sætte placering
på, når man udskrev listen. Det er meget nemmere at have en
tæller-variabel i VBS'en.

Hvad angår udtræk over topscorere, så tror jeg SQL'en er lige nem i
begge tilfælde - dog skal jeg lige summere over en GROUP BY.
Min løsning vil dog også på simpel måde kunne udtrække målscorere fra
'sidste runde', 'denne halvsæson' og andre perioder.

Det Jesper selv bringer på bane i første indlæg er, at han gerne vil
kunne vise om spilleren er på vej op eller ned af listen. Her ville en
nybegynder formentlig udtrække topscorene for denne runde og sidste
runde, og så for hver spiller på listen fra denne runde finde tidligere
placering i sidste runde.
Jeg ville også lave to udtræk over topscorerene i denne og sidste runde
og derefter finde tidligere placering. Når jeg skal til at lede efter
sidste rundes placering, så kan jeg jo bare have en tæller i VBS, der
giver placeringen.
Alternativt, for den lidt mere erfarne bruger, kunne man i dit eksempel
joine de to udtræk, så der kun var et, men i mit setup, vil man også
kunne nøjes med et udtræk - dog mere kompliceret.

Jeg indrømmer, at ved udskrift er mit mere kompliceret, men i modsætning
til mit setup, hvor opdatering er simpelt, så vil dit være mere
kompliceret. Som oftest vil du først skulle udtrække alle målscorere,
dernæst indsætte en række for hver spiller med den nye målscore. Så skal
du lave et udtræk over denne runde ordnet efter totalscoren, og opdatere
placeringsfeltet i databasen. Dette er efter min mening unødigt tungt.
Endnu tungere bliver det, hvis der kan være udsatte kampe, hvor man så
skal tilbage og rette i data for den runde og _alle_ senere runder.
Denne gennemtænkning vil heller ikke være helt triviel for en nybegynder...

Der er altså både fordele og ulemper ved begge måder - læseren må selv
bedømme (eller kommentere :) )
/Torben


Jesper Davidsen (20-05-2003)
Kommentar
Fra : Jesper Davidsen


Dato : 20-05-03 15:17


>"Torben Brandt" <name@domain.invalid> skrev i en meddelelse
news:3EC9356B.6090603@domain.invalid...

>
>Som udgangspunkt er jeg enig, men jeg synes ikke så godt om
>total-felterne (totalmål og placering) de vil kunne findes total ud fra
>posterne i databasen. Jeg mener "kun" der skal være to felter: spiller
>og runde.
>Så skal der tilføjes en post i databasen for hvert scoret mål.

Jeg vil lige være helt sikker på at jeg er med her... Jeg skal lave et felt
med spillernavn, og et for HVER spillerunde ikke?

Mit problem er nu helt konkret: Hvordan lægger jeg scoringerne fra hver
spillerunde sammen og hvordan får jeg dem sorteret?

Til orientering er jeg så meget nybegynder at den eneste måde jeg kan
sortere på er med:

strSQL = "Select * From enellerandetabel Order By etellerandet"

Så er mit problem jo at jeg ikke har et felt i min database der indeholder
det samlede antal scoringer og jeg derfor ikke kan sorterer

Jeg bliver nok nødt til at have den engang til langsomt....



Torben Brandt (21-05-2003)
Kommentar
Fra : Torben Brandt


Dato : 21-05-03 20:40

Jesper Davidsen wrote:
>>"Torben Brandt" <name@domain.invalid> skrev i en meddelelse
> news:3EC9356B.6090603@domain.invalid...
>
>>Som udgangspunkt er jeg enig, men jeg synes ikke så godt om
>>total-felterne (totalmål og placering) de vil kunne findes total ud fra
>>posterne i databasen. Jeg mener "kun" der skal være to felter: spiller
>>og runde.
>>Så skal der tilføjes en post i databasen for hvert scoret mål.
>
>
> Jeg vil lige være helt sikker på at jeg er med her... Jeg skal lave et felt
> med spillernavn, og et for HVER spillerunde ikke?
>
> Mit problem er nu helt konkret: Hvordan lægger jeg scoringerne fra hver
> spillerunde sammen og hvordan får jeg dem sorteret?

Som du nok har læst i tråden, så er jeg ikke helt enig med Henrik i,
hvordan man bør gøre, men her er en guide til "mit forslag":

Du skal lave en tabel, Scoringer, som kun har 2 felter; navn og runde.
Navn skal være et tekstfelt, mens runde skal være et talfelt.
Hver gang, der er scoret et mål, så skal du indsætte en post i databasen
med spillerens navn og rundens nummer. Har en spiller scoret flere mål,
skal der indsættes flere poster for den enkelte spiller.
Din SQL-streng kunne typisk se således ud:
INSERT INTO Scoringer (navn, runde) VALUES ('Jens', 7)
Her har Jens scoret et mål i 7. spillerunde.
[Læg mærke til at der skal plinger (') rundt om værdier for tekstfeltet,
men ikke talfeltet]

Når du så skal lave din topscoreliste, så skal du have optalt, hvor
mange gange en spiller står i databasen. Læg mærke til at der er præcis
én post pr scoring. Her kunne man gøre således:
SELECT navn, COUNT(*) AS totalScore FROM Scoringer
GROUP BY Navn ORDER BY COUNT(*)
Her sker tre ting:
1) Vi grupperer efter spillerens navn (GROUP BY-delen)
2) Vi optæller hvor mange gange spilleren står der (COUNT(*)-delen)
3) Vi sorterer efter optællingen (ORDER BY-delen)
totalScore-feltet kan tilgås i ASP med rs("totalScore").
Du kan læse mere om det her:
<URL:http://www.w3schools.com/sql/default.asp>

Prøv at se om ikke du kan få denne del til at fungerer. Du skriver i dit
første indlæg, at du gerne vil vise om man er på vej ned eller op ad
listen. Denne del kan være lidt besværlig i mit setup, men når du får
den første del til at virke, så kan du altid spørge igen. Det er nemmest
hvis du lige har fået en føling med fremgangsmåden.

mvh Torben


Jesper Davidsen (20-05-2003)
Kommentar
Fra : Jesper Davidsen


Dato : 20-05-03 22:03



"Henrik" <sorry@noemail.dk> skrev i en meddelelse
news:<3ec931e1$0$76159$edfadb0f@dread11.news.tele.dk>...

>

> Efter hver runde registrerer du naturligvis de scorede mål og derefter

> opdater du "Totalmål", hvilket nok gøres lettest med en forespørgsel.

Opdatere med en forespørgsel? Er det noget jeg skal gøre i access databasen
eller i asp dokumentet? Beklager men jeg skal lige have alle begreber på
plads.

> Du kan nu lave et recordset som looper igennem hver runde og er

> sorteret på "Totalmål Desc". Med en tæller kan du så opdatere

> placeringen.

>

Hvad mener du med et recordset som looper igennem hvar runde?

> Giver dette nogen mening? Ellers skriv igen

>

Desværre ikke helt endnu, men det er vist i den her ende den er gal




Søg
Reklame
Statistik
Spørgsmål : 177551
Tips : 31968
Nyheder : 719565
Indlæg : 6408828
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste