Avatar billede dsb Nybegynder
21. august 2002 - 15:44 Der er 7 kommentarer og
1 løsning

$tandborste[farve][antal]

Okey lad os nu sige jeg havde en database over tandbørster :)
den kunne en del se sådan her ud:

tandborste_farve
----------------
----------------
rød
----------------
blå
----------------
blå
----------------
gul
----------------
blå
----------------
grøn
----------------
rød
----------------

Hvis jeg så ville have et output på skærmen som så sådan her ud:

Tanbørster:
-----------
blå: 3
rød: 2
gul: 1
grøn: 1

Hvordan gør jeg så ?

Jeg kan næsten regne ud at den optimale løsning ligger i at have et array i flere dimensioner. altså:

$tandborste[farve][antal]

og så fyre det ind i lykken, hvor jeg laver alle mine database udtræk, men hvordan alves det ?
Eller findes der en bedre måde at lave det på ?
Avatar billede jakoba Nybegynder
21. august 2002 - 16:03 #1
jeg regner med din database kører SQL

$sqlkommando = "
  SELECT farve, count(*) as antal
  GROUP BY farve ";

den hiver så rækker ud med to felter, hvor feltet antal er antallet af tandbørster med den farve.

mvh JakobA
Avatar billede jakoba Nybegynder
21. august 2002 - 16:04 #2
Hvis der skal sorteres så dem der er flest af står først bruger du ORDER BY til at sortere:

$sqlkommando = "
  SELECT farve, count(*) as antal
  GROUP BY farve
  ORDER BY antal DESC ";
Avatar billede jakoba Nybegynder
21. august 2002 - 16:06 #3
Ups. og jeg glemte at fortælle hvilken tabel data skal hentes fra (med FROM)

$sqlkommando = "
  SELECT farve, count(*) as antal
  FROM navnpaadintabel
  GROUP BY farve
  ORDER BY antal DESC ";
Avatar billede dsb Nybegynder
21. august 2002 - 16:09 #4
ahh... :)

jeg har tit set at den der 'count(*)' bliver brugt i andre script, men aldrig gider sætte mig ordenligt ind i SQL, så jeg er aldrig kommet videre end INSERT, SELECT, DELETE og UPDATE.

men nu ved jeg det :)

kan du også lægge et svar ?
Avatar billede dsb Nybegynder
21. august 2002 - 17:31 #5
hmmm.....nu når jeg har kigget det lidt mere igennem melder problemmerne sig :(
jeg må indrømme jeg er ikke er helt med på hvad 'antal' er.

og kræver det at jeg laver en ny kollone ?
ind til videre har jeg kun en enkelt, som indeholder farverne. (den som er tegnet)
Avatar billede jakoba Nybegynder
21. august 2002 - 18:13 #6
'antal' er et aliss der omdøber den værdi og giver den et navn som du så kan bruge bagefter for at henvise til den.
De behandler 'antal' somom det er en kolonne, men der er ikke spor brug for at der skal være en kolonne der hedder 'antal' i din tabel. kolonnen bliver skabt af sql idet kommandoen udføres.

mvh JakobA
Avatar billede jakoba Nybegynder
21. august 2002 - 18:13 #7
Ups.  aliss  ->  alias
Avatar billede dsb Nybegynder
21. august 2002 - 18:32 #8
ahhh...now i get it :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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