Avatar billede miss-g Seniormester
08. marts 2018 - 16:14 Der er 8 kommentarer og
1 løsning

Tæl (query) records, som ikke er tomme...

Jeg har en tabel i databasen, som ser nogenlunde sådan ud:

id                dansk                engelsk
1                  hus                    house
2                  lygte                 
3                  skib                  ship

Der er ikke ord i alle kolonner. I eksemplet står der ikke noget under "engelsk" på id 2.

Jeg leder efter en kode, der kan tælle antal ord under henholdsvis dansk og engelsk. (I eksemplet er der 3 danske ord og 2 engelske ord).

Jeg kan desværre ikke selv programmere, finder koder på internettet og retter dem til i den grad jeg er i stand til. Min side er i PHP med Mysql database (privat).

Er der nogle der kan stykke koden sammen for mig - tror den er simpel.. Tak :-)
Avatar billede arne_v Ekspert
08. marts 2018 - 16:28 #1
SELECT 'Dansk',COUNT(dansk) FROM tabel
UNION
SELECT 'Engelsk',COUNT(engelsk) FROM tabel
Avatar billede arne_v Ekspert
08. marts 2018 - 16:30 #2
Maaske bare:

SELECT COUNT(dansk)  AS nodansk,COUNT(engelsk) AS noengelsk FROM tabel
Avatar billede miss-g Seniormester
08. marts 2018 - 19:38 #3
Nu er jeg slet ikke ekspert, men vil ovenstående kode ikke bare tælle alle rækker i kolonnen dansk (og engelsk) ?? Union er det tabelnavnet (fiktivt)?
Avatar billede arne_v Ekspert
08. marts 2018 - 19:51 #4
COUNT(*) taeller antal raekker i tabellen.

COUNT(feltnavn) taeller antal raekker i tabellen hvor det angivne felt ikke er NULL
Avatar billede arne_v Ekspert
08. marts 2018 - 19:51 #5
UNION kombinerer resultatet af to queries.
Avatar billede miss-g Seniormester
08. marts 2018 - 21:02 #6
Ahh, tak for forklaringen. Jeg prøver, om jeg kan få det til at virke :-)
Avatar billede miss-g Seniormester
08. marts 2018 - 21:31 #7
Det kan jeg sgi ikke få til at virke. Jeg får resultat = 1 i begge tilfælde.

Her er koden:

$query_a = "SELECT ord_dansk, COUNT(ord_dansk) FROM ordliste";
$a = mysql_query($query_a) or die(mysql_error());
$row_a= mysql_fetch_assoc($a);
$totalRows_a = mysql_num_rows($a);

Hvad er forkert? (Som sagt er jeg ikke programmør...) hm
Avatar billede arne_v Ekspert
08. marts 2018 - 21:50 #8
$query_a = "SELECT ord_dansk, COUNT(ord_dansk) AS antal_dansk FROM ordliste";
$a = mysql_query($query_a) or die(mysql_error());
$row_a = mysql_fetch_assoc($a);
$antal_dansk = $row_a['antal_dansk'];
Avatar billede miss-g Seniormester
08. marts 2018 - 22:59 #9
Smukt!  Så virker det. Tusind tak for hjælpen :-)
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

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