Top system

Tags:    php

Jeg vil gerne have, at den viser de 8 der har flest programmer, men kan ikke få det til :S og er ved at brænde fast!
Fold kodeboks ind/udKode 


Jeg har en tabel for brugere som er her:
Fold kodeboks ind/udKode 


Så har jeg 3 forskellige os systemer. De tabeller er de samme men hedder bare programmer, programmer2, programmer3
Fold kodeboks ind/udKode 




5 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
kan du ikke bare lave en int-række i 'users'-tabellen der indeholder antallet af brugerens programmer?



saml programmer, programmer2 og programmer3 i den sql med union.
Join imod bruger tabellen.
Brug limit til at hente 8, og order by til at få dem sorteret.

Går ud fra at du bruger mysql.



Du burde nok lige normalisere dine database for at spare dig selv for meget spild tid.

I din bruger tabel, er dit username din primær nøgle... Det er fint nok, men den er ikke unik. Så du kan faktisk have 2+ personer der hedder det samme.
Hvis du vælger at lave et id til at identifisere dem, kan du også spare lidt plads i mange af dine tabeller (id'et bliver en int).

Eksempel på hvordan du ellers kan gøre det.:

Fold kodeboks ind/udKode 


Når du skal søge frem efter hvad en bruger har lavet af ting, sender du bare hans id rundt, og ikke hans brugernavn. Derudover er brugernavnet nu også unikt, så der er ikke der kan hedde det samme.

Når du så skal finde de 8 der har flest programmer, kan du gøre følgende:


Jeg indsætter lige lidt temp data:
Fold kodeboks ind/udKode 


Så laver jeg ellers min query. Den kan sagtens optimeres, da jeg bruger en group by. Den er som regel lidt langsom... Her er i al fald et eksempel:
Fold kodeboks ind/udKode 


udskriften bliver følgende: (igemme phpMyAdmin)
Fold kodeboks ind/udKode 


Håber at du kunne bruge det til noget.




hvad er ideen med den der tbl_sex? bare et nysgerrigt spørgsmål for kan ikke se hvad ideen er, du kunne vel ligeså godt bare i din kode definere et int værdi til hvert af de 3 mulige køn, så spare du besværet med at skulle hente det fra en tabel.



hvad er ideen med den der tbl_sex? bare et nysgerrigt spørgsmål for kan ikke se hvad ideen er, du kunne vel ligeså godt bare i din kode definere et int værdi til hvert af de 3 mulige køn, så spare du besværet med at skulle hente det fra en tabel.


sandt... det handler jo bare om hvor meget du vil normalisere dine tabeller..



t