hulp nodig met array
Ik heb een probleem met een array.
Ik maak namelijk een quiz, aan het einde van de quiz worden de antwoorden in mysql opgeslagen. maar daarna wil ik hier een grafiek van laten zien hoeveel mensen voor antw a, b, c, d hebben gekozen in vraag1, en dat ook voor vraag2, vraag3, etc.. aangezien ik niet weet hoeveel vragen er zijn weet ik niet hoe ik dit in een array kan zetten dus:
maar hoe krijg ik (vraag1,vraag2,vraag3,etc..) in een variabele.
heb al verschillende loops etc geprobeerd maar kom er niet meer uit.
Hopelijk hebben jullie een oplossing :-)
Mvg Daniel
Gewijzigd op 22/04/2014 11:41:32 door Daniel ravenshorst
dit heb ik namelijk nodig voor de grafiek.
http://jpgraph.net/features/src/show-example.php?target=new_bar1.php
dus:
dus $data1y is antwoord A value (wat ik uit mysql haal) en in de array hoort dan (vraag1, vraag2, vraag3, etc..) te staan.
Wat je als je nu 5 vragen hebt? Of een antwoord E?
Zorg dat je script dynamisch is en je ten alle tijden een vraag of antwoord kan toevoegen zonder je code of database te hoeven aanpassen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
require "includes/config.php";
$con = mysqli_connect($db_host,$db_username,$db_pass,$db_name);
//check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$column = mysqli_query($con, "SELECT * FROM resultaat");
$vragen_aantal = mysqli_num_fields($column) - 1;
for($i=1;$i<=$vragen_aantal;$i++){
${'vraag'.$i} = 'Vraag_'.$i;
$query = "SELECT Vraag_".$i.", COUNT(user_id) FROM resultaat GROUP BY Vraag_".$i;
$result = mysqli_query($con, $query) or die(mysqli_error());
$test = mysqli_query($con, "SELECT * FROM resultaat");
$totaal = mysqli_num_rows($test);
echo '<h3>Vraag '.$i.'</h3>';
while($row = mysqli_fetch_array($result)){
$test = $row["Vraag_".$i];
$percentage = round($row['COUNT(user_id)']/$totaal*100);
echo $row['COUNT(user_id)']." kozen voor antwoord ".$row["Vraag_".$i].". Dat is ".$percentage."%.<br />";
}
}
?>
require "includes/config.php";
$con = mysqli_connect($db_host,$db_username,$db_pass,$db_name);
//check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$column = mysqli_query($con, "SELECT * FROM resultaat");
$vragen_aantal = mysqli_num_fields($column) - 1;
for($i=1;$i<=$vragen_aantal;$i++){
${'vraag'.$i} = 'Vraag_'.$i;
$query = "SELECT Vraag_".$i.", COUNT(user_id) FROM resultaat GROUP BY Vraag_".$i;
$result = mysqli_query($con, $query) or die(mysqli_error());
$test = mysqli_query($con, "SELECT * FROM resultaat");
$totaal = mysqli_num_rows($test);
echo '<h3>Vraag '.$i.'</h3>';
while($row = mysqli_fetch_array($result)){
$test = $row["Vraag_".$i];
$percentage = round($row['COUNT(user_id)']/$totaal*100);
echo $row['COUNT(user_id)']." kozen voor antwoord ".$row["Vraag_".$i].". Dat is ".$percentage."%.<br />";
}
}
?>
Dit heb ik nu, dit laat verder nog geen grafiek zien. maar uiteindelijk wil ik de $percentage dus in de array zetten ($dataAy, $dataBy, $dataCy, $dataDy ipv $data1y $data2y)
de output is nu:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Vraag 1
3 kozen voor antwoord a. Dat is 100%.
Vraag 2
2 kozen voor antwoord a. Dat is 67%.
1 kozen voor antwoord b. Dat is 33%.
Vraag 3
2 kozen voor antwoord a. Dat is 67%.
1 kozen voor antwoord c. Dat is 33%.
Vraag 4
2 kozen voor antwoord a. Dat is 67%.
1 kozen voor antwoord b. Dat is 33%.
Vraag 5
1 kozen voor antwoord b. Dat is 33%.
2 kozen voor antwoord c. Dat is 67%.
Vraag 6
1 kozen voor antwoord a. Dat is 33%.
2 kozen voor antwoord b. Dat is 67%.
Vraag 7
1 kozen voor antwoord a. Dat is 33%.
2 kozen voor antwoord b. Dat is 67%.
Vraag 8
2 kozen voor antwoord b. Dat is 67%.
1 kozen voor antwoord c. Dat is 33%.
Vraag 9
1 kozen voor antwoord a. Dat is 33%.
2 kozen voor antwoord b. Dat is 67%.
Vraag 10
1 kozen voor antwoord b. Dat is 33%.
1 kozen voor antwoord c. Dat is 33%.
1 kozen voor antwoord e. Dat is 33%
3 kozen voor antwoord a. Dat is 100%.
Vraag 2
2 kozen voor antwoord a. Dat is 67%.
1 kozen voor antwoord b. Dat is 33%.
Vraag 3
2 kozen voor antwoord a. Dat is 67%.
1 kozen voor antwoord c. Dat is 33%.
Vraag 4
2 kozen voor antwoord a. Dat is 67%.
1 kozen voor antwoord b. Dat is 33%.
Vraag 5
1 kozen voor antwoord b. Dat is 33%.
2 kozen voor antwoord c. Dat is 67%.
Vraag 6
1 kozen voor antwoord a. Dat is 33%.
2 kozen voor antwoord b. Dat is 67%.
Vraag 7
1 kozen voor antwoord a. Dat is 33%.
2 kozen voor antwoord b. Dat is 67%.
Vraag 8
2 kozen voor antwoord b. Dat is 67%.
1 kozen voor antwoord c. Dat is 33%.
Vraag 9
1 kozen voor antwoord a. Dat is 33%.
2 kozen voor antwoord b. Dat is 67%.
Vraag 10
1 kozen voor antwoord b. Dat is 33%.
1 kozen voor antwoord c. Dat is 33%.
1 kozen voor antwoord e. Dat is 33%
Let maar niet op de spellingfoutjes haha, is maar een test pagina he
Toevoeging op 22/04/2014 13:45:14:
Michael ik denk dat ik je daar wel gelijk in kan geven. die opmerking heb ik al eerder gekregen, alleen snap ik er de ballen niet van haha. ik snap het wel klein beetje met mysql maar de koppelingen etc, begrijp ik niet echt.
En inderdaad ik wil alles ook dynamisch maken, het is namelijk ook de bedoeling dat er meerdere quizen bij komen. en meerdere antwoorden zoals E bijvoorbeeld.
Erwin H op 17/04/2014 14:26:13:
Je hebt dus drie entiteiten welke alle drie vooraf niet te bepalen zijn: quiz, vraag, antwoord. Voor elk van de entiteiten zal je dus een tabel moeten hebben:
Tabel quizzen:
- quiz_id
- .... (wat je nog meer wilt hebben)
Tabel vragen:
- vraag_id
- quiz_id (om te koppelen aan een quiz)
- vraag
- ....
Tabel antwoorden:
- antwoord_id
- vraag_id (om te koppelen aan de vraag, quiz_id is hier niet meer nodig)
- antwoord
- volgorde (als je altijd wilt weten welk antwoord als eerste moet komen etc)
Tabel quizzen:
- quiz_id
- .... (wat je nog meer wilt hebben)
Tabel vragen:
- vraag_id
- quiz_id (om te koppelen aan een quiz)
- vraag
- ....
Tabel antwoorden:
- antwoord_id
- vraag_id (om te koppelen aan de vraag, quiz_id is hier niet meer nodig)
- antwoord
- volgorde (als je altijd wilt weten welk antwoord als eerste moet komen etc)