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 :

Requête en utilisant WHERE (date) [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    Par défaut Requête en utilisant WHERE (date)
    Bonjour,

    Un petit code des visiteurs, sert a enregistrer l'IP, la date en timestamp,... je voudrais collecter les informations des visiteurs suivant une date:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    // un code ici
    // etc ...
     
    $yesterday = date('Y-m-d', strtotime('-1 day')); // determiner la date d'hier
     
    $selevv = 'SELECT * FROM visitors';
    $querycvv = mysql_query($selevv) OR DIE ('Unable to select IPs: '. $selectv.': '. mysql_error());
    while ($rowvv = mysql_fetch_array($querycvv))
    {
    	extract ($rowvv);
    	$simpleyear = date('Y', $whenv); // on extrcat l'annee suivant le timestamp (when)
    	$simplemonth = date('m', $whenv); // on extrcat le mois suivant le timestamp (when)
     
    }
     
    $selectv = 'SELECT * FROM visitors WHERE "'.$simplemonth.'" = "'.$Month.'"';
    echo $selectv.'<br><br>';
    $querycv = mysql_query($selectv) OR DIE ('Unable to select IPs: '. $selectv.': '. mysql_error());
    cette 2eme requete, utilisait afin de collecter les information d'une date X, par exemple, les donnees inserees dans la table sont:

    1, 127.0.0.1, 1286386423
    1, 127.0.0.1, 1286367567

    Je fais la premiere requete pour convertir les timestamp en mois et annees, et je fais la 2eme pour trouver le mois (annee) cherche, l'echo sur la 2eme requete me donne: SELECT * FROM visitors WHERE "12" = "12", mais l'affichage inclu meme les autres mois, alors que je voudrais juste avoir le mois 12.

    Merci pour votre aide

  2. #2
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    C'est normal que la requête
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM visitors WHERE "12" = "12"
    te renvoi toutes les lignes...

    Tu ne filtres sur aucun champ et 12 = 12 renverra toujours vrai.

    Il faut faire une requête du genre :
    - si ton champ 'champdate' est au format date :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM visitors WHERE MONTH(champdate) = 12

    - si ton champ 'champdate' contient des timestamps (ce qui semble etre ton cas) :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM visitors WHERE MONTH(FROM_UNIXTIME(champdate)) = 12

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    Par défaut
    voila la structure de la table:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    CREATE TABLE IF NOT EXISTS `visitors` (
      `id_vi` int(10) NOT NULL auto_increment,
      `ipv` varchar(40) collate utf8_unicode_ci NOT NULL,
      `whenv` varchar(40) collate utf8_unicode_ci NOT NULL,
      PRIMARY KEY  (`id_vi`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=7 ;
     
    --
    -- Contenu de la table `visitors`
    --
     
    INSERT INTO `visitors` (`id_vi`, `ipv`, `whenv`) VALUES
    (1, '127.0.0.1', '1258502591'),
    (2, '127.0.0.1', '1259654321'),
    (3, '127.0.0.1', '1259702591'),
    (4, '127.0.0.1', '1259702907'),
    (5, '127.0.0.1', '1259702931'),
    (6, '127.0.0.1', '1259702947');
    et le code utilise est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $Month = date('m', $DateTime);
    $selevv = 'SELECT * FROM visitors';
    $querycvv = mysql_query($selevv) OR DIE ('Unable to insert IPs: '. $selevv.': '. mysql_error());
    while ($rowvv = mysql_fetch_array($querycvv))
    {
    	extract ($rowvv);
    	//$simpleyear = date('Y', $whenv);
    	$simplemonth = date('m', $whenv);
     
     
    }
    $selectv = 'SELECT * FROM visitors WHERE "'.$simplemonth.'"(FROM_UNIXTIME(whenv)) = "'.$Month.'"';

  4. #4
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    La requête qui te permet d'obtenir la liste de tous tes "visitors" du mois de décembre :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM visitors WHERE MONTH(FROM_UNIXTIME(whenv)) = 12

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    Par défaut
    Citation Envoyé par Seb33300 Voir le message
    La requête qui te permet d'obtenir la liste de tous tes "visitors" du mois de décembre :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM visitors WHERE MONTH(FROM_UNIXTIME(whenv)) = 12
    J'ai utilise cette requete et ca marche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $selectv = "SELECT * FROM visitors WHERE MONTH(FROM_UNIXTIME(whenv)) = '$simplemonth'";
    Quelles sont les termes utilises comme MONTH afin d'obtenir les resultats suivants:

    + Un jour,
    + Une semaine,
    + Une annee,
    + Une heure, minute et secondes (hh:mm:ss),
    + Une date (Y-m-d hh:mm:ss).

    Et merci d'avance

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

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

Discussions similaires

  1. Utiliser WHERE IN sur le résultat d'une requête pivot
    Par nexuskmd dans le forum Requêtes
    Réponses: 4
    Dernier message: 14/12/2012, 12h46
  2. requête avec un where sur une date
    Par tibofo dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 06/02/2011, 20h58
  3. [AC-2003] Problème de requête sous access en utilisant les dates
    Par rana dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 05/03/2010, 10h44
  4. [Requête] Utiliser une date comme critère
    Par guyom_ dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 01/02/2007, 08h58
  5. Réponses: 3
    Dernier message: 08/08/2006, 15h15

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