PHP/SQL - Probleme de requete SQL

Bonjour à tous.

J'aimerai savoir si j'ai le droit de faire ca :

$query="select Cle from imprimante where Lieu=$choix order by Lieu";


pour une requete SQL.

Etant donné que "$choix" est une variable que je passe par post de la page d'avant.

Le requete ne marche pas, donc soit je n'ai pas le droit de mettre des variables dans une requete SQL, soit j'ai fait une bonne erreur de synthaxe ;-))

Merci de votre aide..

12 réponses

  1. Ca fonctionne, merci beaucoup :)
    1
    1. Pense à marquer ce fil comme résolu.
      0
  2. Salut,

    oui tu as fait une erreur de syntaxe.
    Ajoute des simples quotes avant et après ta variable (car c'est une string).

    Michael.

    Ne vous souciez pas de n'être pas remarqué ; cherchez 
    plutôt à faire quelque chose de remarquable [Confucius]
    0
    1. Slt,
      tu ne peut pas mettre de variable dans une chaine de caractere, pour faire ca il faut utiliser le . qui sert a concaténer les chaines en php :

      $query="select Cle from imprimante where Lieu=" . $choix order . "by Lieu";
      Essaye comme çà
      0
      1. Bien sur que si, tu peux mettre une variable dans une string, pour autant qu'elle soit délimitée par des doubles-quotes.
        Mais la solution ci-dessus est également correcte si et seulement si tu mets des simples-quotes autour de ta variable.

        Michael.

        Ne vous souciez pas de n'être pas remarqué ; cherchez 
        plutôt à faire quelque chose de remarquable [Confucius]
        0
        1. Oui, c'est exacte, je doit avouer que je n'y avait pas pensé
          0
          1. Super cool...
            Je suis un peu le roi des erreurs de synthaxe ;-)))
            Merci a vous.....
            0
            1. Y a pire et puis personne n'est à l'abri !

              Bon courage

              Michael.

              Ne vous souciez pas de n'être pas remarqué ; cherchez 
              plutôt à faire quelque chose de remarquable [Confucius]
              0
              1. Du coup t'a le choix pour ta solution
                0
                1. J'ai également un problème du genre en ce qui concerne des variables dans une requête sql.

                  $retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT $j,$k');

                  Je ne sais pas non plus si j'ai le droit de faire ça ou si je suis simplement peu doué en ce qui concerne la syntaxe.

                  Merci ^^'
                  0
                  1. Lorsque j'utilise la syntaxe suivante : $retour = mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT \"$j\",\"$k\"") or die(mysql_error());

                    La valeur des variables est récupérée mais l'erreur suivante m'est indiquée : Erreur de syntaxe près de '"0","5"' à la ligne 1

                    0 et 5 étant les valeurs de base de mes variables
                    0
                    1. $retour = mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT '" . $j ."','" . $k . "'") or die(mysql_error());

                      Comme ceci ca doit marcher.

                      En zoomant sur une partie de la ligne :

                      ...LIMIT ' " . $j . " ',' " . $k . " ' "
                      0
                      1. Merci de ton aide mais j'ai toujours le même problème.

                        Erreur de syntaxe près de ''0','5'' à la ligne 1
                        0
                        1. Autant pour moi : avec LIMIT il ne faut pas encadrer les param par des quotes car ce sont nécessairement des numériques.

                          Remplace ce que je t'ai indiqué par :

                          $retour = mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT " . $j ."," . $k) or die(mysql_error());
                          0