Hello,
Mon objectif : réaliser un comptage de résultat sur un table qui contient les résultats d’un sondage. Lorsqu’un votant met « oui », je renseigne pour son résultat un 0 et lorsqu’il met « non », je renseigne un 1.
Voici le code :
$query = $GLOBALS['pdo']->prepare(" SELECT COUNT(vote_id) as nbr0
FROM votes_votants
WHERE vote_votes_id = :vote_id1
AND vote_choix='0'
UNION
SELECT COUNT(vote_id) as nbr1
FROM votes_votants
WHERE vote_votes_id = :vote_id2
AND vote_choix='1'");
$query->bindValue(':vote_id1',$vote_id,PDO::PARAM_INT);
$query->bindValue(':vote_id2',$vote_id,PDO::PARAM_INT);
$query->execute();
while ($datas = $query->fetch())
{
$nbr0 = $datas['nbr0'];
$nbr1 = $datas['nbr1'];
}
La requête, elle même prise indépendamment du code me renvoie 2 lignes :
4
9
Donc $nbr0 devrait valoir 4 et $nbr1 valoir 9.
Maintenant, mon code PHP me renvoie ceci :
9
- Première anomalie : je n’ai qu’un résultat, alors que j’ai pourtant 2 lignes attendues…
- Deuxième anomalie : Pourquoi 9 et pas 4 ? Comme si le résultat de nbr1 écrasait le résultat de nbr0
J’ai modifié mon code pour parcourir mon tableau différemment (à coup de fetchall et foreach), même résultat. Puis j’ai également utilisé les index des tableaux plutôt que les noms pour ressortir mes valeurs, même résultat aussi.
Là je sèche complètement.
Pouvez-vous m’aider ?