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 :

[SQL] Utilisation de between [Débutant(e)]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de innova
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 185
    Par défaut [SQL] Utilisation de between
    Bonjour,

    Si je veux par exemple afficher tous records correspondant à un mois précis :

    exemple : janvier 2007

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM news WHERE `date` BETWEEN '2007-01-01' AND '2007-01-31';

    Peut-on faire comme cela ?

    ps : si je remplace 2007-01 par $year-$month

    Est-ce que cela est possible et surtout correct ?

    Merci d'avance.
    ++

  2. #2
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    A priori ta syntaxe a l'air correcte (voir ce post )

    Donc je pense que ça ne devrait pas poser de problèmes d'utiliser $year-$month pour générer ta requête finale
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Je vous propose une solution entièrement gérée par MySQL :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM news WHERE MONTH(date) = MONTH(CURDATE()) AND YEAR(date) = YEAR(CURDATE());


    Julp.

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Il est préférable d'utiliser les fonctions year(nom_de_colonne)=annee et month(nom_de_colonne)=mois, le format par défaut des dates étant lié au paramétrage du SGBD (rien ne dit qu'il accèptera le format ISO)

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    J'oubliais, on peut aussi utiliser la forme :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from table where colonne_date between {d'2007-01-01'} and  {d'2007-01-31'}
    qui devrait passer partout...

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre éclairé Avatar de innova
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 185
    Par défaut
    Citation Envoyé par julp
    Je vous propose une solution entièrement gérée par MySQL :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM news WHERE MONTH(date) = MONTH(CURDATE()) AND YEAR(date) = YEAR(CURDATE());


    Julp.
    Bonjour,

    Comment faire lorsque je récupère le mois et l'année sous la forme de variables ?

    Dans ma db, j'ai un champ date_news de type date : 2007-01-01

    Dans mon script je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $today = getdate();
    $month = $taday['mon'];
    $year = $today['year'];
    $sql = 'SELECT * FROM news WHERE YEAR(date_news) = ' . $year . ' AND MONTH(date_news) = ' . $month;
    ca marche pas :-((((

    Comment faire ?

    MErci
    ++

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par innova
    ca marche pas :-((((
    Admettons ... Il serait bien plus simple pour nous de vous aider si nous avions la partie du code qui ne fonctionne pas et les messages d'erreur ou à défaut une description du comportement du script par rapport à celui que vous attendez !

    Voilà un code complet à adapter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    mysql_connect('localhost', 'root', '');
    mysql_select_db('ma_bdd');
     
    $query = mysql_query('SELECT * FROM news WHERE MONTH(date) = MONTH(CURDATE()) AND YEAR(date) = YEAR(CURDATE()) ORDER BY date DESC;') or die(mysql_error());
    while ($array = mysql_fetch_assoc($query)) {
        echo $array['date'] . ' : ' . $array['titre'] . '<br/>';
    }
     
    mysql_close();
    ?>

    Julp.

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

Discussions similaires

  1. Requete SQL : Utiliser 'AND' dans un DECODE
    Par LoulouFifi dans le forum Oracle
    Réponses: 2
    Dernier message: 02/12/2005, 09h26
  2. [forms]quel declencheur pl/sql utiliser?
    Par popov2 dans le forum PL/SQL
    Réponses: 3
    Dernier message: 30/08/2005, 11h19
  3. Pl/SQL utilisation d'une variable dans un select
    Par larg dans le forum PL/SQL
    Réponses: 17
    Dernier message: 30/11/2004, 17h08
  4. [PL/SQL] Utilisation table PL/SQL dans clause IN
    Par Yorglaa dans le forum PL/SQL
    Réponses: 13
    Dernier message: 05/10/2004, 10h36
  5. [sql][postgres] le between est 'il inclusif?
    Par globz dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 16/06/2004, 11h16

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