Partage
  • Partager sur Facebook
  • Partager sur Twitter

Requête affichant les résultats après la date du jour

Sujet résolu
    23 juillet 2010 à 9:47:19

    Bonjour à tous,

    J'ai un petit soucis que je n'arrive pas à résoudre.

    En effet je souhaite afficher tous les résultas ayant leur date supèrieur ou égal à la date du jour.
    Le champ date de ma bdd est de type VARCHAR(255) et donc la date est du style 10102010.

    Voici mon code :
    $requete1 = 'SELECT * FROM '.$row[2].' WHERE date >= "'.date("dmY").'"';
    $result1 = mysql_query($requete1) or mysql_die();
    			
    $nombre = mysql_num_rows($result1);
    							
    if($nombre == 0)
    {
         echo 'Il n\'y a aucune formation';
    }
    else
    {
         echo 'Retourne les formations sous un tableau';
    }
    


    Peu importe les entrées que je met dans ma BDD je tombe dans 'Il n'y aucune formation' :S

    J'ai quand même remarqué un truc, c'est qu'enfaite la comparaison ne se fait qu'avec les deux premiers caractères de date("dmY").
    En effet si dans ma bdd j'ai un champ 10102010 et que la date du jour est 01109010 alors j'aurai le résultat d'afficher mais si j'ai 11092010, le résultat ne s'affichera pas !

    Voilà je n'ai jamais encore eu ce problème et je ne trouve de solution nulle part.

    Merci d'avance.

    Edit :
    Bon j'ai trouvé moi même une solution, j'ai mis mon champ de la bdd en type date, j'ai donc mes entrées écrites de cette manière : XXXX/XX/XX et dans ma requête j'ai mis date("Y/m/d").
    La comparaison à l'air de fonctionner, mais j'aurai quand même voulu savoir d'où venez mon précèdent problème ^^
    • Partager sur Facebook
    • Partager sur Twitter
      23 juillet 2010 à 10:49:37

      La raison est simple. en varchar, il compare les chaine
      Tu avais choisi un format de la date jjmmyyyy ce qui est un mauvais choix car comme ton exemple ça pose problème

      En effet, il compare la chaine 10102010 à 11092010 et comme "10" <"11", il ne trouve pas le résultat
      Tu aurai adopter un format de type yyyymmjj ça serai passé en revanche
      C'est pour cela d'ailleurs que le type date a ce genre de format
      • Partager sur Facebook
      • Partager sur Twitter
        23 juillet 2010 à 10:55:09

        Edit : grilled. Voilà tout est dit !
        D'ailleurs varchar ou nombre, le résultat aurait été le même.
        • Partager sur Facebook
        • Partager sur Twitter
          23 juillet 2010 à 15:05:48

          Ok merci pour vos réponses ;)
          • Partager sur Facebook
          • Partager sur Twitter

          Requête affichant les résultats après la date du jour

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown