Erreur Update SQL

Fermé
wsaenot - 12 févr. 2009 à 17:14
 wsaenot - 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 !
A voir également:

5 réponses

Utilisateur anonyme
12 févr. 2009 à 17:28
je croix il faut ecrire id=2 pas id='2'
0
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.
0
Utilisateur anonyme > wsaenot
12 févr. 2009 à 18:10
derien wsaenot
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
13 févr. 2009 à 05:14
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 + ;)

^^...
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
13 févr. 2009 à 05:15
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 ..

0
Ah ouaaaiiis... j'avais pas vu.

Bon coup d'oeil Vins ;)

Merci beaucoup à tous pour votre aide !
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
13 févr. 2009 à 12:05
De rien ;)

Oubli pa dposté un ptit résolu !!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Résolu !
0