Syntaxe dans une requête

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Syntaxe dans une requête

par bercy » 27 sept. 2007, 19:56

J'ai retrouvé mon login password.

Ce sujet est résolu pour moi. Merci @ tous

par Ryle » 17 sept. 2007, 17:22

Je plussois la remarque de Truc, les apostrophes autour du $BY est une erreur et en aucun cas une solution. On tri selon un nom de champ ou un alias mais pas selon une chaine.

Comme je te l'ai dit plus haut, il te faut t'assurer que cette variable contient bien un nom de colonne avant de l'utiliser, ou bien retirer (voire de ne pas ajouter) la clause ORDER BY si ta variable est vide.

Re: [RESOLU]

par Truc » 17 sept. 2007, 16:49

Entre temps j'ai trouvé la bonne synthaxe
là voici pour les débutants comme moi
L'est mieux le code de fab pour un débutant (comme toi :wink:)
$BY entre '' mais pas $SORT

$BY correspond à un champ de la base de données ?
Si oui alors tu ne dois pas mettre d'apostrophes car tu vas passer la variable $BY en tant que chaine de caractères et non comme un champ => pas le même résultat.
N'étant pas enregistré je ne peux pas mettre le tag résolu.

Tu confirmes la résolution et on le fera pour toi :wink:

[RESOLU]

par Invité » 17 sept. 2007, 15:51

Merci pour la méthode d'affiche.

Entre temps j'ai trouvé la bonne synthaxe

là voici pour les débutants comme moi
$result=mysql("$DBName","SELECT * FROM Produit ORDER BY '$BY' $SORT ");
$BY entre '' mais pas $SORT

N'étant pas enregistré je ne peux pas mettre le tag résolu.
Je m'inscris de suite.

Merci encore

par fab » 17 sept. 2007, 15:42

transforme
$result=mysql("$DBName","SELECT * FROM Produit ORDER BY ".$BY." ".$ASC." "); 
en :
$req = 'SELECT * FROM Produit ORDER BY '.$BY.' '.$ASC;
$result = mysql($DBName,$req);
echo $req; // ici pour afficher la requete 

par Invité » 17 sept. 2007, 15:32

Comment dois je l'afficher ?

echo"$result";

Merci

par zeus » 17 sept. 2007, 15:28

Ryle t'as donné un conseil pratiquement vital quand tu as un soucis de requête, c'est d'afficher la requête que tu vas exécuter.

Très souvent cet affichage permet de détecter l'erreur.

par Invité » 17 sept. 2007, 15:18

Exacte j'ai fais une erreur

Voici la bonne le rèquete
$result=mysql("$DBName","SELECT * FROM Produit ORDER BY ".$BY." ".$ASC." ");
Cette requète me permet de récupérer tous les produits d'una table. Ce qui ne fonctionne pas c'est le tri.

J'ai un souci de syntaxe au niveau du ORDER.

Merci

par Ryle » 17 sept. 2007, 15:14

Qu'est ce qui ne fonctionne pas ? qu'est ce que ça fait ? qu'est ce que ça devrait faire ? quels sont les messages d'erreur ?

Affiche toujours les requêtes que tu génères lorsque tu as une erreur, histoire de voir ce qui ne va pas... déjà ton WHERE est assez curieux... Et quoi qu'il en soit, si tu utilises la clause ORDER BY il faut nécessairement spécifier (au moins) un nom de champ ensuite, donc ta variable $ORDER doit nécessairement être renseignée. A toi de t'assurer que tu la récupères bien à chaque fois et qu'elle n'est pas vide. Sinon utilises une valeur par défaut ou bien retire le ORDER BY dans ce cas :)

Syntaxe dans une requête

par Débutant » 17 sept. 2007, 14:58

Bonjour à tous.

J'ai un souci de synthaxe dans une requete mysql.

Voici le code

Je récupère 2 variables by et sort pour l'ordre de tri.

Cela ne fonctionne pas .
$BY=$_GET['by'];
$SORT=$_GET['sort'];

$result=mysql("$DBName","SELECT * FROM Produit WHERE Reference ORDER BY $BY $SORT ");


Lorsque j'utilise

$BY='Champ';
$SORT='ASC';

Cela fonctionne...
Merci de votre aide c'est surement une bétise mais je débute en php.

Bercy