Mysql et Count
Fermé
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
-
Modifié le 16 oct. 2017 à 12:59
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 - 16 oct. 2017 à 20:49
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 - 16 oct. 2017 à 20:49
A voir également:
- Mysql et Count
- Mysql community server - Télécharger - Bases de données
- Mysql gratuit ou payant - Forum MySQL
- Mysql error 1 ✓ - Forum Réseaux sociaux
- Mysql fatal error ✓ - Forum MySQL
- Le serveur mysql est inaccessible. vérifiez votre configuration. ✓ - Forum MySQL
5 réponses
mandolorien
Messages postés
109
Date d'inscription
dimanche 9 septembre 2012
Statut
Membre
Dernière intervention
9 mars 2018
3
16 oct. 2017 à 14:37
16 oct. 2017 à 14:37
essaye ceci :
$Stat = $pdo->query("SELECT Jour,COUNT(pseudo) AS participant FROM tb_reponse WHERE Winner='1' GROUP BY Jour")or die(print_r($pdo->errorInfo())); while($data = $Stat->Fetch(PDO::FETCH_ASSOC)) { var_dump($data); }
mandolorien
Messages postés
109
Date d'inscription
dimanche 9 septembre 2012
Statut
Membre
Dernière intervention
9 mars 2018
3
Modifié le 16 oct. 2017 à 16:15
Modifié le 16 oct. 2017 à 16:15
dans se cas enleve le :
et dans la boucle ajoute une condition :
Admire la personne qui te critique , car prisonniere de ca propre jalousie elle ne fais que t admirer
WHERE winner='1'
et dans la boucle ajoute une condition :
if(data['winner'] == '1') { /* tu affiche le vainqueur */}
Admire la personne qui te critique , car prisonniere de ca propre jalousie elle ne fais que t admirer
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
Modifié le 16 oct. 2017 à 16:28
Modifié le 16 oct. 2017 à 16:28
Non je crois que tu ne m'as toujours pas compris !
C'est le nombre de participants par jour que je dois afficher et non pas le winner.
52 personnes ont participés aujourd'hui et l'un d'entre eu est le Winner.
Donc mon tableau affichera :
Pour le jour d'aujourd'hui (288), le nombre de participants (52), et le winner qui est François :
C'est le nombre de participants par jour que je dois afficher et non pas le winner.
52 personnes ont participés aujourd'hui et l'un d'entre eu est le Winner.
Donc mon tableau affichera :
Pour le jour d'aujourd'hui (288), le nombre de participants (52), et le winner qui est François :
Jour | Participants | Pseudo
=======================================
288 | 52 | François
287 | 33 | Éric
286 | 41 | Jean
285 | 69 | Causette
284 | 93 | Lucie
mandolorien
Messages postés
109
Date d'inscription
dimanche 9 septembre 2012
Statut
Membre
Dernière intervention
9 mars 2018
3
>
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
Modifié le 16 oct. 2017 à 17:28
Modifié le 16 oct. 2017 à 17:28
voici ce que j'ai effectué :
et voici le résultat :
je te préscise que j'ai du me faire un jeu d'essai rapide ;)
<?php $pdo = new PDO('mysql:host=localhost;dbname=test','root',''); try{ $Stat = $pdo->query("SELECT Jour,COUNT(pseudo) AS participant,pseudo FROM tb_reponse WHERE pseudo IN (SELECT pseudo FROM tb_reponse WHERE winner ='1') GROUP BY Jour"); }catch(PDOException $e){ die('Erreur : ' . $e->getMessage()); } while($data = $Stat->fetchObject()){ var_dump($data); } ?>
et voici le résultat :
object(stdClass)[3]
public 'Jour' => string '280' (length=3)
public 'participant' => string '3' (length=1)
public 'pseudo' => string 'eric' (length=1)
object(stdClass)[4]
public 'Jour' => string '283' (length=3)
public 'participant' => string '1' (length=1)
public 'pseudo' => string 'francois' (length=1)
object(stdClass)[3]
public 'Jour' => string '284' (length=3)
public 'participant' => string '1' (length=1)
public 'pseudo' => string 'd' (length=1)
object(stdClass)[4]
public 'Jour' => string '285' (length=3)
public 'participant' => string '1' (length=1)
public 'pseudo' => string 'e' (length=1)
je te préscise que j'ai du me faire un jeu d'essai rapide ;)
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
16 oct. 2017 à 17:25
16 oct. 2017 à 17:25
Bonjour,
Au passage ( ça n'a pas de rapport direct avec la question .. mais... )
En PDO .. on n'utilise pas les OR DIE.... on passe par les exceptions.
Donc, pour coder proprement en PDO ... merci d'appliquer ceci :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Ensuite...
J'ai l'impression que la question concerne d'avantage un souci de requête SQL qu'un "problème" de code PHP.
Il aurait donc été judicieux de poser la question dans le forum BASES DE DONNEES.
Au passage ( ça n'a pas de rapport direct avec la question .. mais... )
En PDO .. on n'utilise pas les OR DIE.... on passe par les exceptions.
Donc, pour coder proprement en PDO ... merci d'appliquer ceci :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Ensuite...
J'ai l'impression que la question concerne d'avantage un souci de requête SQL qu'un "problème" de code PHP.
Il aurait donc été judicieux de poser la question dans le forum BASES DE DONNEES.
mandolorien
Messages postés
109
Date d'inscription
dimanche 9 septembre 2012
Statut
Membre
Dernière intervention
9 mars 2018
3
>
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
16 oct. 2017 à 17:29
16 oct. 2017 à 17:29
désolé , j'ai corrigé l'erreur .
cordialement
cordialement
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
16 oct. 2017 à 17:49
16 oct. 2017 à 17:49
Merci jordan, merci mandolorien.
La gestion des erreurs est faite dans mon config.php
quand au soucis de la requête SQL c'est en effet la requête désolé !
La gestion des erreurs est faite dans mon config.php
quand au soucis de la requête SQL c'est en effet la requête désolé !
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
16 oct. 2017 à 17:52
16 oct. 2017 à 17:52
Je te remercie pour ton code et pour le temps que tu m'accordes...
J'ai n'ai toujours pas le résultat adéquat.
Chez moi il me renvois des données erronées.
Voici ma table : https://ufile.io/wncmy
Avec ce code, j'ai un résultat sans groupement des pseudo :
Il affiche exactement ce que je veux sans pour autant grouper les pseudo par jour.
Exemple :
François à participé 7 fois aujourd'hui. Mais il n'est compté qu'une fois.
Donc je dois avoir au lieu de 93 participants, plutot 86.
J'ai n'ai toujours pas le résultat adéquat.
Chez moi il me renvois des données erronées.
Voici ma table : https://ufile.io/wncmy
Avec ce code, j'ai un résultat sans groupement des pseudo :
$Stat = $pdo->query("SELECT * FROM tb_jeu_zoom_reponse WHERE Winner='1' ORDER BY Date DESC"); while($data = $Stat->fetch(PDO::FETCH_ASSOC)){ $Stat = $pdo->query("SELECT Jour, Date, Nom, Pseudo, Reponse, COUNT(Jour) AS Participant FROM tb_jeu_zoom_reponse GROUP BY Jour "); while($data = $Stat->fetch(PDO::FETCH_ASSOC)){
Il affiche exactement ce que je veux sans pour autant grouper les pseudo par jour.
Exemple :
François à participé 7 fois aujourd'hui. Mais il n'est compté qu'une fois.
Donc je dois avoir au lieu de 93 participants, plutot 86.
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
16 oct. 2017 à 19:30
16 oct. 2017 à 19:30
J'ai réussi !
Seulement si quelqu'un peut m'aider à compiler le tout en une seule requête :p
<?php $Stat = $pdo->query("SELECT * FROM tb_reponse WHERE Winner='1' ORDER BY Jour DESC"); while($data = $Stat->fetch(PDO::FETCH_ASSOC)){ $Stat = $pdo->query("SELECT Jour, Date, Nom, Pseudo, Reponse, COUNT(DISTINCT Pseudo) AS Participant FROM tb_reponse GROUP BY Jour "); while($data = $Stat->fetch(PDO::FETCH_ASSOC)){ ?>
Seulement si quelqu'un peut m'aider à compiler le tout en une seule requête :p
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
Ambassadeur
1 557
16 oct. 2017 à 20:49
16 oct. 2017 à 20:49
bonsoir, suggestion:
SELECT w.Jour, Gagnant, Participants from (SELECT Jour, max(Pseudo) as Gagnant FROM tb_reponse WHERE Winner='1' GROUP BY Jour) as w, (SELECT Jour, COUNT(DISTINCT Pseudo) AS Participants FROM tb_reponse GROUP BY Jour) as p WHERE w.Jour=p.Jour ORDER BY w.Jour DESC
16 oct. 2017 à 15:19
Ton code affiche le nombre 1 au lieu du nombre de participants du jour :
Au lieu de :
Pour être plus explicite, 93 personnes ont participés aujourd'hui dont 1 seul sera sélectionné.
Dans mon tableau récapitulatif, j'ai donc la date, le nombre de participants et qui a été sélectionné.
Or je n'arrives pas à compter le nombre de participants par jour tout en affichant les personnes sélectionnés par jour...