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

PHP & Base de données Discussion :

recherche par mois [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut recherche par mois
    bonjour tous le monde

    voila, j'ai actuellement un champs ou je mets le timestamp....

    bon bah voila, maintenant je voudrais selectionner tous les timestamps qui correpondent au mois actuel -genre je suis en decembre, si je clique sur le bouton, hop! ca selectionne tous les timestamp qui appartiennent au mois....


    comment faire ca siouplais? merci

  2. #2
    Membre chevronné Avatar de SphynXz
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 439
    Par défaut
    tu peux ajouter cette clause

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE MONTH(ton_champ_timestamp) = MONTH(NOW())

  3. #3
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    ha?

    je connaissais pas


    bon bah merci beaucoup je m'en servirais c est exactement ce que je veux!

    a bientot

  4. #4
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    ha bah oui mais non!

    quand je fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $month=mysql_query("SELECT * FROM service s, clients c 
    WHERE c.id=s.id_user AND
     s.MONTH(date_relance_service) = MONTH(NOW())  
    AND c.commercial='$commercial'");
    $mont=mysql_num_rows($month);
    et bah boum! ca donne ceci :



    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ...


    pourquoi siouplais?

  5. #5
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    salut,

    comme ceci, ca devrait mieux fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * FROM service s, clients c 
    WHERE c.id=s.id_user AND
    MONTH(s.date_relance_service) = MONTH(NOW())  
    AND c.commercial='$commercial'

  6. #6
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut


    merci beaucoup!

    mais ca marche pourtant pas!

    j'ai 2 timestamp dans mon champs, qui correspondent a deux dates :
    20/10/2008 et 30/10/2009

    pourtant quand je fais ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $month=mysql_query("SELECT * FROM service
     WHERE MONTH(date_relance_service) = MONTH(NOW())  ")or die(mysql_error());
    $mont=mysql_num_rows($month);
    echo "num".$mont;
    ben ca me donne 0.....

    pourquoi siouplais???

  7. #7
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    salut,

    as tu essayé de lancer la requête directement sous mysql pour voir si elle te retournais les 2 résultats que tu attends?

    ps : le die est à mettre avec le mysql_query()

  8. #8
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    ^^ oui, et pareil, la requete me renvoie 0 resultat...

    mais normalement j'ai un timestamp en octobre 2008 dans date_relance_service ! (la valeur est 1224453600)


    mais alors...pourquoi?

  9. #9
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Bonjour,

    C'est parce que la fonction MONTH prend un format DATE en paramètre.
    Je crois que ca ne fonctionne pas avec les TIMESTAMP.

    C'est moins élégant, mais tu peux faire le tri en php, avec la fonction date().


    Gillou.

  10. #10
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    ha?


    bon dsl je croyais que ca marchait aussi avec le timestamp

  11. #11
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    ouais alors finalement j'ai trouvé ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MONTH(FROM_UNIXTIME(s.date_relance_service)) = MONTH(CURDATE())
    probleme : ca me selectionne le mois actuel -octobre- mais de n'importe quelle annee...moi je voudrais que ca selectionne seulement le mois actuel de l'annee actuelle, pas le mois actuelle de n'importe quelle annee....



    comment faire siouplais ???


  12. #12
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    tu as la fonction YEAR en SQL, qui fonctionne comme MONTH, mais qui donne l'année.

  13. #13
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut


    merci!

    mais heuuu....

    le probleme c est que quand je fais ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM service WHERE  MONTH(FROM_UNIXTIME(date_relance_service)) = YEAR(MONTH(CURDATE()))
    bah ca marche pas

  14. #14
    Membre très actif
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Par défaut
    On compare pas les mois avec les année
    Cordialement !

  15. #15
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut


    oui dsl....

    mais je vois pas trop la "synthaxe" a avoir....

    je suis un gros noob, je sais, mais quelle est la bonne synthaxe a avoir pour avoir le mois actuel de l'annee actuelle siouplais??

  16. #16
    Membre très actif
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Par défaut Fais des essays
    Il faut faire des essais avant de passer a la requette et bien comprendre ce que fait chaque fonction, c'est un conseil. car on ne peut pas mettre des fonctions dans des requettes sans savoir exectement ce qu'ellent font.
    essai les requettes suivante une a une :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT SYSDATE(SYSTIME());
    SELECT SYSTIME();
    SELECT MONTH(SYSDATE());
    SELECT YEAR(SYSDATE());
    Certaine ne peuvent pas marcher je suppose
    Ensuite tu peux suivre le lien pour plus d'information
    http://dev.mysql.com/doc/refman/5.0/...ime-types.html
    cordialement

  17. #17
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    un truc comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT * FROM service 
    WHERE MONTH(FROM_UNIXTIME(date_relance_service)) = MONTH(CURDATE())
    AND 
    YEAR(FROM_UNIXTIME(date_relance_service)) = YEAR(CURDATE());
    Gillou.

  18. #18
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    MERCI BEAUCOUP TOUS LES QUATRE

    maintenant ca marche impecc et je comprends (mieux) le principe!


    super, ca fait plaisir d'etre debloqué


    allez, au prochain bug!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche par mois sur plusieurs années
    Par meteor26 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/02/2013, 20h55
  2. [XL-2010] Recherche par mois
    Par webce dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/11/2012, 01h54
  3. requête sql pour recherche par mois
    Par mahboubi dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/01/2009, 09h05
  4. [MySQL] Recherche date par mois OU année
    Par Korias dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/07/2008, 13h46
  5. Recherche par mois précédent dans formulaire
    Par Alexandr dans le forum Access
    Réponses: 13
    Dernier message: 07/09/2006, 17h19

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