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 :

Plage de date [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Full Stack
    Inscrit en
    Mai 2010
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mai 2010
    Messages : 159
    Par défaut Plage de date
    Bonjour à tous.

    Voila je rencontre un problème de sélection d'articles dans mysql.

    j'ai 2 tables. Une article avec id_article, titre, contenu... et une qui est affichage avec id, id_article, date_debut, date_fin.

    dans affichage je ne peux pas avoir un article qui soit contenu 2 fois dans les même date:
    exemple: article1 date_debut: 19/03/2012 date fin:30/03/2012
    article1 date_debut: 29/03/2012 date_fin: 07/04/2012 (ça devrait être impossible car le 29 et le 30 il est déjà publié)

    comment faire ce contrôle?

    Merci.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    fait un GROUP BY date_debut

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Full Stack
    Inscrit en
    Mai 2010
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mai 2010
    Messages : 159
    Par défaut
    en fait ma requête est celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM article WHERE id = '17' AND id NOT IN (SELECT article_id FROM affiche WHERE date_fin > $_POST['date_debut'])
    Mais ça me sort les enregistrement qui peuvent se trouver plusieurs mois après donc c'est pas bon, je dois rester dans la plage des dates de début et de fin

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    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 814
    Billets dans le blog
    14
    Par défaut
    Euh... GROUP BY ? Pas sûr que ça aide beaucoup !

    Franck, tu veux vérifier s'il existe déjà une ligne dans la table affichage pour laquelle la période que tu veux publier se chevauche avec la période déjà enregistrée.

    Soit la période enregistrée définie par la date de début D1 et la date de fin F1.
    Soit la période à enregistrer définie par la date de début D2 et la date de fin F2.

    Les deux périodes se chevauchent si l'une de ces condition est remplie :
    1) D1 <= F2 <= F1 : F2 BETWEEN D1 AND F1
    2) D1 <= D2 <= F1 : D2 BETWEEN D1 AND F1
    3) D2 <= D1 <= F1 <= F2 : D2 <= D1 AND F1 <= D2

    Il te suffit de mettre ces conditions dans le WHERE de la requête de vérification.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur Full Stack
    Inscrit en
    Mai 2010
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mai 2010
    Messages : 159
    Par défaut
    Super ça fonctionne comme ça.

    Merci

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

Discussions similaires

  1. Recherche plage de dates
    Par KEROZEN dans le forum Access
    Réponses: 3
    Dernier message: 19/04/2006, 14h49
  2. [SQL Server 8] Trouver une plage de date
    Par Baquardie dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/04/2006, 19h30
  3. [CR]Aide sur les fonction de date et plage de date.
    Par Job dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 08/11/2005, 09h19
  4. [date] Recherche dans une plage de dates
    Par astro84 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/06/2005, 17h13
  5. Sélection d'une plage de dates
    Par Bouanda dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/10/2004, 20h27

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