Aller au contenu

Aide my_sql

Featured Replies

Posté(e)

Bon, voila le morceau de code qui pose problème:

Bien sur au début du code, je me connecte à la base :roll:

	$joueur = $_GET["joueur"];
$plus = $_GET["plus"];
$value = $_GET["value"];
mysql_query("UPDATE nomik SET '$plus'='$value' WHERE user like '$joueur'");

Donc, le principe est:

-je récupère le nom du joueur, le champ à changer(plus) et sa nouvelle valeur.

ex: nomik.php?joueur=test&plus=cochon&value=3

Le problème est que ma commande sql ne fait pas la mise à jour :shock:

Si vous avez des idées

Posté(e)

j'ai jamais essayé d'indiquer les champs à modifier... je suis pas certain que ce soit possible mais si oui, à mon avis tu devrais essayer d'enlever les quotes...

UPDATE nomik SET $plus='$value' WHERE user like $joueur"

Posté(e)

si j'ai bien compris ce que tu veux faire (changer juste la valeur du joueur récupéré), le LIKE n'est pas très à propos ! WHERE user='$joueur' serait plus adapté ! le Like c'est pas mal mais bon... dans ce cas je pense que ça peut etre source d'erreur bien que tu n'ais pas mis de caractère genre %

sinon je peux t'assurer que les quotes ont une influence certaine ! tout comme la casse d'ailleurs si ma mémoire est bonne (mais ça, ça dépend des versions)

c'est con, je retrouve aucune source de mes sites donc j'ai plus un sul exemple d'update ! kess que j'en ai fait :francais:

Posté(e)

UPDATE table SET var_table= '$var_get' WHERE var_table2 = '$var_get2'

c'est à dire ..

UPDATE nomik SET $plus = $value WHERE user='$joueur'

Je ferai comme ça ...

Posté(e)

En fait ça dépend quel est le type de la valeur à modifier : si c'est une chaîne de caractère il faut mettre SET $plus='$value'

Si c'est un nombre : SET $plus=$value

Par contre c'est dangereux d'avoir la valeur à modifier en variable, car quelqu'un pourrait faire exécuter n'importe quelle requête grâce à ton script en passant une valeur spéciale dans $plus.

Il faudrait que tu vérifies la valeur de $plus à chaque fois.

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.