Rechercher : dans
Par :

PHP/SQL - Probleme de requete SQL

Dernière réponse le 25 fév 2008 à 11:30:02 xiii34, le 15 jui 2004 à 16:01:58 
 Signaler ce message aux modérateurs

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..

Meilleures réponses pour « PHP/SQL Probleme de requete SQL » dans :
Le langage SQL VoirQu'appelle-t-on SQL? SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage de définition de données (LDD, ou en anglais DDL Data Definition Language), un langage de manipulation de données (LMD, ou en anglais DML,...
SQL - Commande SELECT VoirLe langage de manipulation de données Le SQL est à la fois un langage de manipulation de données et un langage de définition de données. Toutefois, la définition de données est l'oeuvre de l'administrateur de la base de données, c'est pourquoi la...
Attaques par injection de commandes SQL VoirInjection de commandes SQL Les attaques par injection de commandes SQL sont des attaques visant les sites web s'appuyant sur des bases de données relationnelles. Dans ce type de sites, des paramètres sont passés à la base de données sous forme...

1

grofwa, le 15 jui 2004 à 16:05:48

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]

Répondre à grofwa

2

LeSousss, le 15 jui 2004 à 16:06:04

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 çà

Répondre à LeSousss

3

grofwa, le 15 jui 2004 à 16:08:37

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]

Répondre à grofwa

4

LeSousss, le 15 jui 2004 à 16:10:22

Oui, c'est exacte, je doit avouer que je n'y avait pas pensé

Répondre à LeSousss

5

xiii34, le 15 jui 2004 à 16:10:38

Super cool...
Je suis un peu le roi des erreurs de synthaxe ;-)))
Merci a vous.....

Répondre à xiii34

6

grofwa, le 15 jui 2004 à 16:12:36

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]

Répondre à grofwa

7

LeSousss, le 15 jui 2004 à 16:13:02

Du coup t'a le choix pour ta solution

Répondre à LeSousss

8

kelbo, le 23 fév 2008 à 09:51:20

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 ^^'

Répondre à kelbo

9

kelbo, le 23 fév 2008 à 14:32:18

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

Répondre à kelbo

10

croy, le 23 fév 2008 à 15:03:45

$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 . " ' "

Répondre à croy

11

kelbo, le 25 fév 2008 à 10:13:12

Merci de ton aide mais j'ai toujours le même problème.

Erreur de syntaxe près de ''0','5'' à la ligne 1

Répondre à kelbo

12

croy, le 25 fév 2008 à 10:29:21

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());

Répondre à croy

13

kelbo, le 25 fév 2008 à 11:07:43

Ca fonctionne, merci beaucoup :)

Répondre à kelbo

14

 croy, le 25 fév 2008 à 11:30:02

Pense à marquer ce fil comme résolu.

Répondre à croy