Problème avec un requête sql !

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 : Problème avec un requête sql !

par albat » 19 août 2006, 19:25

Pour coder polus propre et pouvoir débugger plus facilement,
je te conseille de fractionner par étapes :
// je crée ma requête SQL
$req = "SELECT * FROM stock WHERE id=".$_SESSION['ref_modif']; 

// en mode développement, je teste la requête créée
echo "La requête générée est : ",$req;

// si la requête est correcte, je lance son exécution
$res = mysql_query($req) or die("Planté !");

par charabia » 19 août 2006, 19:15

C'est bien ce qu'on t'a indiqué plus haut pour faire ça.

Quand tu dis ça ne marche pas qu'est-ce exactement ? Erreur ? Page blanche ?

Donnes nous un code plus complet pour qu'on puisse voir d'où vient ton erreur.

par zenius » 17 août 2006, 14:28

Merci pour vos réponses !
j'ai tout testé mais aucune ne fonctionne, l'erreur se trouve peut être à un autre niveau!

Pouvez vous me dire qu'elle serait le code si je voulez afficher les données d'une table uniquement quand ref = à la variable indiquée par le formulaire (name=ref).

merci !

par zeus » 16 août 2006, 09:30

mysql_query("SELECT * FROM stock WHERE id='$_SESSION[ref_modif]'");
Ce genre d'écriture est extremement déconseillé à cause des index des tableaux. L'exemple le plus parlant est cet exemple puisqu'il manque les ' ou les " autour de l'index du tableau ;)

par icebreak » 16 août 2006, 09:00

Même en type numérique, les quotes ne changeront rien.
De plus il vaut mieux les y mettre pour éviter qu'on puisse y rentrer autre chose.

Non, l'erreur vient de là.
mysql_query('SELECT * FROM stock WHERE id="$_SESSION['ref_modif']"');
Les simples quotes annihilent toujours une variables.

Tu as donc le choix entre
mysql_query('SELECT * FROM stock WHERE id="'.$_SESSION['ref_modif'].'"');
et
mysql_query("SELECT * FROM stock WHERE id='$_SESSION[ref_modif]'");

par charabia » 15 août 2006, 22:32

id est un type numérique ou pas ? Si oui ne met pas de quote simple comme j'ai fait là :
mysql_query("SELECT * FROM stock WHERE id=".$_SESSION['ref_modif']."");

Problème avec un requête sql !

par zenius » 15 août 2006, 21:59

Bonjour !
Pouvez-vous me dire si la requête suivante est exact ?

Code : Tout sélectionner

mysql_query('SELECT * FROM stock WHERE id="$_SESSION['ref_modif']"');
Je crois que c'est au niveau de la concaténation qu'il y a un problème (j'espère que je ne raconte pas de conneries en confondant concaténation avec autre chose!).

La variable $_SESSION['ref_modif'] a été obtenue grace à un formulaire puis transmise grace à une session, c'est une variable qui contient un chiffre ...

la première partie du script apparait mais la partie qui requiére une réponse de la base de donnée ne fonctionne pas.