Avatar billede nitz Nybegynder
09. august 2001 - 00:02 Der er 6 kommentarer og
1 løsning

En tælle funktion

Hej Alle,

Jeg vil lave en top ti over mest sete ting. Derfor har jeg lavet en database hvori der bliver tilføjet en ny record for hver gang en bruger klikker sig ind på en ting.

Mit problem er nu at hive tingene ud igen så de bliver vist som en Top 10...

Min database ser sådan ud:

id      titel
1      Denne ting
2      en anden ting
3      en tredie ting
4      Denne ting
5      en tredie ting

Det gíver så logisk nok en top 3 der ser sådan ud:

1. Denne ting
2. en tredie ting
3. en anden ting

MEN hvordan får jeg talt dem sammen og sat ud på siden?

hilsener

Tommy
Avatar billede slim_joe Nybegynder
09. august 2001 - 01:58 #1
Jeg tror det ville være nemmere hvis du ændrede databasen lidt.
Byg den i stedet således op:

Ting          Hits
Den 1. ting    15
Den 2. ting    28
Den 3. ting      9

Hver gang brugeren klikker sig ind på en ting, f.eks. \"Den 2. ting\" henter du tallet i \"Hits\" frem fra DB lægger 1 til og lægger det tilbage i DB.
\"Hits\" starter selvfølgelig på 0.

Top 10:
SELECT * FROM tabelnavn ORDER BY Hits DESC

Håber du kan bruge det :)
Avatar billede keysersoze Ekspert
09. august 2001 - 07:39 #2
helt enig med slim_joe - det er en dårlig måde at tælle antal hits på...

hvis ikke jeg husker galt så prøv istedet at kigge lidt på denne:

http://www.netcoders.dk/sources.asp?mode=view_source&tech_id=1&id=449
Avatar billede tmceu Praktikant
09. august 2001 - 08:42 #3
Som jeg fik at vide forleden, da jeg også forsøgte at få en bruger til at tælle anderledes, så kan der jo være en grund til at tælle som han gør. Hvis du bibeholder din nuv. struktur, kan du bruge nedenstående

select top 10 Titel, COUNT(Id) as Hits FROM [Tabel] GROUP BY Titel ORDER BY Hits DESC
Avatar billede nitz Nybegynder
09. august 2001 - 20:42 #4
Hej Tmceu,

Jeg har prøvet at paste din sætning ind, men får en fejl:

Microsoft OLE DB Provider for ODBC Drivers error \'80040e10\'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/testsiden.asp, line 244
.... jeg har selvfølgelig ændre [tabel] til tabelnavnet.

Kan du se hvad problemet skulle være?

- Tommy
Avatar billede tmceu Praktikant
09. august 2001 - 22:38 #5
Jeg har testet mit script på SQL Server og der kører det perfekt. Du kan prøve nedenstående:

1. I nogle databaser er ID et reserveret ord, så du kan prøve at erstatte COUNT(Id) med COUNT([Id])
2. Hvis du som tabel anvender en parameter query, prøv at fjerne parameteren eller køre den direkte på en tabel
Avatar billede nitz Nybegynder
15. august 2001 - 21:04 #6
Hej Undskyld den lange ventetid. TMCEU, tak for hjælpen :o)

hilsener

Tommy
Avatar billede tmceu Praktikant
15. august 2001 - 23:07 #7
Det var så lidt :-)
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
Kurser inden for grundlæggende programmering

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