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 :

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();
J'obtiens cet array :


Array
(
[0] => Array
(
[reponse] => 2
[0] => 2
)

[1] => Array
(
[reponse] => 2
[0] => 2
)

[2] => Array
(
[reponse] => 4
[0] => 4
)

)
Je voudrais donc compter le nombre de 2 (ici deux fois) et le nombre de 4 (ici 1 fois), j'utilise ce code :

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;
          }
      }
    }
Le problème, est que j'obtiens des résultats qui sont doublés :

- 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
Comme vous pouvez le voir, j'obtiens à chaque fois le double de ce que j'ai réellement dans ma table.

Voyez-vous le problème dans le double foreach svp ?

Merci d'avance.

bee