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 :

Tri sur les dates [MySQL]


Sujet :

PHP & Base de données

  1. #21
    Membre chevronné Avatar de deY!
    Inscrit en
    Avril 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2006
    Messages : 403
    Par défaut
    Citation Envoyé par urbalk
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = "SELECT id, titre,datevent,proprio,messaG,heure,date, DATE_FORMAT(date,'%d/%m/%Y') as datevent,date
    Elle est bizarre ta requête pourquoi tu repetes plusiseurs fois les champs ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT id, titre,DATE_FORMAT(datevent,'%d/%m/%Y') as datevent,proprio,messaG,heure,DATE_FORMAT(date,'%d/%m/%Y') as date
    suffit non ?
    tu pourras effectuer ton ORDER BY sur date et datevent sans probléme puisqu'il s'effectuer avant, le DATE_FORMAT n'est qu'une presentation différente.

  2. #22
    Membre confirmé Avatar de urbalk
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 135
    Par défaut
    Je savais qu'il est possible de repeter plusieurs fois une même 'commande' (DATE_FORMAT) dans une requête.
    je te remercie d'avoir résolu mon pb, d'avoir passer du temps pour me répondre.
    J'ai tout de même compris beaucoup de choses dans ce topic.

    reste 3 pb.

    bon week-end.

    merci

  3. #23
    Membre chevronné Avatar de deY!
    Inscrit en
    Avril 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2006
    Messages : 403
    Par défaut
    C'est quoi tes problémes ?

    Au faite, solutionner c'est pas française, on dit résoudre... soit dans la phrase "résolu".

  4. #24
    Membre confirmé Avatar de urbalk
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 135
    Par défaut
    j'ai résolu de cette mannière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = "SELECT id, titre,DATE_FORMAT(datevent,'%d/%m/%Y') as datevent,proprio,messaG,heure,DATE_FORMAT(date,'%d/%m/%Y') as date FROM message WHERE datevent LIKE '%2007-01%' ORDER BY datevent DESC";
    me reste plus qu'à afficher seulement les enregistrements postérieurs à la date du jour.

  5. #25
    Membre chevronné Avatar de deY!
    Inscrit en
    Avril 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2006
    Messages : 403
    Par défaut
    Tu peux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [...]WHERE datevent < CURDATE()[...]

  6. #26
    Membre confirmé Avatar de urbalk
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 135
    Par défaut
    juste en passant, CURDATE () fonctionne au format US ???
    si c'est le cas, il faut que dans mon script, je convertisse la date qui est retournée au format Fr, au format US

    j'ai fais un essais en placant CURDATE là ou te me le recommande et bin ca vas pô

    a+

  7. #27
    Membre chevronné Avatar de deY!
    Inscrit en
    Avril 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2006
    Messages : 403
    Par défaut
    Avec l'interface PhpMyAdmin fournit avec EasyPhp et la version 4.1.9 de MySql.

    J'ai crée la table

    tabledetest (id, date, datetime, timestamp, desc);

    le nom des champs indique leur type.

    J'ai insérer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    1  	2007-03-20  	2007-03-20 09:42:37  	2007-03-20 09:42:37  	(vide) 
    2 	1993-03-16 	2017-03-10 00:00:00 	2007-03-20 09:43:09 	 (vide)
    j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id, DATE_FORMAT(date, '%d/%m/%Y') as date FROM `tabledetest` WHERE date < CURDATE();
    Je récupére
    Donc chez moi ça fonctionne.
    Puisque j'ai indiqué < et non <= (strictement inférieur, et non inférieur ou égal).

  8. #28
    Membre confirmé Avatar de urbalk
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 135
    Par défaut
    C'est tres sympa de prendre de ton temps pour faire des tests MERCI

    C'est peu etre le LIKE qui mets la panik.je regarde tout ca se soir

    a+

  9. #29
    Membre chevronné Avatar de deY!
    Inscrit en
    Avril 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2006
    Messages : 403
    Par défaut
    Si tu cherches à récuperer les event du mois de Janvier par exemple, moi j'aurais plutot utilisé un BETWEEN

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE datevent BETWEEN #2007-01-01# AND #2007-01-31#
    Certes c'est un peu plus long, mais personnellement je trouve ça plus sûr.


    PS: Il n'y a pas de quoi.

  10. #30
    Membre confirmé Avatar de urbalk
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 135
    Par défaut
    Salut,

    Je m'explique un peu:

    avec cette requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = "SELECT id, DATE_FORMAT(date, '%d/%m/%Y') as date FROM `testcurdate` WHERE date < CURDATE()";
    1/ j'ai repris ton exemple avec la table 'tabletest', mot pour mot et champ pour champ sous Easyphp, CA MARCHE
    2/ j'ai dropper le table sur mon serveur (SME-Server 7 à jours) CA MARCHE

    3/ j'ai insérer dans ma table (celle ou doit fonctionner la requete) un champ TIMESTAMP j'ai mis a jours manuellement ce champs avec la date du jour de post qui correspont a mon champs 'date'.j'ai adapté ma requette de cette manniere:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = "SELECT id, titre,DATE_FORMAT(datevent,'%d/%m/%Y') as datevent,proprio,messaG,heure,DATE_FORMAT(date,'%d/%m/%Y') as date FROM message WHERE datevent < CURDATE() BETWEEN '2007-03-01' AND '2007-03-31' ORDER BY datevent DESC ";
    et bien CA NE MARCHE PAS !!! (je n ai plus de cheveux)... la requete ne renvoi rien. j'ai aussi essayer d'inversé le signe <> c'est pareil, renvoi vide...

    Est-il possible que tu jete un oeil à ma table et mon fichier php ???

    Désolé de te demander je ne voudrais pas que tu pense que je ne me casse pas la tete ce N EST PAS le cas sur cette connerie de date j'ai passé deja 8 heures

    merci

  11. #31
    Membre chevronné Avatar de deY!
    Inscrit en
    Avril 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2006
    Messages : 403
    Par défaut
    Ton BETWEEN ne va pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WHERE datevent < CURDATE()
    AND datevent BETWEEN '2007-03-01' AND '2007-03-31'
    Concretement tu demandes à selectionner les messages du mois de mars qui sont "depassé", sauf si je comprend mal ta requête. Je me demande si ça ne serait pas plus simple de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE datevent BETWEEN '2007-03-01' AND CURDATE()
    Mais je ne suis pas sur que cette syntaxe fonctionne.

  12. #32
    Membre confirmé Avatar de urbalk
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 135
    Par défaut
    Salut

    messages du mois de mars qui sont "depassé", sauf si

    non, je cherche à afficher les messages restant a venir

    ex: dans ma db j'ai des messages pour le 10-03; 12-03; 25-03; 30-03; nous sommes le 20 je voudrais afficher les messages restant depuis cette date mais en inversant '<>' ca fonctionne.

    PS : je viens juste de c/c ta requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE datevent BETWEEN '2007-03-01' AND CURDATE()
    dans mon code celle-ci affiche les enregistrement AVANT la date du jour...

    a+

  13. #33
    Membre chevronné Avatar de deY!
    Inscrit en
    Avril 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2006
    Messages : 403
    Par défaut
    D'accord j'avais donc mal compris l'utilité de ta requête.
    Il faut donc que tu fasses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE datevent BETWEEN CURDATE() AND '2007-03-31'

  14. #34
    Membre confirmé Avatar de urbalk
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 135
    Par défaut
    Yes !!!

    MERCI.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Tri sur les dates
    Par Aurazed dans le forum Langage SQL
    Réponses: 6
    Dernier message: 12/06/2007, 10h02
  2. [BATCH] Tri sur les dates de fichiers
    Par tonf dans le forum Windows
    Réponses: 1
    Dernier message: 26/04/2007, 16h25
  3. Problème de tri sur les dates par année puis mois
    Par rob2-9 dans le forum Access
    Réponses: 26
    Dernier message: 11/08/2006, 11h04
  4. [Dates] tri sur les dates
    Par udta5371 dans le forum Langage
    Réponses: 5
    Dernier message: 13/07/2006, 21h49
  5. Tri sur les dates
    Par ShadoX dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 08/06/2006, 11h58

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