Partage
  • Partager sur Facebook
  • Partager sur Twitter

SELECT WHERE champ1+champ2=variable SQL

Sujet résolu
    7 juin 2010 à 19:07:38

    Coucou!
    J'éspère que le titre était clair... :-°
    Je m'explique:
    J'ai une requète SQL qui fait ca:
    SELECT * FROM membres WHERE ident='$patate'
    

    Mais le champ ident n'existe pas.
    En fait, il serait composé dun champ Nom et d'un champ Prenom.
    Il faudrait donc faire comme ceci:
    SELECT * FROM membres WHERE prenom nom='$patate'
    

    Mais bien sûr, ça ne marche pas: ce type de requête n'existe pas :(
    Vous avez une idée, s'il vous plait?

    Au passage, si à la place de $patate, je mets $_GET['patate'], ca ne marche pas. J'ai donc mis le get dans la variable $patate, ce n'est aps conntraignant, mais si je pouvais dormir moins bête ce soir, ca m'arrangerait... :p

    Merci!!
    Pols12
    • Partager sur Facebook
    • Partager sur Twitter
      7 juin 2010 à 19:09:39

      WHERE $patate IN (nom, prenom)
      • Partager sur Facebook
      • Partager sur Twitter
        7 juin 2010 à 19:23:55

        Merci de ta réponse.
        Cependant, si je mets ton code: j'obtients cette erreur:
        (On va dire que $patate contient "patate")
        Erreur : Unknown column 'patate' in 'where clause'

        J'ai essayé de mettre des quote simple '' autour de la variable $patate. Le résultat est un peu plus satisfaisant, mais ce n'est pas ca:
        Dans ce cas, le SELECT recherche "patate" dans le champ prenom OU le champ nom. Ce que je souhaitrais, c'est qu'il n'agisse que si le champ prenom contient "pat" et le champ nom contient "ate".
        Merci!!
        Pols12
        • Partager sur Facebook
        • Partager sur Twitter
          7 juin 2010 à 19:26:01

          Ahhh bah tu fais

          WHERE nom = $nom AND prenom = $prenom en respectant la concaténation
          • Partager sur Facebook
          • Partager sur Twitter
            7 juin 2010 à 19:31:48

            Oui, mais le problème, c'est que je n'ai pas de variable $nom, ni $prenom.
            Je n'ai qu'une vraible $ident (que j'avais précédemment appelllé $patate)
            qui contient ceci:
            $ident=$prenom.' '.$nom;
            • Partager sur Facebook
            • Partager sur Twitter
              7 juin 2010 à 19:33:48

              Faudrait ptète corriger cette erreur dans ce cas, et faire en sorte d'avoir 2 variables et pas 1 m'enfin bon sinon tu peux toujours faire

              WHERE CONCAT_WS(' ', prenom, nom) = $ident
              • Partager sur Facebook
              • Partager sur Twitter
                7 juin 2010 à 19:47:03

                Mauvais forum, dirige-toi vers le forum Base de données juste en dessous.

                Petite note en passant : utiliser une fonction sur une colonne comme ceci te prive de l'utilisation des potentiels index.
                • Partager sur Facebook
                • Partager sur Twitter
                  8 juin 2010 à 18:52:18

                  Merci Zazou!
                  J'ai essayé de m'en servir dans un SELET dirctement, et pas dans le WHERE. Du coup, pour récupérer le champ après (avec un mysql fetch array), il fallait mettre un AS dans la requête, c'est ca? En tout cas, ca a l'air de marcher.
                  Encore merci!

                  Fayden -->Je suis désolé. Comme je ne connais que le php, je me dirige systématiquement vers la catégorie php... sans penser que mon problème là s'agissait uniquement de sql. :( Désolé!

                  Pols12
                  • Partager sur Facebook
                  • Partager sur Twitter
                    8 juin 2010 à 21:57:30

                    Oui c'est bien comme ça aussi. De rien.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    SELECT WHERE champ1+champ2=variable SQL

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown