Bonjour à toutes et à tous,
J'ai une table qui contient des résultats d'un sondages.
Je voudrais afficher les résultats de ce sondage qui sont :
Valeur 1 : 0 fois
Valeur 2 : 2 fois
Valeur 3 : 0 fois
Valeur 4 : 1 fois
Voici la requête toute simple qui récupère les résultats :
J'obtiens cet array :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $sql = $dbh->prepare("SELECT reponse FROM vote WHERE titre=:titre"); $data = array(':titre'=>'lieu_de_championat'); //on rÈcupere le rÈsultat des anciens votes. $sql->execute($data); $cadre = $sql->fetchAll();
Je voudrais donc compter le nombre de 2 (ici deux fois) et le nombre de 4 (ici 1 fois), j'utilise ce code :
Array
(
[0] => Array
(
[reponse] => 2
[0] => 2
)
[1] => Array
(
[reponse] => 2
[0] => 2
)
[2] => Array
(
[reponse] => 4
[0] => 4
)
)
Le problème, est que j'obtiens des résultats qui sont doublés :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 $totalreponse = array(); foreach ($cadre as $key => $value) { foreach ($value as $key2 => $value2) { $index = $value2; if (array_key_exists($index, $totalreponse)) { $totalreponse[$index]++; } else { $totalreponse[$index] = 1; } } }
Comme vous pouvez le voir, j'obtiens à chaque fois le double de ce que j'ai réellement dans ma table.- valeur 1 : 0.00% 0 vote.
- valeur 2 : 133.33% 4 votes.
- valeur 3 : 0.00% 0 vote.
- valeur 4 : 66.66% 2 votes.
Total votes : 3
Voyez-vous le problème dans le double foreach svp ?
Merci d'avance.
bee
Partager