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 :

Acune erreur, et odbc_result ne retourne aucun resultat [SQL-Server]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    iut amiens
    Inscrit en
    Mai 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : iut amiens
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 43
    Points : 29
    Points
    29
    Par défaut Acune erreur, et odbc_result ne retourne aucun resultat
    Bonjour à tous,

    lorsque j'essaye d'exécuter ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $exec_uniteq=odbc_exec($connexion, "SELECT NumUniteQ FROM UniteQ WHERE nomUniteQ=$uniteq;"); // $uniteq est une chaine de charactère
    $result_uniteq=odbc_result($exec_uniteq, 'NumUniteQ'); // je récupère le résultat de la requête
    var_dump($result_uniteq); // le var_dump renvoie faux
    le var_dump renvoie un faux, alors que lorsque je fais la requête sous SQL server, il me renvoie bien un résultat.
    De plus toutes mes autres requêtes qui sont de la même forme marchent bien ...

    Là je sèche un peu..

    Merci de votre aide !

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    mets des guillemets simples autour de $uniteq -> '$uniteq'

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    iut amiens
    Inscrit en
    Mai 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : iut amiens
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 43
    Points : 29
    Points
    29
    Par défaut
    Les guillemets je les ai déjà mis avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $uniteq=$_POST['UniteQ']; //code qui marche pas
    $uniteq="'$uniteq'";
    echo''.$uniteq.'';
    $exec_uniteq=odbc_exec($connexion, "SELECT NumUniteQ FROM UniteQ WHERE nomUniteQ=$uniteq");
    $result_uniteq=odbc_result($exec_uniteq, 'NumUniteQ');
     
    //code qui marche
    $united=$_POST['UniteD']; //récupération de la valeur envoyé par le formulaire
    $united="'$united'"; // conversion en chaîne de charactère
    $exec_united=odbc_exec($connexion, "SELECT NumUniteD FROM UniteD WHERE nomUniteD=$united"); // requête
    $result_united=odbc_result($exec_united, 'NumUniteD'); // résultat de la requête

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    verifie quand même les erreurs
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Ben j'pouvais pas deviner non plus ^^

    Le problème est lié je pense aux valeurs prises par $uniteq.

    Essaies comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $stmt        = odbc_prepare($connexion, 'SELECT NumUniteQ FROM UniteQ WHERE nomUniteQ = ?');
    $exec_uniteq = odbc_exec($stmt, array($uniteq));

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    iut amiens
    Inscrit en
    Mai 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : iut amiens
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 43
    Points : 29
    Points
    29
    Par défaut
    Alors l'erreur odbc viens de plus loin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $exec_concerner=odbc_exec($connexion, "INSERT INTO Concerner(QuantiteEA, DureeEA, NumProduit, NumEA, NumUniteQ, NumUniteD)
                                                              VALUES($quantite, $duree, $result_produit, $result_numEA, $result_uniteq, $result_united)"); //ici c'est le $result_uniteq qui bug
    //étant donné que lorsque j'essaye de l'afficher il n'y a aucun résultat. Lorsque je le remplace par un '1' le script marche parfaitement.

    mais c'est à cause du du $result_uniteq qui est vide donc cette requête ne peux pas marcher.

    j'ai toute mes requêtes qui marchent sauf elle...

  7. #7
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    tu n'échappes jamais tes données avant de les persister ?

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    iut amiens
    Inscrit en
    Mai 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : iut amiens
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 43
    Points : 29
    Points
    29
    Par défaut
    Echapper les valeurs c'est-à-dire? je suis en fin de formation de DUT, et j'avoue que cette notion nous ne l'avons pas vu...

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    iut amiens
    Inscrit en
    Mai 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : iut amiens
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 43
    Points : 29
    Points
    29
    Par défaut
    avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    uniteq=$_POST['UniteQ'];
    $uniteq="'$uniteq'";
    $stmt        = odbc_prepare($connexion, 'SELECT NumUniteQ FROM UniteQ WHERE nomUniteQ = ?');
    $exec_uniteq = odbc_exec($stmt, array($uniteq));
    j'ai l'erreur suivante :
    Warning: odbc_exec() expects parameter 2 to be string, array given in F:\SiteWeb\FDE\PHP\traitementExpoA.php on line 17
    et d'après un echo la requête SQL donnerai :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT NumUniteQ FROM UniteQ WHERE nomUniteQ ='µl';

    Et cette requête dans ma base de donnée renvoie quelque chose... c'est pour ça que je ne comprends pas pourquoi cette requête ci ne marche pas ! Alors que toutes les autres
    qui ont la même structure mais pas les même noms marchent ...

  10. #10
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Échapper des données, ça veut protéger le contenu de certaines valeurs qui peuvent être problématiques. Cherche du côté des injection SQL.

    Fin de DUT !??!!! Et pas vu ça ? J'te crois pas, t'as dû pioncer pendant le cours oui

  11. #11
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Là pour le coup je pense que tu peux corriger par toi-même l'erreur non ?
    M'enfin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $exec_uniteq = odbc_exec($stmt, $uniteq);

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    iut amiens
    Inscrit en
    Mai 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : iut amiens
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 43
    Points : 29
    Points
    29
    Par défaut
    Ah non non, je te jure qu'on n'a pas vu ça ^^.

    enfin, j'en ai déjà entendu parlé mais on n'a pas appliquer ce genre de chose.

    Enfin je ne pense pas que ça résoudra mon problème si?

    En corrigeant mon erreur :

    Warning: odbc_execute() expects parameter 2 to be array, string given in F:\SiteWeb\FDE\PHP\traitementExpoA.php on line 18
    ...

  13. #13
    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
    c'est obdc_exec() pas odbc_execute()

    J'espere que ce n'est pas en cours qu'on vous apprends des syntaxes pareilles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $uniteq="'$uniteq'";
    echo''.$uniteq.'';
    Pour ton problème de départ, si ton paramètre dans le WHERE contient des caractères particulier, cela peut coincer à cause d'un problème d'encodage.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    iut amiens
    Inscrit en
    Mai 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : iut amiens
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 43
    Points : 29
    Points
    29
    Par défaut
    Bah il contient un : 'µl'

    Et effectivement, ça à bien l'air d'être un problème d'encodage je vais creuser dans cette direction !

    Je mettrai en résolu quand j'aurai réglé ce problème.
    Et pour ce qui est de ma syntaxe, je fais ça à la va vite car il ne me reste plus beaucoup de temps
    pour mon stage, je met mon code en forme le soir pour que ce soit plus lisible.


    En tout cas merci! je suis toujours preneur de bon conseil ^^.

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

Discussions similaires

  1. Erreur : La requête ne retourne aucune donnée
    Par guigui81 dans le forum Débuter
    Réponses: 6
    Dernier message: 08/07/2011, 14h26
  2. Recherche ne retourne aucun resultat
    Par ninou212212 dans le forum SharePoint
    Réponses: 1
    Dernier message: 23/10/2008, 09h32
  3. Jointure externe simple ne retourne aucun resultat
    Par youyoupapayou dans le forum Langage SQL
    Réponses: 4
    Dernier message: 18/09/2008, 11h13
  4. Réponses: 8
    Dernier message: 11/05/2006, 23h18
  5. Ma requete me retourne aucune valeur
    Par zorba49 dans le forum Langage SQL
    Réponses: 19
    Dernier message: 22/08/2005, 14h10

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