Avatar billede dank Nybegynder
03. maj 2003 - 12:40 Der er 14 kommentarer og
2 løsninger

Tælle forkomster i MySQL

Hey.. Jeg har f.eks.

$result = mysql_query("SELECT * FROM users");

Hvordan tæller jeg sammenkomster af f.eks. email adresser

således at kan få en liste (evt i array) a'la

10 email@dk.dk
4 email2@dk.dk
5 email3@dk.dk
6 email4@dk.dk
2 email5@dk.dk

Kan man det, på en "nem" måde?
Avatar billede schaefner Juniormester
03. maj 2003 - 12:43 #1
Prøv:
SELECT COUNT(*) AS antal FROM tabel GROUP BY email
Avatar billede fangel Nybegynder
03. maj 2003 - 12:46 #2
schaefner's er umidbart den nemmeste, men denne vil også virke (hvis du alligevel skal bruge queryet til noget)

$query = mysql_query("SELECT * FROM users");
echo mysql_num_rows($query);
Avatar billede schaefner Juniormester
03. maj 2003 - 12:50 #3
<?php
$result = mysql_query("SELECT *,COUNT(*) AS antal FROM squnk GROUP BY email");
while($row = mysql_fetch_array($result)) {
    echo "$row[antal] $row[email]<br>";
}
?>
Avatar billede fangel Nybegynder
03. maj 2003 - 12:54 #4
schaefner => samme (ca) ville opnås med:

<?php
$result = mysql_query("SELECT * FROM squnk GROUP BY email");
echo "der er " . mysql_num_rows($result) . " emails i databasen...<br>";
while($row = mysql_fetch_array($result)) {
    echo $row[email] . "<br>";
}
?>
Avatar billede dank Nybegynder
03. maj 2003 - 13:00 #5
skal dea_pg have point, eller skal schaefner løbe solo med dem alle?
Avatar billede dank Nybegynder
03. maj 2003 - 13:06 #6
Dea_pg > Smid et svar, så smider jeg lidt flere point i puljen, så får du også lidt.
Avatar billede schaefner Juniormester
03. maj 2003 - 13:08 #7
dea_pg >> Din gør da ikke helt som dank ønsker: http://www.disneyzone.dk/count.php

Ta' jer ikke af indholdet det fra en tidligere test ;)
Avatar billede fangel Nybegynder
03. maj 2003 - 13:09 #8
ok, lidt point vil jeg da gerne have...
Avatar billede dank Nybegynder
03. maj 2003 - 13:10 #9
http://www.disneyzone.dk/docs/services/community/ <--- der kommer godt nok mange fejl på den side
Avatar billede fangel Nybegynder
03. maj 2003 - 13:12 #10
sorry, havde lidt misforstået spørgsmålet... min fejl... ;) men så ved du det til en anden gang...
Avatar billede schaefner Juniormester
03. maj 2003 - 13:12 #11
det er fordi jeg har skiftet kodeord på databasen og ikke har fået det ændret ;)
Avatar billede dank Nybegynder
03. maj 2003 - 13:16 #12
Tillægsspørgsmål: (jeg afsætter bare flere point, hvis i kan hjælpe med denne)

$result = mysql_query("SELECT *,COUNT(*) AS antal FROM squnk GROUP BY email");

Hvordan får jeg den til at sortere efter flest forkomster, i.e.

3 jkj
2 klj
1 lklkj

Og dernæste Hvordan får jeg den til at vise kun dem der kommer flest af (en slags top5)

Jeg har forsøgt en kombination med LIMIT, men den virker ikke :(
Avatar billede schaefner Juniormester
03. maj 2003 - 13:18 #13
Den første:
SELECT *,COUNT(*) AS antal FROM squnk GROUP BY email ORDER BY antal DESC
Avatar billede schaefner Juniormester
03. maj 2003 - 13:19 #14
SELECT *,COUNT(*) AS antal FROM squnk GROUP BY email ORDER BY antal DESC LIMIT 5
Avatar billede dank Nybegynder
03. maj 2003 - 13:20 #15
Tak til jer begge.. ikke alene har jeg fået løst (endnu!) et problem.. har også lært lidt :)
Avatar billede schaefner Juniormester
03. maj 2003 - 13:22 #16
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
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