Avatar billede holm76 Nybegynder
19. juli 2005 - 20:45 Der er 28 kommentarer og
1 løsning

Hjælp til Count()

Hej jeg har en database hvorfra jeg gerne vil udtrække antallet af personer der er tilmeldt og fordelingen af køn:

Jeg har lavet følgende:
SELECT COUNT(DISTINCT kon) FROM personer;

Og kan så forstille mig at jeg på en eller anden måde skal definere mand og kvinde med en $post men hvordan skal jeg gøre det og trække dem ud hver for sig?
Avatar billede holm76 Nybegynder
19. juli 2005 - 20:45 #1
ups vil da lige sige at kon = køn
Avatar billede hmortensen Nybegynder
19. juli 2005 - 20:49 #2
Måske sådan her:
SELECT kon, COUNT(*) as antal FROM personer GROUP BY kon
Avatar billede nielle Nybegynder
19. juli 2005 - 20:50 #3
SELECT kon, count(*) AS antal FROM personer GROUP BY koen;
Avatar billede nielle Nybegynder
19. juli 2005 - 20:50 #4
To late ;^)
Avatar billede holm76 Nybegynder
19. juli 2005 - 21:05 #5
Nope det virker ikke.

Jeg får følgende fejl:
Parse error: syntax error, unexpected T_STRING in d:\wamp\www\xxx\fest\antal.php on line 5

Og det er denne linie
SELECT kon, COUNT(*) as antal FROM personer GROUP BY kon;
Avatar billede hmortensen Nybegynder
19. juli 2005 - 21:07 #6
Det er en php fejl, og det her er sql. Hvordan ser din kode ud ?
Avatar billede holm76 Nybegynder
19. juli 2005 - 21:30 #7
Her er hele koden:

Antal tilmeldte:

<?php
include "mysql_database.php";
    $resultat = mysql_query("SELECT kon, COUNT(*) FROM personer GROUP BY kon") OR DIE(MYSQL_ERROR());
      while($post = mysql_fetch_array($resultat)){
?>

<?php
$post = "mand,kvinde";
echo "$post[mand]";
echo "$post[kvinde]";?>
<?php
}
?>

Og her er hvad siden viser med den:
Antal tilmeldte: mm mm mm
Avatar billede holm76 Nybegynder
19. juli 2005 - 21:38 #8
ups er der en erstatning til mysql_fetch_array skal ikke laves som et array, bare vises 1 gang..
Avatar billede hmortensen Nybegynder
19. juli 2005 - 21:51 #9
<?php
include "mysql_database.php";
    $resultat = mysql_query("SELECT kon, COUNT(*) AS antal FROM personer GROUP BY kon") OR DIE(MYSQL_ERROR());
      while($post = mysql_fetch_array($resultat)){
        echo $post['kon']." - ".$post['antal'];
      }
?>
Avatar billede holm76 Nybegynder
19. juli 2005 - 21:55 #10
hmortensen det virker men skal dog modificere den lidt.. takker..

Men kan ikke gi dig pointene da du ikke har svaret men kommentreret.
Avatar billede hmortensen Nybegynder
19. juli 2005 - 21:56 #11
Svarer normalt aldrig før spørger er tilfreds :)
Avatar billede holm76 Nybegynder
19. juli 2005 - 21:57 #12
ok også iorden .. men du får da pointene..
Avatar billede holm76 Nybegynder
19. juli 2005 - 22:12 #13
ups igen... Mortensen kan du hjælpe med en ting mere?

Den skriver følgende:
Antal tilmeldte: 1 - mand 4 - kvinde 2 -
Jeg har ændret lidt i den, men hvorfor skriver den 1 tilmeldt, når der er 6 tilsamen??
Avatar billede hmortensen Nybegynder
19. juli 2005 - 22:13 #14
Så blir jeg nødt til at se din kode som den er nu
Avatar billede holm76 Nybegynder
19. juli 2005 - 22:22 #15
Antal tilmeldte:
<?php
include "mysql_database.php";
    $resultat = mysql_query("SELECT kon, COUNT(*) AS antal FROM personer GROUP BY kon") OR DIE(MYSQL_ERROR());
      while($post = mysql_fetch_array($resultat)){
        echo $post['kon']." ".$post['antal'].""." - ";
      }
?>
Avatar billede nielle Nybegynder
19. juli 2005 - 22:26 #16
Det ser ud til at der er noget i din mysql_database.php som udskriver et 1-tal sådan at det satemmer fra din include:

include "mysql_database.php";
Avatar billede hmortensen Nybegynder
19. juli 2005 - 22:28 #17
Har du en post hvor der ikke står noget i kon ?
Avatar billede holm76 Nybegynder
19. juli 2005 - 22:41 #18
nielle er ikkelige med..

Hvad mener du mortensen
Avatar billede hmortensen Nybegynder
19. juli 2005 - 23:07 #19
Prøv lige sådan her:
<?php
include "mysql_database.php";
    $resultat = mysql_query("SELECT kon, COUNT(*) AS antal FROM personer GROUP BY kon") OR DIE(MYSQL_ERROR());
echo "Der er ialt: ".mysql_num_rows($result)."<br>";
      while($post = mysql_fetch_array($resultat)){
        echo $post['kon']." ".$post['antal'].""." - ";
      }
?>
Avatar billede holm76 Nybegynder
20. juli 2005 - 08:53 #20
Desværre der kommer denne fejl:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in d:\wamp\www\xxx\fest\antal.php on line 5
Avatar billede hmortensen Nybegynder
20. juli 2005 - 10:02 #21
$Jeg fik skrevet result og ikke $resultat
Avatar billede holm76 Nybegynder
20. juli 2005 - 11:07 #22
Hold da op så jeg heller ikke selv..

men det virker ok nu, bare en fejl den skriver stadig 1, men det kommer vel fra
    while($post = mysql_fetch_array($resultat)){ det passer med at den står på 1 tallets plads??

og så ligger den heller ikke tallene rigtigt sammen i ialt, kan det være pga 1 tallet, der måske laver ballade?
Der er ialt: 3
1 mand 4 kvinde 2
Avatar billede hmortensen Nybegynder
20. juli 2005 - 11:17 #23
3 tallet afslører at det 1 tal kommer fra din tabel.
Du må have en række tabel hvor kon ikke er sat.
Avatar billede holm76 Nybegynder
20. juli 2005 - 11:23 #24
ja der var en der ikke var defineret, men nu skriver den så istedet:

Der er ialt: 2
mand 4 - kvinde 2 -

Skal der er ilat ikke være 6??
Avatar billede hmortensen Nybegynder
20. juli 2005 - 11:57 #25
Nej, det ialt der bliver talt her, er rækker i netop det her udtræk, og ikke ialt i tabellen, så det virker som det skal nu.
Avatar billede nielle Nybegynder
08. august 2005 - 19:43 #26
Lukketid?
Avatar billede holm76 Nybegynder
08. august 2005 - 21:20 #27
ja mne kan ikke lukke den!!!
Avatar billede nielle Nybegynder
08. august 2005 - 22:35 #28
Det gik nu da ellers meget godt :^)
Avatar billede holm76 Nybegynder
09. august 2005 - 18:22 #29
ja i 3. forsøg ;)
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