[RESOLU] mysql_query("UPDATE ce met à jour mais remplace au lieu...

mysql_query("UPDATE ce met à jour mais remplace au lieu... [RESOLU] - PHP - Programmation

Marsh Posté le 16-05-2010 à 17:47:11    

Bonjour,
Voila mon probleme
je souhaite ajouter à ma table utilisateur dans le champ "MONCHAMP" un idendifiant mais celui-ci se remplace au lieu de s'ajouter
 
Si je fait cette requête
 

Code :
  1. mysql_query("UPDATE users SET MONCHAMP = $id WHERE id = $CURUSER[id]" );


 
$id correspond à un id de topic jusque la ca fonctionne l'id ce remplace dans le champ: MONCHAMP  
 
Mais en faite je ne veux pas remplacer l'id mais en ajouter dans mon champ ce qui ferais MONCHAMP= 12,45,115 etc...
les numéro correspondent au identifiant du topic
donc pour AJOUTER je fais cette requête
 

Code :
  1. mysql_query("UPDATE utilisateurs SET MONCHAMP = MONCHAMP ADD $id WHERE id = $utilisateurs[id]" );


mais ca ne fonctionne pas il me remplace sans cesse mes identifiants au lieu de me les ajouter
 
ma structure de MONCHAMP

Code :
  1. ALTER TABLE `utilisateurs` ADD `MONCHAMP` TEXT CHARACTER SET latin1 COLLATE latin1_german2_ci NULL DEFAULT NULL


 
merci pour votre aide


Message édité par deedee59 le 17-05-2010 à 15:49:22
Reply

Marsh Posté le 16-05-2010 à 17:47:11   

Reply

Marsh Posté le 16-05-2010 à 19:47:05    

Pour insérer des données il faut utiliser INSERT, UPDATE sert à modifier des données existantes.

Reply

Marsh Posté le 16-05-2010 à 21:39:36    

mysql_query("INSERT INTO utilisateurs (MONCHAMP) VALUES ($id) WHERE id = $utilisateurs[id]" );
 
Ca ne fonctionne pas tu aurai une idée?

Message cité 1 fois
Message édité par deedee59 le 16-05-2010 à 21:50:34
Reply

Marsh Posté le 16-05-2010 à 23:14:09    

Pourquoi tu tenterais pas de récupérer la valeur de "MONCHAMP" dans un script php, et de le concaténer ?

Reply

Marsh Posté le 16-05-2010 à 23:39:15    

Oh la belle sql injection qui se profile à l'horizon.

Reply

Marsh Posté le 16-05-2010 à 23:43:44    

Debutant Php Inside :D

Reply

Marsh Posté le 17-05-2010 à 09:29:23    

deedee59 a écrit :

mysql_query("INSERT INTO utilisateurs (MONCHAMP) VALUES ($id) WHERE id = $utilisateurs[id]" );
 
Ca ne fonctionne pas tu aurai une idée?


 

Code :
  1. mysql_query("INSERT INTO utilisateurs (MONCHAMP) VALUES ('$id') WHERE id = $utilisateurs[id]" );

?
 
Les simples quotes sont à mettre car ton champ est déclaré comme text. Si tu es sûr que $utilisateurs[id] renvoie bien quelque chose, ça devrait fonctionner.
 
Sinon tu peux afficher le contenu de mysql_error() pour t'indiquer l'éventuel problème.


Message édité par Tyrant le 17-05-2010 à 16:29:00
Reply

Marsh Posté le 17-05-2010 à 10:47:28    

ok tyrant je vais faire ca
Elmoricq pk tu dit ca?
explique moi stp quel est le prob ou améliore pour éviter ca xD
merci à tous pour vos réponse

Reply

Marsh Posté le 17-05-2010 à 10:51:18    

WHERE id = $utilisateurs[id] selectionne l'id d'utilisateur pour y inséré l'id du topic dans MONCHAMP
 
en passent ca fonctionne pas xD

Reply

Marsh Posté le 17-05-2010 à 10:58:16    

Je pense qu'il faudrait que tu postes le code complet là, il y a peut-être un autre problème. Et si tu ne l'as pas encore fait, active l'affichage des erreurs php et/ou regarde ce que renvoie mysql_error().

Reply

Marsh Posté le 17-05-2010 à 10:58:16   

Reply

Marsh Posté le 17-05-2010 à 11:58:27    

deedee59 a écrit :

ok tyrant je vais faire ca
Elmoricq pk tu dit ca?
explique moi stp quel est le prob ou améliore pour éviter ca xD
merci à tous pour vos réponse


C'était pour ma réponse :)


Message édité par stayle_xercor le 17-05-2010 à 11:58:38
Reply

Marsh Posté le 17-05-2010 à 12:14:13    

deedee59 a écrit :

ok tyrant je vais faire ca
Elmoricq pk tu dit ca?
explique moi stp quel est le prob ou améliore pour éviter ca xD
merci à tous pour vos réponse

 

Parce que si des valeurs de ta requête proviennent d'entrées utilisateurs, alors tu es susceptible de subir une attaque commune et bien connue nommée "sql injection" :
http://fr.wikipedia.org/wiki/Injection_SQL

 

Il y a des fonctions en PHP pour éviter ce genre de soucis.


Message édité par Elmoricq le 17-05-2010 à 12:14:40
Reply

Marsh Posté le 17-05-2010 à 15:53:40    

Re
j'ai modifié la structure de ma base de donnée et ais ajouté une table pour exécuter cette requête ,maintenant ca fonctionne encore merci à tous ;)

 
Code :
  1. mysql_query("INSERT INTO MONCHAMP (utilisateurs, topicid) VALUES ($utilisateurs['id'], $topic['id'])" );


Message édité par deedee59 le 17-05-2010 à 15:57:15
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed