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

Langage SQL Discussion :

Critère et timestamp


Sujet :

Langage SQL

  1. #1
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2007
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2007
    Messages : 290
    Points : 209
    Points
    209
    Par défaut Critère et timestamp
    Bonsoir,

    Je rencontre un petit soucis; je n'arrive pas a écrir une requete sql qui dit :
    Selectionne tout de table quand l'année est 2009 et le mois est $array[x]

    Ca n'a pas l'air compliqué, mais en faite les seuls champs de recherche que je dispose sont des timestamp.

    J'ai donc commencé ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     include '../../includes/connect_inc.php';
     $annee_en_cour = mktime(0,0,0,0,0,date(Y));
     $ann_sui = date(Y) +1 ;
     $annee_suivante = mktime(0,0,0,0,0,$ann_sui);
     
     $requete = mysql_query("SELECT COUNT(*) AS rdv FROM woof_agenda WHERE timestamp > ".$annee_en_cours." AND timestamp < ".$annee_suivante." AND ? ");
     $retour = mysql_fetch_array($requete)or die(mysql_error());
    Est ce vraiment possible ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Bonjour,

    Tu peux aussi extraire l'année et le mois de ta date, ce sera sans doute plus simple pour tes conditions, regarde du coté de la fonction EXTRACT :
    http://dev.mysql.com/doc/refman/5.0/...functions.html

  3. #3
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2007
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2007
    Messages : 290
    Points : 209
    Points
    209
    Par défaut
    Merci, mais je ne voi pas comment appliquer cette fonction dans ma requete si je n'ai pas la valeur du timestamp prédéfini. :s

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Que voulez vous dire par 'timestamp prédéfini'?
    Vous pouvez faire quelque chose de ce gout là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE EXTRACT(YEAR FROM timestamp) = ".$annee_en_cours." AND EXTRACT(MONTH FROM timestamp) = ".$mois_en_cours."
    Je n'ai jamais utilisé MySQL, quelqu'un de plus expérimenté pourra peut etre confirmer, ou non

  5. #5
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2007
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2007
    Messages : 290
    Points : 209
    Points
    209
    Par défaut
    Ha d'accord, je n'aurai pas su l'appliquer tout seul. Je vais essayer merci

  6. #6
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2007
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2007
    Messages : 290
    Points : 209
    Points
    209
    Par défaut
    Apres une recherche, la commande a l'air d'être correct, mais j'ai toujours un retour 0
    Voici mon petit bou de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     //je fait une boucle pour générer les résultats par mois
      for($i = 0 ; $i < 12 ; $i++)
      {
     $mois = sprintf("%02d",$i + 1);
     $annee_en_cours = date(Y);
     
    //Pour vérifier
    echo "SELECT COUNT(*) AS nbr FROM woof_agenda WHERE EXTRACT(YEAR FROM timestamp) = ".$annee_en_cours." AND EXTRACT(MONTH FROM timestamp) = ".$mois."<br />";
     
     $requete = mysql_query("SELECT COUNT(*) AS nbr FROM woof_agenda WHERE EXTRACT(YEAR FROM timestamp) = ".$annee_en_cours." AND EXTRACT(MONTH FROM timestamp) = ".$mois."");
     $retour = mysql_fetch_array($requete);
     echo $retour['nbr']; 
    }

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Sans la structure de votre table et un extrait de ce qu'elle contient, il sera difficile de vous aider.

  8. #8
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2007
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2007
    Messages : 290
    Points : 209
    Points
    209
    Par défaut
    Visiblement ca ne marche pas avec les timestamps unix
    J'ai finalement crée un champ date de type TIMESTAMP, fonction NOW et ayant une valeur par defaut CURRENT_TIMESTAMP.
    Ca m'affiche les valeurs correct pour utiliser EXTRACT() (aaa-mm-jj hh:mm:ss).

    Merci de m'avoir fait découvrir cette fonction très pratique !

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

Discussions similaires

  1. requête multi-critère timestamp
    Par pp_le_moko dans le forum Débuter
    Réponses: 1
    Dernier message: 22/01/2010, 12h21
  2. [MySQL] requête multi-critère timestamp
    Par pp_le_moko dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 22/01/2010, 10h59
  3. [MySQL] Utiliser le timestamp comme critère
    Par Jimmy Monkey dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/12/2007, 09h29
  4. Pb de critère dans sql
    Par Mr.Gus dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/09/2003, 07h58
  5. Selection sans critères pour un publipostage
    Par Johnjohn dans le forum Access
    Réponses: 23
    Dernier message: 17/06/2003, 11h51

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