Avatar billede g0t Nybegynder
27. februar 2008 - 22:32 Der er 3 kommentarer

Spørgeskema Data fra MySQL

Hey. Jeg har lavet et spørgeskema og vil nu ha dataerne ud. Jeg har lavet en funktion som henter efter hvad spørgsmål det er osv, det virker næsten også som det skal. På min statistikside vil jeg gerne have vi kan se or alle og også kun se hvad vores målgruppe har svaret. (ved godt skemaet ikke er så gennemtænkt)

Min database ser sådan ud.

Table: Skema
´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´
id
svar1
svae2
til svar10

Det kode jeg har nu:

$svar = mysql_result(mysql_query("SELECT COUNT(*) FROM `skema`"),0);
if ($svar == 0) {$svar = "ingen";}
if ($kina == 'ja') {$link = "<a href='skemastats.php'>Alle personer</a>";} else {$link = "<a href='skemastats.php?kina=ja'>Vores Målgruppe</a>";}

function tæl($spg, $svr)
{
    if ($_GET['kina'] == "ja") {
    $kina1 = mysql_result(mysql_query("SELECT COUNT(*) FROM `skema` WHERE `svar2` = '60-69' AND `svar9` = '1'"),0);
    $kina2 = mysql_result(mysql_query("SELECT COUNT(*) FROM `skema` WHERE `svar2`= '60-69' AND `svar9` = '1'"),0);
    $kina3 = mysql_result(mysql_query("SELECT COUNT(*) FROM `skema` WHERE `svar2`= '50-59' AND `svar9` = '1'"),0);
    $kina4 = mysql_result(mysql_query("SELECT COUNT(*) FROM `skema` WHERE `svar2`= '50-59' AND `svar9` = '1'"),0);
   
    $kina = $kina1+$kina2+$kina3+$kina4;
   
    }
    if ($_GET['kina'] == "ja") {
    $alle = $kina;
    }
    else {
    $alle = mysql_result(mysql_query("SELECT COUNT(*) FROM `skema`"),-0);
    }
    if ($_GET['kina'] == "ja") {
    $tæl = mysql_result(mysql_query("SELECT COUNT(*) FROM `skema` WHERE $spg = '$svr' AND `svar9` = '1' AND `svar2` = '60-69' OR `svar2` = '50-59'"),-0);
    }
    else {
    $tæl = mysql_result(mysql_query("SELECT COUNT(*) FROM `skema` WHERE $spg = '$svr'"),-0);
    }
    $tæl = ($tæl/$alle)*100;
    return $tæl;
}
_____________________________________
og et lige hvordan jeg bruger funktionen længere nede fx.

<div style="background-color:#FFFFFF;padding:10px;border:1px #EAEAEA solid;">
<b>2. Alder</b><br />
> 10: <b> <? echo tæl('svar2', '>10');?>%</b><br />
10-15: <b> <? echo tæl('svar2', '10-15');?>%</b><br />
16-19: <b> <? echo tæl('svar2', '16-19');?>%</b><br />
20-29: <b> <? echo tæl('svar2', '20-29');?>%</b><br />
30-39: <b> <? echo tæl('svar2', '30-39');?>%</b><br />
40-49: <b> <? echo tæl('svar2', '40-49');?>%</b><br />
50-59: <b> <? echo tæl('svar2', '50-59');?>%</b><br />
60-69: <b> <? echo tæl('svar2', '60-69');?>%</b><br />
70+: <b> <? echo tæl('svar2', '70+');?>%</b><br />
</div>

Siden kan ses på www.g0t.dk/skemastats.php
Avatar billede g0t Nybegynder
27. februar 2008 - 22:34 #1
Mit egentlige spørgsmål er hvordan i mysql jeg henter noget som dette:
"SELECT COUNT(*) FROM `skema` WHERE `svar2`= '50-59' OR `svar2` = '60-69' AND `svar9` = '1'"

Kan simpelthen ikke få den til det :/ Virkelig underligt. Derfor jeg har defineret $kina1, $kina2 osv..
Avatar billede pidgeot Nybegynder
28. februar 2008 - 14:23 #2
Det er en RIGTIG god ide at sætte paranteser når man blander AND og OR, så man er sikker på man ikke har problemer med operatorpræcedens.

"SELECT COUNT(*) FROM `skema` WHERE (`svar2`= '50-59' OR `svar2` = '60-69') AND `svar9` = '1'"
Avatar billede g0t Nybegynder
28. februar 2008 - 21:08 #3
Okay, det vidste jeg ikke lige :) prøver det lige ad. tak
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