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 :

Requête qui ne passe pas [ODBC]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de tom06440
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Points : 102
    Points
    102
    Par défaut Requête qui ne passe pas
    Bonjour,

    J'ai un gros soucis de requete ODBC
    Lorsque je fais ma requete avec une variable $VAR elle ne passe pas
    Par contre si je remplacer $VAR par une valeur de test ça passe
    J'ai effectué un echo de $VAR et ça me donne bien une valeur correcte

    Requete qui ne passe pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    odbc_exec($connexion,"SELECT * FROM client WHERE NumClient='".$VAR."'")
    Requete qui passe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    odbc_exec($connexion,"SELECT * FROM client WHERE NumClient='MA_VALEUR'")
    Est-ce un réglage de PHP qui serait mal effectué ?

    Merci de votre aide

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Et ca dit quoi quand ca ne passe pas ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier Avatar de tom06440
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Points : 102
    Points
    102
    Par défaut
    Ben justement un echo de ma requete qui ne passe pas ne renvoit rien ...

  4. #4
    Membre régulier Avatar de tom06440
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Points : 102
    Points
    102
    Par défaut
    j'ai utilisé odbc_result_all() par dessus mon odbc_exec

    sur la requete qui ne passe pas j'ai une page vide
    et sur l'autre ça m'affiche bien les résultats de la requete

  5. #5
    Membre régulier Avatar de tom06440
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Points : 102
    Points
    102
    Par défaut
    Après un " echo odbc_error() " ça me donne le code erreur 01000 lorsque la requete ne marche pas ...

    Mais je ne comprend toujours pas pourquoi elle ne marche pas avec une variable

  6. #6
    Invité
    Invité(e)
    Par défaut
    Salut,

    quel est le type du champ NumClient dans ta base de données?

  7. #7
    Membre régulier Avatar de tom06440
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Points : 102
    Points
    102
    Par défaut
    C'est un champ unicode en 6 caractères et clé unique (Base HyperFile de chez PCSoft)

    Le truc c'est que je ne comprend pas pourquoi si je donne la valeur à rechercher à la main ça marche et pas quand ça provient d'une variable ...

  8. #8
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    un peu de debug :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql = "SELECT * FROM client WHERE NumClient='".$VAR."'";
    echo $sql;
    odbc_exec($connexion,$sql)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre régulier Avatar de tom06440
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Points : 102
    Points
    102
    Par défaut
    j'y avais pensé et le echo de $sql me renvoit bien une requete correcte

  10. #10
    Membre régulier
    Homme Profil pro
    PLM IT Consultant
    Inscrit en
    Novembre 2003
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : PLM IT Consultant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 202
    Points : 86
    Points
    86
    Par défaut
    Hello,

    ceci pourrait peut-être t'aider.

    C'est une requête (qui fonctionne) sur le site que je réalise.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "SELECT ID, device_type FROM glpi_computer_device WHERE FK_computers = '$ID' GROUP BY device_type ORDER BY device_type, ID";
    tu remarquera qu'il n'y a pas de concaténation!

    Essaye comme cela.
    "Qu'est-ce qui est venu le premier à la vie? Le compilateur ou le code source"

  11. #11
    Membre régulier Avatar de tom06440
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Points : 102
    Points
    102
    Par défaut
    ça marche pas non plus ...

    j'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    odbc_exec($connexion,"SELECT * FROM client WHERE NumClient='$VAR'")

  12. #12
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    montre nous tout ton code.

    ton test doit etre erroné, ce n'est pas possible que l'un passe mais pas l'autre.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre régulier Avatar de tom06440
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Points : 102
    Points
    102
    Par défaut
    Voila le morceau de code.
    La global $connexion fonctionne bien car si je retire [where...] dans ma requete ça m'affiche bien toute la base

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    function mot_passe_valide($mot_passe) {
     
    	GLOBAL $connexion;
     
    	$NumClient = $_SESSION['utilisateur']['NumClient'];
     
    	$Requete = "SELECT * FROM client where NumClient='".$NumClient."'";
     
    	$qid = odbc_exec($connexion,$Requete);
     
    	if( odbc_num_rows($qid)==0 ){ return false; }
    	$res = odbc_fetch_array($qid);
    	if($res['mot_passe']!=md5($mot_passe)){
    		return false;
    	} else {
    		return true;
    	}
    }
    Edit de ce matin, je viens de faire un test en remplissant $NumClient par une valeur du style "XXXX" à la place de $_SESSION... et ça marche
    Donc mon problème doit certainement venir de ma variable de session
    pourtant un echo de $_session['utilisateur']['NumClient'] me renvoit une valeur correcte, j'ai donc essayé un utf8_decode et utf8_encode mais rien n'y fait ...

  14. #14
    Membre régulier Avatar de tom06440
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Points : 102
    Points
    102
    Par défaut
    Bonsoir

    après d'autres tests les variables du style $_POST $_GET et $... passe ok avec ma requete, il n'y a que les données qui viennent à la base de $_session qui me font planter ma requete

    c'est à ni rien comprendre surtout que ma variable de session me renvoit une valeur correcte avec echo

  15. #15
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var_dump($_SESSION['utilisateur']['NumClient']);
    donne quoi comme résultat?

  16. #16
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 13
    Points : 14
    Points
    14
    Par défaut
    Salut,

    est ce que ta session est initialisée au debut avec un session_start();

    peut etre que ca doit etre ici ou ca bloque !!!

  17. #17
    Membre régulier Avatar de tom06440
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Points : 102
    Points
    102
    Par défaut
    Voici le résultat :
    string(6) "HER004"

    et non ma session est bien initialisée car mes valeurs semblent bonnes

  18. #18
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Moi je ferrais aussi un var_dump($connexion) parce que l'erreur que tu rencontres correspond à des problemes dans la connexion pour beaucoup de cas.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  19. #19
    Membre régulier Avatar de tom06440
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Points : 102
    Points
    102
    Par défaut
    Voila le var_dum($connexion) :

    resource(4) of type (odbc link)

  20. #20
    Membre régulier Avatar de tom06440
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Points : 102
    Points
    102
    Par défaut
    Je crois avoir trouvé ma solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $NumClient = urlencode($_SESSION['utilisateur']['NumClient']);
    $Requete = "SELECT mot_passe FROM client where NumClient='$NumClient'";
    odbc_exec($connexion,$Requete);
    Pour le moment ça fonctionne, je pense à un défaut d'encodage entre hyperfile et php, mais pourtant ça ne change rien à l'affichage de $NumClient

    Mais le principal ça fonctionne

    Merci @ tous pour votre aide et si quelqu'un à une idée de pourquoi ça marche comme ça il sera le bienvenue

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

Discussions similaires

  1. [MySQL] Requête SQL qui ne passe pas (UPDATE)
    Par ZeWiz dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/09/2014, 13h25
  2. [MySQL] Déboguer requête sql qui ne passe pas
    Par Kamoo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/02/2013, 11h09
  3. une requète qui ne passe pas
    Par JeanNoel53 dans le forum SQL
    Réponses: 0
    Dernier message: 14/12/2010, 10h47
  4. [MySQL] Requête qui ne passe pas
    Par kirian dans le forum Bases de données
    Réponses: 3
    Dernier message: 26/02/2007, 11h47
  5. Requête qui ne passe pas
    Par TheBart dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/08/2005, 10h12

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