PHP/SQL - Probleme de requete SQL

xiii34 Messages postés 38 Statut Membre -  
croy Messages postés 457 Statut Membre -
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. kelbo
     
    Ca fonctionne, merci beaucoup :)
    1
    1. croy Messages postés 457 Statut Membre 114
       
      Pense à marquer ce fil comme résolu.
      0
  2. grofwa Messages postés 440 Statut Membre 479
     
    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
  3. LeSousss Messages postés 151 Date d'inscription   Statut Membre Dernière intervention   15
     
    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
  4. grofwa Messages postés 440 Statut Membre 479
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. LeSousss Messages postés 151 Date d'inscription   Statut Membre Dernière intervention   15
     
    Oui, c'est exacte, je doit avouer que je n'y avait pas pensé
    0
  7. xiii34 Messages postés 38 Statut Membre
     
    Super cool...
    Je suis un peu le roi des erreurs de synthaxe ;-)))
    Merci a vous.....
    0
  8. grofwa Messages postés 440 Statut Membre 479
     
    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
  9. LeSousss Messages postés 151 Date d'inscription   Statut Membre Dernière intervention   15
     
    Du coup t'a le choix pour ta solution
    0
  10. kelbo
     
    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
  11. kelbo
     
    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
  12. croy Messages postés 457 Statut Membre 114
     
    $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
  13. kelbo
     
    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. croy Messages postés 457 Statut Membre 114
       
      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