09. august 2001 - 00:02Der 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?
Skal virksomheder stå stærkere mod angreb og kunne udvikle sig, skal sikkerhed, drift og forretning tænkes sammen. Det er tanken bag Jysk IT’s ambition om at skabe en “sikker fremtid” for kunderne.
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
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
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
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.