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 :

Problème de variable dans instruction WHERE [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 27
    Par défaut Problème de variable dans instruction WHERE
    Bonjour,

    d'abord merci pour tout votre travail sur ce site.

    Au secours j'ai besoin d'un coup de main

    Voilà j'ai dans un panneau à onglets spry,

    j'ai un onglet pour filtrer des enregistrement pour la date du jour,
    dans un deuxième onglet je filtre les enregistrements pour le lendemain, ect sur 15 jours...

    j'ai un jeu d'enregistrement pour filtrer à la date du jour défini comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query_machines ="SELECT * FROM machines,clients WHERE clients.id=machines.client  AND date_livraison='$datejour' ORDER BY n_ordre ASC ";
    la variable $datejour au quel je fait référence est définie préalablement comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $datejour= date("d/m/Y");
    jusque-là tout vas bien.

    mais pour l'onglet du lendemain, rien ne vas plus.
    mon jeu d'enregistrement est défini comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query_machinesj2 = "SELECT * FROM machines,clients WHERE clients.id=machines.client AND date_livraison='$j2' ORDER BY n_ordre ASC ";
    la variable $j2 au quel je fais référence est définie préalablement comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $j2= date("d/m/Y", mktime (0,0,0,date("m" ) ,date("d" )+1,date("Y" )));
    Avant de poster sur le forum j'ai tenté de faire la requête dans phpMyAdmin en remplaçant $j2 par 19/08/2010 par exemple. ça fonctionne.

    J'ai fais un echo $j2 dans ma page ça fonctionne également

    (le champ date_livraison est défini en VARCHAR(10))

    d'après vous quel est mon erreur pour le filtre avec la variable $j2 ?

    Merci d'avoir eu la patience de me lire

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    le champ date_livraison est défini en VARCHAR(10)
    Ton erreur c'est ça.
    Les champs DATE sont fait pour ça et permette toutes les manipulations et calculs que ne permet pas le champ texte.

    Sinon tu devrais faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $query_machinesj2;
    pour voir quelle requête tu executes.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 27
    Par défaut ben ça alors...
    Merci d'avoir pris le temps de me lire sabotage .

    Je sais bien que stocker des dates sous ce format dans la base sql ce n'est pas conventionnel. Mais comme je ne sait pas trop comment faire pour que l'utilisateur entre une date au format d/m/Y dans un champ et qu'elle se stocke au format Y-m-d dans la base sql. J'ai opté pour cette alternative car je n'ai pas a priori besoin de faire de manipulations spécifiques sur les dates. (enfin je crois )

    Je suis preneur d'info sur le sujet bien-sûr , ça pourrais m'aider pour l'évolution de mon application je pense.

    Il me semble en revanche que pour retourner une date stokée dans la base au format Y-m-d je serais à peu près faire avec SELECT DATE_FORMAT dans ma requête.


    Enfin pour en revenir à cette histoire de dysfonctionnement de requête. Ce matin je ré-ouvre simplement mon navigateur (firefox) et ma page fonctionne comme je le désire avec la requête inchangée.

    J'avais jamais vu ça .

    merci pour ton aide je n'avais pas pensé à faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $query_machinesj2;
    ça me serviras sans doute dans le futur.

    Bonne journée .

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu as la fonction mysql STR_TO_DATE() pour convertir directement tes formats de date à l'insertion.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 27
    Par défaut je suis une triple buse...
    D'abord merci pour l'info sur la commande sql, je vais tester ça.

    Pour ce qui de mon bug j'ai trouvé l'explication.
    mon formulaire de saisie envoyait un texte (le nom complet du client) au lieu d'envoyer son id dans le champ prévu a cet effet. Donc résultat j'avais la valeur 0 dans la base de données.

    Les enregistrements que je voyait dans mon tableau filtré sont simplement ceux que javais rentré manuellement dans phpMyAdmin.

    Je fais amende honorable, le bug c'était moi .

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

Discussions similaires

  1. Problème de variable dans la clause WHERE avec CONVERT + DATE
    Par Archi89 dans le forum Développement
    Réponses: 4
    Dernier message: 09/01/2015, 20h35
  2. Réponses: 8
    Dernier message: 23/03/2006, 19h30
  3. problème de variable dans formulaire
    Par chienlou dans le forum Langage
    Réponses: 4
    Dernier message: 20/03/2006, 06h53
  4. Réponses: 9
    Dernier message: 05/07/2005, 08h37
  5. [VB.NET] [Débutant] Probléme de variable dans les requettes
    Par Silvia12 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 07/03/2005, 13h13

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