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 !

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.