Avatar billede soccoro Nybegynder
27. august 2005 - 22:55 Der er 5 kommentarer og
1 løsning

Flest posts i tabel

Hej eksperter.

Er der nogle der kan fortælle mig, hvordan jeg henter brugerid'et ud på den bruger, som har lavet flest posts i en tabel?

Derudover, så skal jeg også have hentet antallet af samtlige tegn fra ét felt ud fra en tabel (flere rækker) og have lagt alle rækker sammen, således at man får et totalt tal for samtlige tegn i ét felt over flere rækker. Hvordan kan jeg lave det?
Avatar billede nielle Nybegynder
27. august 2005 - 22:59 #1
Noget i denne stil:

SELECT posterId, count(*) AS antalPoster FROM dinTabel GROUP BY posterID ORDER BY antalPoster DESC LIMIT 0, 1
Avatar billede nielle Nybegynder
27. august 2005 - 23:04 #2
... og sådan:

$sql = "SELECT ditFelt FROM dinTabel";
$result = mysql_query($sql) or die(mysql_error());

$sumAfTegn = 0;
while ($row = mysql_fetch_assoc($result))
{
    $ditFelt = $row["ditFelt"];
    $sumAfTegn += strlen($ditFelt);
}

echo $sumAfTegn;
Avatar billede soccoro Nybegynder
27. august 2005 - 23:14 #3
Den der AS antalPoster ....

Feltet antalPoster skal det være et et felt med det totale antal poster i tabellen?
Avatar billede nielle Nybegynder
28. august 2005 - 07:49 #4
Nej. Når man bruger "GROUP BY posterID", så grupperes alle posterne i grupper med det samme posterID. Når man kombinerer dette med "count(*)" får man derfor antaller af poster, som har samme posterID - havde man ikke "GROUP BY" ville man bare have fået samtlige poster i databasen. Med "count(*)" får du altså talt det totale antal poster per person, og "... AS antalPoster" giver bare dette tal et navn ("AS" definerer et alias), sådan at du senere kan skrive noget i stil med:

$sql = "SELECT posterId, count(*) AS antalPoster FROM dinTabel GROUP BY posterID";
$result = mysql_query($sql) or die(mysql_error());

while ($row = mysql_fetch_assoc($result))
{
    echo "Bruger: " . $row["posterId"] . ", har i alt postet: " . $row["antalPoster"] . " indlæg.";
}

Feltet "antalPoster" eksistere altså ikke på forhånd, men bliver dannet på kørselstidspunktet.
Avatar billede soccoro Nybegynder
28. august 2005 - 08:48 #5
Jeg takker mange gange. Smid venligst en svar, så får du points
Avatar billede nielle Nybegynder
28. august 2005 - 10:07 #6
Svar :^)
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

IT-JOB