problème avec un update

problème avec un update - PHP - Programmation

Marsh Posté le 16-06-2009 à 13:50:59    

Bonjour tout le monde, j'ai un problème avec mon update au niveau du champ de la date de naissance,c'est une faute de simple et double quotte mais je ne les vois pas, je vous laisse mon update :  
 

Code :
  1. $sql="UPDATE personnel SET code_perso='".mysql_escape_string($_POST['code'])."',
  2.   civil_perso='".mysql_escape_string($_POST['civil'])."',
  3.             nom_perso='".mysql_escape_string($_POST['nom'])."',
  4.             prenom_perso='".mysql_escape_string($_POST['prenom'])."',
  5.   dateNaissance_perso = str_to_date'"('".$_POST['datenaiss']."',"%d-%m-%Y" )."',
  6.             adr_perso='".mysql_escape_string($_POST['adr'])."',
  7.             cp_perso='".mysql_escape_string($_POST['cp'])."',
  8.             ville_perso='".mysql_escape_string($_POST['ville'])."',
  9.             tel_perso='".mysql_escape_string($_POST['tel'])."',
  10.             port_perso='".mysql_escape_string($_POST['port'])."',
  11.             mail_perso='".mysql_escape_string($_POST['mail'])."',
  12.             id_service='".mysql_escape_string($_POST['service'])."',
  13.             id_cat='".mysql_escape_string($_POST['categorie'])."',
  14.             WHERE id_perso='".($_POST['choix'])."'";


Meric par avance pour votre aide.

Reply

Marsh Posté le 16-06-2009 à 13:50:59   

Reply

Marsh Posté le 16-06-2009 à 13:58:52    

hi,
 
au lieu de :
 
str_to_date'"('".$_POST['datenaiss']."',"%d-%m-%Y" )."',
 
essaie plutôt
'".str_to_date('".$_POST['datenaiss']."',"%d-%m-%Y" )."',


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 16-06-2009 à 14:00:29    

J'ai essayé mais cela ne marche pas car str_to_date est considéré comme une fonction en php alors que str_to_date est une fonction sql.

Reply

Marsh Posté le 16-06-2009 à 14:01:27    

Editeur de texte à coloration syntaxique, ça te dis quelque chose ?
 
Sous Windows tu trouves - par exemple - Notepad++.
(Sous Linux, tous les éditeurs que j'ai testé le font  :D )
 
Avec ça, en 10 sec tu trouves l'erreur  :sol:  
 

Reply

Marsh Posté le 16-06-2009 à 14:11:51    

oui bien sur que oui je connais, mais des fois la coloration syntaxique est juste mais cela ne marche toujours pas

Reply

Marsh Posté le 16-06-2009 à 14:19:32    

rafale69300 a écrit :

oui bien sur que oui je connais, mais des fois la coloration syntaxique est juste mais cela ne marche toujours pas


Des fois.
Ici :

Code :
  1. $sql="UPDATE personnel SET code_perso='".mysql_escape_string($_POST['code'])."',
  2.  civil_perso='".mysql_escape_string($_POST['civil'])."',
  3.            nom_perso='".mysql_escape_string($_POST['nom'])."',
  4.            prenom_perso='".mysql_escape_string($_POST['prenom'])."',
  5.  dateNaissance_perso = str_to_date'"('".$_POST['datenaiss']."',"%d-%m-%Y" )."',
  6.            adr_perso='".mysql_escape_string($_POST['adr'])."',
  7.            cp_perso='".mysql_escape_string($_POST['cp'])."',
  8.            ville_perso='".mysql_escape_string($_POST['ville'])."',
  9.            tel_perso='".mysql_escape_string($_POST['tel'])."',
  10.            port_perso='".mysql_escape_string($_POST['port'])."',
  11.            mail_perso='".mysql_escape_string($_POST['mail'])."',
  12.            id_service='".mysql_escape_string($_POST['service'])."',
  13.            id_cat='".mysql_escape_string($_POST['categorie'])."',
  14.            WHERE id_perso='".($_POST['choix'])."'";


(Utilisation de la balise code=php)
Je ne suis pas sûr que ce soit normal d'avoir ton $_POST dans la chaîne de caractère (ligne 5).
 
Accessoirement, moi aussi j'ai du mal avec les concaténations et les quotes
Du coup je décompose...

Code :
  1. $sql="UPDATE personnel SET code_perso='".mysql_escape_string($_POST['code']);
  2. $sql .= "',
  3.  civil_perso='".mysql_escape_string($_POST['civil']);

Reply

Marsh Posté le 16-06-2009 à 14:25:27    

Je ne comprend pas ta décomposition

Reply

Marsh Posté le 16-06-2009 à 14:38:32    

Au lieu de tout mettre d'un coup dans la variable, à coup de  

Code :
  1. $mavar = "bla"."blah";


je procède par étape :

Code :
  1. $mavar = "bla";
  2. $mavar .= "bla";

C'est plus lisible, en cas d'erreur on la repère plus facilement, et je ne suis pas sûr que ça prenne beaucoup plus de temps à traiter.

Reply

Marsh Posté le 17-06-2009 à 16:57:14    

rafale69300 a écrit :

Bonjour tout le monde, j'ai un problème avec mon update au niveau du champ de la date de naissance,c'est une faute de simple et double quotte mais je ne les vois pas, je vous laisse mon update :  
 

Code :
  1. $sql="UPDATE personnel SET code_perso='".mysql_escape_string($_POST['code'])."',
  2.   civil_perso='".mysql_escape_string($_POST['civil'])."',
  3.             nom_perso='".mysql_escape_string($_POST['nom'])."',
  4.             prenom_perso='".mysql_escape_string($_POST['prenom'])."',
  5.   dateNaissance_perso = str_to_date'"('".$_POST['datenaiss']."',"%d-%m-%Y" )."',
  6.             adr_perso='".mysql_escape_string($_POST['adr'])."',
  7.             cp_perso='".mysql_escape_string($_POST['cp'])."',
  8.             ville_perso='".mysql_escape_string($_POST['ville'])."',
  9.             tel_perso='".mysql_escape_string($_POST['tel'])."',
  10.             port_perso='".mysql_escape_string($_POST['port'])."',
  11.             mail_perso='".mysql_escape_string($_POST['mail'])."',
  12.             id_service='".mysql_escape_string($_POST['service'])."',
  13.             id_cat='".mysql_escape_string($_POST['categorie'])."',
  14.             WHERE id_perso='".($_POST['choix'])."'";


Meric par avance pour votre aide.


Salut,
Essaye ça :

Code :
  1. $sql="UPDATE personnel SET code_perso='".mysql_escape_string($_POST['code'])."',
  2.             civil_perso='".mysql_escape_string($_POST['civil'])."',
  3.            nom_perso='".mysql_escape_string($_POST['nom'])."',
  4.            prenom_perso='".mysql_escape_string($_POST['prenom'])."',
  5.             dateNaissance_perso = str_to_date('".$_POST['datenaiss']."','%d-%m-%Y'),
  6.            adr_perso='".mysql_escape_string($_POST['adr'])."',
  7.            cp_perso='".mysql_escape_string($_POST['cp'])."',
  8.            ville_perso='".mysql_escape_string($_POST['ville'])."',
  9.            tel_perso='".mysql_escape_string($_POST['tel'])."',
  10.            port_perso='".mysql_escape_string($_POST['port'])."',
  11.            mail_perso='".mysql_escape_string($_POST['mail'])."',
  12.            id_service='".mysql_escape_string($_POST['service'])."',
  13.            id_cat='".mysql_escape_string($_POST['categorie'])."',
  14.            WHERE id_perso='".($_POST['choix'])."'";


La ligne avec le str_to_date a un problème de quotes.

Reply

Marsh Posté le 17-06-2009 à 19:05:53    

J'ajouterais que $_POST['choix'] est directement utilisé dans ta requête, alors que mysql_real_escape_string est appliquée à tous les autres paramètres.

Reply

Sujets relatifs:

Leave a Replay

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