Requete : COUNT, WHERE, GROUP_BY
Résolu
Exileur
Messages postés
1621
Statut
Membre
-
Exileur Messages postés 1621 Statut Membre -
Exileur Messages postés 1621 Statut Membre -
Bonjour à tous,
Je dois bien avouer que je sèche :
J'ai une table construite comme ça :
candidatures_tracker -----------------------------------------------------------------------------------------------------------------------------------
| id | id_candidature | nom | type | statut | date
---------------------------------------------------------------- | ------- | ------- | -------| ----------------------------
| 0 | 3a769fbe187467e0cb67afcb522e4442 | test | 1 | 0 | 2016-08-11 09:23:01|
---------------------------------------------------------------- | ------- | ------- | -------| ----------------------------
| 1 | 3a769fbe187467e0cb67afcb522e4442 | test | 2 | 0 | 2016-08-12 14:03:01 |
---------------------------------------------------------------- | ------- | ------- | -------| ----------------------------
| 2 | 3a769fbe187467e0cb67afcb522e4442 | test | 2 | 0 | 2016-08-13 16:03:01 |
---------------------------------------------------------------- | ------- | ------- | -------| ----------------------------
| 3 | 3a769fbe187467e0cb67afcb522e4442 | test | 2 | 1 | 2016-08-14 08:03:01 |
---------------------------------------------------------------- | ------- | ------- | -------| ----------------------------
| 4 | 4fd984f98d7467e0cb67afcb522e4442 | test1 | 1 | 0 | 2016-08-14 08:03:01
---------------------------------------------------------------- | ------- | ------- | -------| ----------------------------
| 5 | 4fd984f98d7467e0cb67afcb522e4442 | test1 | 2 | 1 | 2016-08-14 08:03:01
---------------------------------------------------------------- | ------- | ------- | -------| ----------------------------
| 6 | 4fd984f98d7467e0cb67afcb522e4442 | test1 | 1 | 0 | 2016-08-14 08:03:01
id_candidature et l'id dans une autre table.
nom est le nom dans l'autre table.
type est 0 ou 1 pour cv, ldm.
statut permet de savoir si la notification a été lu.
Je souhaite récupérer les notification non lu, les grouper par candidatures ET type.
Total non lu : 5
___________________________
|nom | type | Nombre |
|------------------------------------
|Test | 1 | 1 |
|------------------------------------
|Test | 2 | 2 |
|------------------------------------
|Test1 | 1 | 2 |
|------------------------------------
Le problème est que la requête que j'utilise me retourne un tableau vide....
Donc je viens à vous pour savoir comment formuler la requête pour obtenir le résultat voulu.
Merci à vous
Je dois bien avouer que je sèche :
J'ai une table construite comme ça :
candidatures_tracker -----------------------------------------------------------------------------------------------------------------------------------
| id | id_candidature | nom | type | statut | date
---------------------------------------------------------------- | ------- | ------- | -------| ----------------------------
| 0 | 3a769fbe187467e0cb67afcb522e4442 | test | 1 | 0 | 2016-08-11 09:23:01|
---------------------------------------------------------------- | ------- | ------- | -------| ----------------------------
| 1 | 3a769fbe187467e0cb67afcb522e4442 | test | 2 | 0 | 2016-08-12 14:03:01 |
---------------------------------------------------------------- | ------- | ------- | -------| ----------------------------
| 2 | 3a769fbe187467e0cb67afcb522e4442 | test | 2 | 0 | 2016-08-13 16:03:01 |
---------------------------------------------------------------- | ------- | ------- | -------| ----------------------------
| 3 | 3a769fbe187467e0cb67afcb522e4442 | test | 2 | 1 | 2016-08-14 08:03:01 |
---------------------------------------------------------------- | ------- | ------- | -------| ----------------------------
| 4 | 4fd984f98d7467e0cb67afcb522e4442 | test1 | 1 | 0 | 2016-08-14 08:03:01
---------------------------------------------------------------- | ------- | ------- | -------| ----------------------------
| 5 | 4fd984f98d7467e0cb67afcb522e4442 | test1 | 2 | 1 | 2016-08-14 08:03:01
---------------------------------------------------------------- | ------- | ------- | -------| ----------------------------
| 6 | 4fd984f98d7467e0cb67afcb522e4442 | test1 | 1 | 0 | 2016-08-14 08:03:01
id_candidature et l'id dans une autre table.
nom est le nom dans l'autre table.
type est 0 ou 1 pour cv, ldm.
statut permet de savoir si la notification a été lu.
Je souhaite récupérer les notification non lu, les grouper par candidatures ET type.
Total non lu : 5
___________________________
|nom | type | Nombre |
|------------------------------------
|Test | 1 | 1 |
|------------------------------------
|Test | 2 | 2 |
|------------------------------------
|Test1 | 1 | 2 |
|------------------------------------
Le problème est que la requête que j'utilise me retourne un tableau vide....
$resultats=$bdd->query("SELECT nom, type,COUNT(*) FROM candidatures_tracker WHERE statut = 0 GROUP BY nom, type");
$resultats->FetchAll;
print($resultat);
Donc je viens à vous pour savoir comment formuler la requête pour obtenir le résultat voulu.
Merci à vous
A voir également:
- Requete : COUNT, WHERE, GROUP_BY
- Erreur de requete facebook - Forum Facebook
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ✓ - Forum Java
- L'opérateur ou l'administrateur a refusé la requête ✓ - Forum Windows
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ? ✓ - Forum Loisirs / Divertissements
- Difficulté avec requête SQLite ✓ - Forum Android
3 réponses
Bonjour,
Même si je ne pratique pas mysql, la syntaxe me semble correcte.
Pour vérifier le mieux c'est d’exécuter la requête dans sqladmin directement, pour voir si le problème vient du select lui même, ou de son traitement, ou syntaxe, dans php.
cdlt
Même si je ne pratique pas mysql, la syntaxe me semble correcte.
Pour vérifier le mieux c'est d’exécuter la requête dans sqladmin directement, pour voir si le problème vient du select lui même, ou de son traitement, ou syntaxe, dans php.
cdlt
jee pee
Messages postés
42386
Statut
Modérateur
9 739
si pb php c'est peut être qu'il faille un alias au count(*) :
Exileur
Messages postés
1621
Statut
Membre
150
J'ai tester directement dans phpmyadmin, le champ type posait probléme.
Salut,
(je ne vais pas répondre à la question mais je voulais te féliciter sur la manière dont tu as posé la question, c'est très clair...
Ca change des sujets avec 3 mots)
(je ne vais pas répondre à la question mais je voulais te féliciter sur la manière dont tu as posé la question, c'est très clair...
Ca change des sujets avec 3 mots)
Bonjour
La requête a l'air correcte et l'alias sur COUNT n'est absolument pas obligatoire.
Par contre, ton php pour afficher le résultat est complètement faux, c'est étonnant que tu n'aies pas de message d'erreur. C'est probablement que l'affichage des erreurs est masqué.
De plus, si tu veux utiliser le résultat de cet appel, il faut l'affecter à une variable : c'est donc
Enfin, le $resultat obtenu étant un array, avec
La requête a l'air correcte et l'alias sur COUNT n'est absolument pas obligatoire.
Par contre, ton php pour afficher le résultat est complètement faux, c'est étonnant que tu n'aies pas de message d'erreur. C'est probablement que l'affichage des erreurs est masqué.
$resultats->FetchAll;est incorrect. Il faut des parenthèses pour appeler une fonction :
$resultats->FetchAll();.
De plus, si tu veux utiliser le résultat de cet appel, il faut l'affecter à une variable : c'est donc
$resultat = $resultats->FetchAll();.
Enfin, le $resultat obtenu étant un array, avec
print ($resultat);tu vas simplement afficher le mot "Array". Il faut faire une boucle pour imprimer chaque ligne du résultat, ou utiliser print_r ou var_dump.
Merci de ta réponse, après avoir changer le nom du champ type et effectué, j'ai suivi tes instructions. Voila la requête :
Merci de vos réponses :)
ps: j'avais pas d'erreurs car en plus du print, j'avais :
Sans S sur le print.
Sinon les erreurs sont bien activées :)
$resultats=$bdd->query("SELECT nom, type32,COUNT(*) FROM candidatures_tracker WHERE statut = 0 GROUP BY nom, type32");
$resultat = $resultats->FetchAll();
print_r($resultat);
Merci de vos réponses :)
ps: j'avais pas d'erreurs car en plus du print, j'avais :
$resultats->FetchAll();
print ($resultat);
Sans S sur le print.
Sinon les erreurs sont bien activées :)