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 :

[SQL] Problème de variable dans un lien


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 35
    Points : 37
    Points
    37
    Par défaut [SQL] Problème de variable dans un lien
    Bonjour,

    j'ai un petit problème concernant une variable php que j'affiche dans un lien html

    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a class="noir" href="afficher.php?page=recherchefournisseur&action=modifier&pag=<?php echo $pag?>&ID_FOURNISS=<?php echo $tabdonnees['ID_FOURNISS'][$i]; ?>&where=<?php echo $where ?>">M</a>
    la variable $where est initialisée plus dans mon code php et le problème apparait seulement lorsque cette est construite de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $where = "$nomchamps like '%$lignechamps%'";
    Alors j'ai remarqué que en passant ma souris sur le lien il apparait au niveau du where :
    where=$nomchamps like '«%' pour un alphanumérique
    et
    where=$nomchamps like '''%' pour un numerique.

    Ce qui est étrange c'est que ce problème se manifeste lorsque j'interroge une base mysql et ça marche sans problème sur une base sql server.

    Est-ce que ça vient de là ? Suis-je totalement dans le faux? Dois-je protéger le caractère "%"?

    PS : Si il manque des choses dans mon explication je les mettrai.

    Merci et bonne journée.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Peut etre suis je dans le faux mais je pense que tu ferais mieux de faire un coup de urlencode() pour afficher ton lien ( et récupérer le contenu avec la fonction inverse : urldecode() ).

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 35
    Points : 37
    Points
    37
    Par défaut
    je vais tester merci.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 35
    Points : 37
    Points
    37
    Par défaut
    Alors je viens de tester ce que tu m'as conseillé

    avant le lien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $where = urlencode($where);
    après reception
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($_GET["where"] != null) $where = urldecode($_GET["where"]);
    else $where = " ";
    echo $where." debut<br>";
    voici le résultat sans le stripslashes():
    NOM_FOURNISS like \'«%\' debut

    pourtant l'url a l'air bonne :
    afficher.php?page=recherchefournisseur&action=modifier&pag=1&ID_FOURNISS=8&where=+NOM_FOURNISS+like+%27%25ab%25%27
    et quand je passe ma souris sur le lien ça s'affiche mieux, mais le resultat est le même qu'au début.
    Cependant on avance merci pour ton aide Raideman, c'était une étape que je ne faisait pas mais qui doit bien servir, on en apprend tous les jours .

  5. #5
    Nouveau membre du Club Avatar de Shinn77
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Points : 36
    Points
    36
    Par défaut
    Alors euh... moi je comprend pas ce que tu veux que ça t'affiche.

    Dans ton exemple actuel, ta variable $where doit contenir quoi au juste ? histoire qu'on voit ce qui se passe.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 35
    Points : 37
    Points
    37
    Par défaut
    Sorry

    Alors la variable $where doit contenir en gros la condition de ma requête sql

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $where = "$nomchamps like '%$variable%' ";
    et ça m'affiche ça (contenu de la variable $where en faisant un echo juste apres ça):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (($_GET["where"] != null)) $where = urldecode($_GET["where"]);
    else $where = " ";
    echo $where."debut<br>";
    NOM_FOURNISS like \'«%\'

  7. #7
    Nouveau membre du Club Avatar de Shinn77
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Points : 36
    Points
    36
    Par défaut
    Que contient ton tableau $tabdonnees ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a class="noir" href="afficher.php?page=recherchefournisseur&action=modifier&pag=<?php echo $pag?>&ID_FOURNISS=<?php echo $tabdonnees['ID_FOURNISS'][$i]; ?>&where=<?php echo $where ?>">M</a>
    Fait nous un print_r voir Oo

    Affiche aussi ton $where

    les Valeurs exactes qu'il te sort stp.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 35
    Points : 37
    Points
    37
    Par défaut
    Voici ce que j'obtiens sur mon navigateur:

    Nom : impre.JPG
Affichages : 45
Taille : 61,4 Ko

    Le lien est tout à fait a droite du tableau le "M"
    ma variable $tabdonnees est un tableau de données dont l'index est sur ID_FOURNISS

    Pour la vairable $where je l'ai affiché à différents endroit du code avnat de cliquer sur lien.

    Résultat apres le clique:
    Nom : impre2.JPG
Affichages : 89
Taille : 54,5 Ko

    On voit bien que le résultat n'est pas ce que j'ai envoyer et je ne comprends pas pourqoi.

  9. #9
    Nouveau membre du Club Avatar de Shinn77
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Points : 36
    Points
    36
    Par défaut
    Essaye de faire ça (ajout d'un lien de test bidon en dur sur une page_test.php)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="page_test2.php?var=ID_FRS = '%toto%'">Test, cliquez ici</a>
    et sur la page page_test2.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $_POST["var"];?>
    On va voir si ca affiche :
    ID_FRS = '%toto%'

  10. #10
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 35
    Points : 37
    Points
    37
    Par défaut
    La variable ne s'affiche pas ce qui est normal, me trompe-je?

  11. #11
    Nouveau membre du Club Avatar de Shinn77
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Points : 36
    Points
    36
    Par défaut
    Oui petite erreur de ma part, remplace POST par GET.

  12. #12
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 35
    Points : 37
    Points
    37
    Par défaut
    Voici le résultat : ID_FRS = \'%toto%\' sans le stripslashes bien sûr donc a priori pas de problème.

    Et j'obtiens le même resultat avec ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php 
    $var = "ID_FRS = '%toto%'";
    ?>
    <a href="page_test2.php?var=<?php echo $var ?>">Test, cliquez ici</a>

  13. #13
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 35
    Points : 37
    Points
    37
    Par défaut
    Alors je viens de résoudre malheureusement que partiellement ce problème.

    J'ai simplement enlevé le premier "%" de ma requête. Donc, mon application marche, cependant mon like ne marche qu'à moitié. Mais je ne désespère et je trouverai d'où cela peut-il venir avec votre aide. Je peux bien sûr vous balancez tout le code de la page en marquant les endroits où chercher mais je ne veux pas vous faire mal à la tête.

  14. #14
    Nouveau membre du Club Avatar de Shinn77
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Points : 36
    Points
    36
    Par défaut
    Si ca marche en haut ya pas de raison...

    Moi ca me derange pas si tu menvoies le code... j y verrais pe etre plus clair.

  15. #15
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 35
    Points : 37
    Points
    37
    Par défaut
    Je t'ai envoyer une parti du code. Mais ne te fais pas mal à la tête

Discussions similaires

  1. Problème avec le paramètrage d'une variable dans un lien pour un panier
    Par roy-mustang dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/09/2011, 13h07
  2. [MySQL] Problème avec la récupération d'une variable dans un lien pour un panier
    Par roy-mustang dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 23/06/2011, 13h58
  3. Problème de variable dans une requête SQL
    Par Namzicos dans le forum SQL
    Réponses: 2
    Dernier message: 27/01/2010, 14h38
  4. Problème de variable dans une Requête SQl
    Par steph77 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 28/08/2009, 15h16
  5. Réponses: 3
    Dernier message: 06/05/2007, 20h11

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