Posez votre question Signaler

Erreur Update SQL

wsaenot - Dernière réponse le 13 févr. 2009 à 12:53
Bonjour à tous,
J'ai un petit problème avec ma requête SQL de mise à jour des données.
J'ai développé ma petite appli de mon côté en local, tout marchait comme sur des roulettes, et puis maintenant que j'ai tout passé en ligne, ça canfre, évidemment.
Voilà le message d'erreur :
Erreur SQL !
UPDATE entreprise SET rs = 'raison sociale' , type='Administration' , tel_acc='tel accueil' , adr='adresse' , cp='code postal' , ville='ville' , act='Plusieurs' , perms='permanences' , 'nom_contact1='nom1' , tel_contact1='tel1' , mail_contact1='mail1' , nom_contact2='nom2' , tel_contact2='tel2' , mail_contact2='mail2' , nom_contact3='nom3' , tel_contact3='tel3' , mail_contact3='mail3' WHERE id = '2'
Erreur de syntaxe près de ''nom_contact1='nom1' , tel_contact1='tel1' , mail_contact1='mail1' , nom_contact' à la ligne 1
Et le bout de php qui s'occupe de ça :
<?php
//ce script va s'occuper de récupérer les données saisies dans le formulaire précédent, les vérifier, pour ensuite mettre à jour l'enregistrement
//sélectionné dans la base de données. Son fonctionnement est analogue à celui d'ajout.php
//récupération des valeurs du formulaire
$id=$_POST['id'];
$rs=$_POST['rs'];
$type=$_POST['type'];
$tel_acc=$_POST['tel_acc'];
$adr=$_POST['adr'];
$cp=$_POST['cp'];
$ville=$_POST['ville'];
$act=$_POST['act'];
$perms=$_POST['perms'];
$nom_contact1=$_POST['nom_contact1'];
$tel_contact1=$_POST['tel_contact1'];
$mail_contact1=$_POST['mail_contact1'];
$nom_contact2=$_POST['nom_contact2'];
$tel_contact2=$_POST['tel_contact2'];
$mail_contact2=$_POST['mail_contact2'];
$nom_contact3=$_POST['nom_contact3'];
$tel_contact3=$_POST['tel_contact3'];
$mail_contact3=$_POST['mail_contact3'];
//on vérifie qu'un champ n'a pas été oublié
if ((empty($rs))||(empty($tel_acc))||(empty($adr))||(empty($cp))||(empty($ville)))
{
//si c'est le cas : message d'erreur
echo ("<br>");
echo ("Vous n'avez pas renseigné tous les champs, veuillez recommencer s'ils vous plaît.");
echo ("<br>");
echo ("<br>");
echo ("<a href=javascript:window.history.go(-1)>Retour</a>");
}
else
{
//si ce n'est pas le cas, on peut injecter les données dans la base SQL
//ajout de slashes aux données susceptibles de contenir des " ' ", ce qui ferait planter la requête SQL
//les champs sont inscrits en clair dans la base de données, les slashes servent uniquement à l'insertion
$act=addslashes($act);
$rs=addslashes($rs);
$type=addslashes($type);
$adr=addslashes($adr);
$tel_acc=addslashes($tel_acc);
$cp=addslashes($cp);
$ville=addslashes($ville);
$perms=addslashes($perms);
$nom_contact1=addslashes($nom_contact1);
$tel_contact1=addslashes($tel_contact1);
$mail_contact1=addslashes($mail_contact1);
$nom_contact2=addslashes($nom_contact2);
$tel_contact2=addslashes($tel_contact2);
$mail_contact2=addslashes($mail_contact2);
$nom_contact3=addslashes($nom_contact3);
$tel_contact3=addslashes($tel_contact3);
$mail_contact3=addslashes($mail_contact3);
// on se connecte à MySQL
$db=mysql_connect('*****', '******', '*******');
// on sélectionne la base
mysql_select_db('******',$db);
// on crée la requête SQL
$sql="UPDATE entreprise SET rs = '$rs' , type='$type' , tel_acc='$tel_acc' , adr='$adr' , cp='$cp' , ville='$ville' , act='$act' , perms='$perms' , 'nom_contact1='$nom_contact1' , tel_contact1='$tel_contact1' , mail_contact1='$mail_contact1' , nom_contact2='$nom_contact2' , tel_contact2='$tel_contact2' , mail_contact2='$mail_contact2' , nom_contact3='$nom_contact3' , tel_contact3='$tel_contact3' , mail_contact3='$mail_contact3' WHERE id = '$id'";
// on envoie la requête
$req=mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
etc etc... ?>
Alors voilà, j'ai du mal à repérer d'où peut venir l'erreur dans ma requête, car avant cela, tout marchait bien. J'ai ajouté le champ "perms" pour les permanences après avoir écrit l'ensemble du programme, à la demande d'un professeur qui trouvait que dans mon logiciel, ce champ manquait.
J'ai donc tout réadapté avec un champ de plus, l'erreur pourrait éventuellement venir de là, mais là j'avoue que je vois pas... Le champ a été rajouté dans la base de données également, donc ça aurait dû rouler.
L'étrange c'est que j'ai d'autres scripts php d'insertion, suppression, sélection... etc, qui eux marchent nickel. Là je sèche.
Merci pour votre coup de main !
Lire la suite 

Erreur Update SQL »

8 réponses
Réponse
+0
moins plus
je croix il faut ecrire id=2 pas id='2'
wsaenot - 12 févr. 2009 à 18:05
Ah ? Avant c'était déjà comme ça et ça fonctionnait. Mais bon je vais essayer.

Ce qui me fait douter c'est que mon script de suppression est écrit de la sorte, et lui ça passe sans problèmes. Mais qui sait, je vais essayer quand même, merci pour la piste.
chamhi- 12 févr. 2009 à 18:10
derien wsaenot
Ajouter un commentaire
Réponse
+0
moins plus
Non l'érreure c ke dans ta requete sql tu a fais une tite faute de frappe

$sql="UPDATE entreprise SET rs = '$rs' , type='$type' , tel_acc='$tel_acc' , adr='$adr' , cp='$cp' , ville='$ville' , act='$act' , perms='$perms' , 'nom_contact1='$nom_contact1' , tel_contact1='$tel_contact1' , mail_contact1='$mail_contact1' , nom_contact2='$nom_contact2' , tel_contact2='$tel_contact2' , mail_contact2='$mail_contact2' , nom_contact3='$nom_contact3' , tel_contact3='$tel_contact3' , mail_contact3='$mail_contact3' WHERE id = '$id'";
// on envoie la requête
$req=mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
etc etc... ?>

Je l'ai mise en gras, enleve la quote qui est en + ;)

^^...
Ajouter un commentaire
Réponse
+0
moins plus
Non l'érreure c ke dans ta requete sql tu a fais une tite faute de frappe

$sql="UPDATE entreprise SET rs = '$rs' , type='$type' , tel_acc='$tel_acc' , adr='$adr' , cp='$cp' , ville='$ville' , act='$act' , perms='$perms' , 'nom_contact1='$nom_contact1' , tel_contact1='$tel_contact1' , mail_contact1='$mail_contact1' , nom_contact2='$nom_contact2' , tel_contact2='$tel_contact2' , mail_contact2='$mail_contact2' , nom_contact3='$nom_contact3' , tel_contact3='$tel_contact3' , mail_contact3='$mail_contact3' WHERE id = '$id'";
// on envoie la requête
$req=mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
etc etc... ?>

Je l'ai mise en gras, enleve la quote qui est en + ;)

^^...

Dsl tout aleur ca se voyé pas quand c'était en gras ..

wsaenot - 13 févr. 2009 à 11:46
Ah ouaaaiiis... j'avais pas vu.

Bon coup d'oeil Vins ;)

Merci beaucoup à tous pour votre aide !
Ajouter un commentaire
Réponse
+0
moins plus
De rien ;)

Oubli pa dposté un ptit résolu !!!
Ajouter un commentaire
Réponse
+0
moins plus
Résolu !
Ajouter un commentaire
Ce document intitulé « Erreur Update SQL » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?