IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

REQUETE SELECT COUNT (*)


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2011
    Messages
    19
    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 : 19
    Points : 6
    Points
    6
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE (type=’Information’ OR ‘Meeting’)
    mais cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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");

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2011
    Messages
    19
    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 : 19
    Points : 6
    Points
    6
    Par défaut
    Merci pour ces précisions.

    Du coup, me voila avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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...

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    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.

  5. #5
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 874
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 874
    Points : 16 272
    Points
    16 272
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE (type= ’Information’ OR type = ‘Meeting’)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE (type= 'Information' OR type = 'Meeting')
    Attention au type d'apostrophe utilisé ..

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Exact ! Je ne les avais pas vues ces saloperies d'apostrophes inversées !

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2011
    Messages
    19
    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 : 19
    Points : 6
    Points
    6
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  8. #8
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    L'utilisation de LIKE n'a de sens qu'avec un caractère générique %.
    LIKE 'Information' <=> = 'Information' !
    Autant utiliser = !

  9. #9
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    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

Discussions similaires

  1. Réponses: 11
    Dernier message: 26/09/2010, 10h14
  2. requet select count
    Par rezguiinfo dans le forum C#
    Réponses: 5
    Dernier message: 11/05/2010, 15h11
  3. Requete select count(*) avec having max()
    Par Goupo dans le forum Langage SQL
    Réponses: 10
    Dernier message: 09/03/2009, 12h50
  4. erreur requete select count
    Par offspring dans le forum C#
    Réponses: 14
    Dernier message: 16/05/2008, 19h36
  5. Requete SELECT Count(x)/Count(y)
    Par ahage4x4 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 21/06/2006, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo