Avatar billede sonic_86 Nybegynder
23. maj 2003 - 15:17 Der er 8 kommentarer og
1 løsning

Skal tælle hvor mange gange personen har skrevet en besked?

Hej

Jeg er i gang med at lave et bruger system hvor man så skal kunne se hvor mange kommentar personen har skrevet.

Den skal på en måde søge efter om hans brugere navn er i tablerne scooter_kommentar og knallert_kommentar i feltet navn og den table som brugerne ligger hedder brugere og hans brugernavn ligger i feltet nick

Så hvordan får jeg den til at udskriver hvor mange han har skrevet?
Avatar billede tipsen Nybegynder
23. maj 2003 - 15:35 #1
SELECT COUNT(*) FROM scooter_kommentar WHERE navn='brugernavn';

Hvis det ikke er nok, så angiv dine tabel-strukturer her på siden.
Avatar billede sonic_86 Nybegynder
23. maj 2003 - 15:46 #2
Det dur næsten men kan ikke få det her til at virke:

$query=mysql_query("SELECT * FROM brugere");
while($row = mysql_fetch_array($query)) {
    $nick=$row['nick'];
    $ialt=mysql_result(mysql_query("SELECT COUNT(*) FROM scooter_kommentar WHERE navn = '$nick'"),0);
    echo $ialt;
}
Avatar billede tipsen Nybegynder
23. maj 2003 - 15:56 #3
Hvorfor vil du gøre det for alle brugerne på én gang, hvis du kun skal vise det for en bruger?

Og så prøv med KISS-metoden til koden - så har man en chance for at se, hvad der går galt.
Avatar billede sonic_86 Nybegynder
23. maj 2003 - 15:58 #4
Fordi at det skal viset for alle brugerne og over alle brugerne...

Hvad er KISS-metoden for noget?
Avatar billede tipsen Nybegynder
23. maj 2003 - 16:54 #5
KISS = Keep IT Simple Stupid ;-)

Prøv med noget i retning af dette:

$res = mysql_query("SELECT t1.COUNT(*) AS antal, t1.navn FROM scooter_kommentar AS t1,  brugere AS t2 WHERE t1.navn = t2.nick GROUP BY t2.nick ORDER BY antal DESC") or die(mysql_error());
while(list($antal, $navn) = mysql_fetch_row($res)) {
  echo "$navn: $antal<br>";
}
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 14:44 #6
Hmm jeg har lavet den her selv:

$result=mysql_query('SELECT brugere.*, COUNT(scooter_kommentar.navn) AS total FROM scooter_kommentar,brugere WHERE scooter_kommentar.navn=brugere.nick GROUP BY brugere.nick ORDER BY total DESC') or die ("Fejl X: ".mysql_error());
while($row=mysql_fetch_assoc($result))
{
    echo htmlentities($row['nick']).' - '.$row['total'].'<br>';
}

Nogle der kan få den til at udskrive personen selvom at han har skrevet 0 kommentar.

For lige nu så udskriver den kun de personer som min har skrevet 1 kommentar
Avatar billede tipsen Nybegynder
24. maj 2003 - 17:51 #7
Så skal du bruge noget join...
Avatar billede sonic_86 Nybegynder
25. maj 2003 - 00:45 #8
Hvordan gør man det?
Avatar billede sonic_86 Nybegynder
04. juni 2003 - 17:49 #9
Lukker
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