Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/09/2011, 09h42   #1
Invité de passage
 
Homme
Webmaster
Inscription : septembre 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Webmaster
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2011
Messages : 17
Points : 0
Points : 0
Par défaut REQUETE SELECT COUNT (*)

Bonjour,

J'ai une table nommée activity avec les colonnes suivantes : ID, sujet, type, due_date.
Je souhaite obtenir un comptage de ligne spécifique selon le type et la date en affichant le sujet et la date.

Voila ce que j'ai fait :

*************************************
Code :
1
2
3
4
5
6
7
8
9
$q = "
  SELECT COUNT(*) as inf 
  FROM activity
     WHERE (type=’Information’ OR ‘Meeting’)
       AND due_date >= '".$startdate_en."' 
       AND due_date <= '".$enddate_en."' 
 $db->query($q);
$db->next_record();
$inf = $db->f("inf");
**************************************

Qu'en pensez-vous ? Visiblement ça ne fonctionne pas.

Merci d'avance pour votre aide,

Colobe
colobe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 10h18   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 327
Points : 18 327
Envoyer un message via MSN à CinePhil
Il y a plusieurs erreurs ; si tu indentais correctement ton code comme je l'ai fait, tu t'en serais aperçu !

D'abord dans la requête, puisqu'on est sur le forum MySQL.
Ce n'est pas ceci qu'il faut écrire :
Citation:
Code :
WHERE (type=’Information’ OR ‘Meeting’)
mais cela :
Code :
WHERE (type = ’Information’ OR type = ‘Meeting’)
Ensuite dans le code php, il manque un point-virgule à la fin de la définition de ta requête
Code PHP :
1
2
3
4
5
6
7
8
9
$q = "
  SELECT COUNT(*) as inf 
  FROM activity
     WHERE (type = ’Information’ OR type = ‘Meeting’)
       AND due_date >= '".$startdate_en."' 
       AND due_date <= '".$enddate_en."' ";
$db->query($q);
$db->next_record();
$inf = $db->f("inf");
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 10h52   #3
Invité de passage
 
Homme
Webmaster
Inscription : septembre 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Webmaster
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2011
Messages : 17
Points : 0
Points : 0
Merci pour ces précisions.

Du coup, me voila avec le code suivant :

Code :
1
2
3
4
5
6
7
$q = " SELECT COUNT(*) as inf FROM activity
     WHERE (type= ’Information’ OR type = ‘Meeting’)
     AND due_date >= '".$startdate_en."' 
     AND due_date <= '".$enddate_en."'";
$db->query($q);
$db->next_record();
$inf = $db->f("inf");
Mais il ne fonctionne toujours pas.
Je vais chercher du côté du "as inf" je pense...
colobe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 11h21   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 327
Points : 18 327
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par colobe Voir le message
Mais il ne fonctionne toujours pas.
Quel symptôme ?
- mauvais résultat ?
- pas de résultat ?
- message d'erreur ?

Essaie de faire un echo de la requête avant envoi au serveur pour vérifier que les variables de dates sont bien alimentées et essaie la requête directement dans MySQL.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 11h27   #5
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Code :
WHERE (type= ’Information’ OR type = ‘Meeting’)

Code :
WHERE (type= 'Information' OR type = 'Meeting')
Attention au type d'apostrophe utilisé ..
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 11h33   #6
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 327
Points : 18 327
Envoyer un message via MSN à CinePhil
Exact ! Je ne les avais pas vues ces saloperies d'apostrophes inversées !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 12h08   #7
Invité de passage
 
Homme
Webmaster
Inscription : septembre 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Webmaster
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2011
Messages : 17
Points : 0
Points : 0
Bon, j'avance en même temps que vos réponses, c'est cool.
Effectivement, il y avait un problème d'apostrophes. J'ai aussi modifié un peu mon code.

Code :
1
2
3
4
5
6
7
$q = " SELECT COUNT(*) as inf FROM activity
     WHERE type LIKE 'Information' OR type LIKE 'Meeting'
     AND due_date >= '".$startdate_en."' 
     AND due_date <= '".$enddate_en."' ";
$db->query($q);
$db->next_record();
$inf = $db->f("inf");
Ce code ci-fonctionne, il me retourne bien la valeur.
colobe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 12h30   #8
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 327
Points : 18 327
Envoyer un message via MSN à CinePhil
L'utilisation de LIKE n'a de sens qu'avec un caractère générique %.
LIKE 'Information' <=> = 'Information' !
Autant utiliser = !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 12h39   #9
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
Citation:
Envoyé par CinePhil Voir le message
L'utilisation de LIKE n'a de sens qu'avec un caractère générique %.
LIKE 'Information' <=> = 'Information' !
Autant utiliser = !
Sauf si sa valeur 'Information' est issue d'une interface client, autorisant l'utilisation du caractere '%' pour des recherches et que la, il fait un test unitaire (variable en dur)

Donc a voir en fonction de ses spécifications fonctionnelles
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h11.


 
 
 
 
Partenaires

Hébergement Web