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

Langage SQL Discussion :

Probléme avec une varialbe dans une requete SQL


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Points : 51
    Points
    51
    Par défaut Probléme avec une varialbe dans une requete SQL
    Bonjour,

    J'ai un petit probléme avec une requete SQL, je précis que je suis debutant et que (en plus) je bosse avec Dreamweaver.

    J'ai une base de donnée, dans cette base j'ai un champ sur lequel je fait un explode et je récupere une floppée de variables. Jusque là tout va bien, je voudrais ensuite me servir de chacune des varaibles pour faire une selection dans ma base. J'espere que c'est assez clair....

    Voilà le code de ma requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT champ1, champ2, champ3, champ4, champ5 FROM mabase WHERE champ4 = '".$var1."'"
    var1 étant la première variable issue de la requete explode

    Et là ça ne marche pas...

    Pourtant quand je remplace en dur la valeur que devrait avoir la variable ça marche....

    Merci d'avance pour vos réponse.

  2. #2
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Salut,
    Peux tu nous donner tout le code qui va avec s'il te plait. Car je suppose que tu dois avoir du php ou un truc du genre autour de requete, non ? Merci
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Points : 51
    Points
    51
    Par défaut
    Hello,

    merci de t'interesser à mon probléme .

    Voilà l'ensemble du code...

    Requete qui récuperer le champ selon l'id récupérer par un formulaire (fait par dreamweaver) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    mysql_select_db($database_conex_mabase, $conex_mabase);
    $query_reccordset1 = sprintf("SELECT champ FROM mabase WHERE id = '%s'", $colname_reccordset1);
    $reccordset1  = mysql_query($query_reccordset1, $conex_mabase) or die(mysql_error());
    $row_reccordset1 = mysql_fetch_assoc($reccordset1 );
    $totalRows_reccordset1 = mysql_num_rows($reccordset1);
    Ici, c'est le code pour "casser" le champ en fonction d'un caractère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    if ($result = mysql_query($query_reccordset1)) {
    	if ($ligne = mysql_fetch_row($result)) {
    	$contenu = $ligne[0];
    	} else
    		die ("Erreur BDD");
    	} else
    		die ("Erreur BDD");
     
    list($var1, $var2, $var3, $var4, $var5, $var6, $var7, $var8, $var9, $var10, $var11, $var12, $var13, $var14, $var15, $var16, $var17, $var18, $var19, $var20) = explode("=", $contenu);
    Et voilà et ensuite je récupére les variables et je fais la requete suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    mysql_select_db($database_conex_mabase, $conex_mabase);
    $query_cas1 = "SELECT champ1, champ2, champ3, champ4, champ5 FROM mabase WHERE champ4 = '".$var1."'";
    $cas1 = mysql_query($query_cas1, $conex_mabase) or die(mysql_error());
    $row_cas1 = mysql_fetch_assoc($cas1);
    $totalRows_cas1 = mysql_num_rows($cas1);
    Mais ça marche pas, il m'affiche rien quand je lui demande de faire apparaitre les champs en fonction des variables...

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par wylls
    je bosse avec Dreamweaver
    Ok et à quelle base de données accédez-vous : Access, SQL Server, Oracle, MySQL, etc. ?

    Citation Envoyé par wylls
    var1 étant la première variable issue de la requete explode
    pouvez-vous nous donner un exemple de la valeur que peut prendre var1 ?
    Assurez-vous aussi que var1 a bien la valeur que vous supposez en l'affichant via votre langage client ou en l'écrivant dans un fichier plat.
    Enfin, si var1 contient plus d'une valeur alors il faut non pas utiliser l'opérateur égal mais 'IN'.

    [EDIT]
    Merci de ne pas mettre de code PHP qui n'apporte aucune information ici et difficilement lisible par les néophytes
    [/EDIT]
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  5. #5
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Il faut que tu test si $var1 contient bien quelque chose, fais un echo $var1 avant d'executer ta requete pour etre sur qu'elle contient bien quelque chose
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Points : 51
    Points
    51
    Par défaut
    Bojour,

    Merci pour ta réponse, je travaille avec MySQL.

    Voilà un exemple de valeur que peuvent prendre les varialbles : 97-54-1.

    Ca sera toujours de chiffres entiers, par contre le nombre de caractère peut variés entre les tirets.

    J'ai essayé avec IN, mais pareil ça ne fonctionne pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT champ1, champ2, champ3, champ4, champ5 FROM mabase WHERE '".$var1."' IN (champ4) "
    Pourtant la requete est bonne non ?

    J'ai aussi essayé avec LIKE mais pareil ça veut pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT champ1, champ2, champ3, champ4, champ5 FROM mabase WHERE champ4 LIKE '%".$var1."%'"
    Encore merci pour le coup de main.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Points : 51
    Points
    51
    Par défaut
    Il faut que tu test si $var1 contient bien quelque chose, fais un echo $var1 avant d'executer ta requete pour etre sur qu'elle contient bien quelque chose
    Oui, elle affiche bien la valeur car j'ai besoin de la faire afficher sur la page, d'ailleurs c'est bien le seul truc qui marche !

  8. #8
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Est tu sur que champ4 contient bien $var1 dans ta table ? Parce que la franchement je vois rien d'autres... Ta requete SQL me semble bonne, y'a pas d'erreur des syntaxe. Donc je ne vois plus que ça
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Points : 51
    Points
    51
    Par défaut
    Merci pour tes réponses,

    Déjà je suis content de savoir que ma requête a l'air correcte, c'est rassurant.

    Je suis sur que le champ 4 contient bien la variable, et puis ça marche quand je remplace la variable par une valeur test....

    Personne aurait une idée ?

    Merci d'avance !

  10. #10
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Par contre une petite précision, c'est normal que ta requete avec le IN ne fonctionne pas, tu as inversé les deux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT champ1, champ2, champ3, champ4, champ5 FROM mabase WHERE champ4 IN (".$var1.")
    Sinon réessaie avec un égal mais la désolé je sèche. Je vais continuer à réfléchir dessus...
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Points : 51
    Points
    51
    Par défaut
    J'ai essayé en inversant avec IN, mais pareil toujours rien....

    Merci d'essayer de m'aider !

  12. #12
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Bon essai sans mettre d'espace autour du égal, php est un chiant avec ca desfois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT champ1, champ2, champ3, champ4, champ5 FROM mabase WHERE champ4='".$var."'
    Pour l'instant j'ai que ça a te proposer, désolé
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Points : 51
    Points
    51
    Par défaut
    Ca marche toujours pas...

    Je vais continuer à chercher...

    Merci en tout cas.

  14. #14
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Je pense a un truc, peut tu me montrer la partie de ton code où tu fais l'affichage du résultat de ta requête s'il te plaît ?
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Points : 51
    Points
    51
    Par défaut
    Re,

    Ben c'est un echo tout con....

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php echo $row_cas1['champ1']; ?>
    <?php echo $row_cas1['champ2']; ?>
    <?php echo $row_cas1['champ3']; ?>
    <?php echo $row_cas1['champ4']; ?>
    <?php echo $row_cas1['champ5']; ?>
    C'est ce que tu voulais voir ?

  16. #16
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Oé bah ça à l'air bon. De toute façon que tu met la donnée en brut, ça t'affiche bien le résultat donc ca veut dire que ça marche. Désolé mais malgré le week end, aucunes idées ne me viennent. Je sèche complètement
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Points : 51
    Points
    51
    Par défaut
    Hello,

    Merci quand même pour ton aide,

    Je comprends vraiment pas...

    Et maintenant je suis vraiment sur que qu'il affiche bien la variable. Parce que quand je tente avec un LIKE et que je mets pas les '. Il m'affiche une erreur classique :

    "You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '* 85586-07-8' at line 1"

    Et * 85586-07-8 est bien la valeur qui vient de la variable dans ce cas là...

    (l'étoile avant la série de chiffre est parfaitement normale... au cas où :-) )

    Personne aurait une idée ?

  18. #18
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Le * fait partie de ta variable ? Car si ce n'est pas le cas, c'est peut être de la que viens l'erreur...
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Points : 51
    Points
    51
    Par défaut
    Le * fait bien partie de ma variable, c'est normal...

  20. #20
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Sinon, essai de poster ton message dans le forum php, ca vient surement de ton code php car la requete SQL me semble bonne. T'auras peut etre plus de chance là bas...
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  2. Réponses: 9
    Dernier message: 09/12/2008, 00h07
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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