Impossible!!!

Résolu
Signaler
Messages postés
7
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
24 mai 2009
-
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
-
Bonjour,

Je suis nouveau dans ce forum, et nouveau avec le php... 

Tout fonctionnait jusqu'à maintenant, mais depuis 2 jours, je bute sur un problème.

Voici une partie de mon code :
=========================================
echo $ladesc; // ma variable qui me cause problème
   
   mysql_connect("localhost", "root", "");
   mysql_select_db("base");



   mysql_query("UPDATE annonces SET make='".$make."' WHERE id='".$lenoa."'");
   
   mysql_query("UPDATE annonces SET desc='" .$ladesc. "' WHERE id='".$lenoa."'");

   mysql_close();

=================================================================

J'ai mis un deuxième UPDATE car lorsque je mets la variable $ladesc dans le premier UPDATE, la
modification n'a pas lieu...

Alors, mon premier UPDATE fonctionne, mais pas le deuxième...  La variable 'desc' dans ma base de
donnée est un champ texte.

MERCI BEAUCOUP à ceux qui m'aideront !!!!

Jean

10 réponses

Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Arf, je n'avais pas vu de suite mais il se peut (pas testé) que tu ai un problème avec le nom du champ desc car c'est un mot réservé mySQL.
2 solutions :
- tu changes le nom du champ : si c'est assez simple à modifier pour toi je pense que c'est une bonne idée, ça évitera de futurs problèmes
- tu modifies ta requête comme suit :
"UPDATE annonces SET `desc`='$ladesc', `make`='$make' WHERE id='$lenoa'"

Je pense que le pb vient de là, dis nous si ça marche.

Kohntark -
Messages postés
6
Date d'inscription
lundi 26 janvier 2009
Statut
Membre
Dernière intervention
30 janvier 2009

Bonjour,

Si j'ai bien compris, ta variable "$ladesc" et ton entrée de table "desc" sont toutes les deux des champs texte et quand tu essayes de saisir "$ladesc" dans "desc" ça ne marche pas.

As-tu fait un codage ou une conversion de caractères ? Ca se peut que se soit un ' dans la chaine qui fasse foirer la requête. Essaye d'encoder ta chaine de caractère avec un truc comme ça : $synopsis = htmlentities($synopsis, ENT_QUOTES);
Plus d'explications sur la fonction ici.

Essayes ça et dis-nous si tu ça résous ton problème.

Cordialement
Sylvère

Malheur à qui me frôle, bonheur à qui me prend
Messages postés
7
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
24 mai 2009

Je viens juste d'essayer...

Rien à faire, ma variable ne se modifie pas.  Pourtant, j'ai d'autres variables texte dans la même requête et ça fonctionne (j'ai simplifié mon code pour le forum).

Quelqu'un a une autre idée !?

MERCI !!!
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut,

Essais ça et dis nous si tu as des erreurs :

if (false === mysql_query("UPDATE annonces SET make='$make' WHERE id='$lenoa'")) {
  die(mysql_error());
}

   
if (false === mysql_query("UPDATE annonces SET desc='$ladesc' WHERE id='$lenoa'")) {
  die(mysql_error());

}

Cordialement,

Kohntark -
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Enfin plutôt ça :

if (false === mysql_query("UPDATE annonces SET desc='$ladesc', make='$make' WHERE id='$lenoa'")) {
   die(mysql_error());
}

Cordialement,

Kohntark -
Messages postés
7
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
24 mai 2009

Merci de bien vouloir m'aider, c'est TRÈS apprécié !


 


J'ai ce message :


 



You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc='adsfasdf', make='2' WHERE id='72'' at line 1

Naturellement, la valeur 'adsfasdf' n'était que pour mon test d'update ! 

Avez-vous une idée ?

Merci encore!
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut,

Je ne vois pas trop ce qui peut clocher là.
Essais de faire ça :

if (false === mysql_query("UPDATE annonces SET desc='$ladesc', make='$make' WHERE id='$lenoa'")) {
   die(mysql_error());
}
=>
$sql = "UPDATE annonces SET desc='$ladesc', make='$make' WHERE id='$lenoa'";
if (false === mysql_query($sql)) {
   die(mysql_error().'
requête sql : '.$sql);
}

Et poste l'erreur et la requête sql.

Kohntark -
Messages postés
7
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
24 mai 2009

Merci Kohntark pour ton aide!


 


Voici le message :


<center>
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc='ddd', make='0' WHERE id='72'' at line 1

requête sql : UPDATE annonces SET desc='ddd', make='0' WHERE id='72'


</center>
Messages postés
7
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
24 mai 2009

MERVEILLEUX !!!!

MERCI 1000 fois, ça fonctionne !
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
cool

Bonne continuation,

Kohntark -