8791 sujets

Développement web côté serveur, CMS

bonjour à tous,

je réalise un petit formulaire que je souhaite stocker ds une BDD sous phpMysql.

Il y a une erreur sur ma requete d'insertion et phpMyadmin me dit que cela vient d'une erreur de syntaxe mais perso après des heures de modifs, je me demande si cela vient vraiment de la...


<?php 
	
	//appel du fichier connexion
	include("../includes/connection.php");
	
	
	//initialisation des variables
	
	$profession_ij= "";
	$exercice_ij= "";
	$part_act_liberal_ij= "";
	$montant_ij= "";
	$franchise_ij= "";
	$duree_ij= "";
	$date_naissance_ij= "";
	$madelin_ij="";
	$madelinOui = "checked=\"checked\"";
	$madelinNon = "";
		
	$date_install_ij= "";
	$nom_ij= "";
	$prenom_ij= "";
	
	$sexe_ij="";
	$sexeM="checked=\"checked\"";
	$sexeF="";
		
	$mail_ij= "";
	$tel_ij= "";
	$commentaire_ij= "";
	
	$erreur="";
	
	// envoi du formulaire, je recupere mes données
	
	if(isset($_POST["simuler"]))
	{
		$profession_ij = $_POST["profession_ij"];
		$exercice_ij = $_POST["exercice_ij"];
		$part_act_liberal_ij = $_POST["part_act_liberal_ij"];
		$montant_ij = $_POST["montant_ij"];
		$franchise_ij = $_POST["franchise_ij"];
		$duree_ij = $_POST["duree_ij"];
		$madelin_ij = $_POST["madelin_ij"];
		$date_naissance_ij = ($_POST["date_naissance_ij"]);
		$date_install_ij = ($_POST["date_install_ij"]);
		$nom_ij = $_POST["nom_ij"];
		$prenom_ij = $_POST["prenom_ij"];
		$sexe_ij = $_POST["sexe_ij"];
		$mail_ij = $_POST["mail_ij"];
		$tel_ij = $_POST["tel_ij"];
		$commentaire_ij = $_POST["commentaire_ij"];	
	

		
		// Test des champs du formulaire
		
		if(empty($date_naissance_ij) AND (!preg_match( '`^\d{1,2}/\d{1,2}/\d{4}$`' , $date_naissance_ij)))
			{			
			$erreur = "Veuillez indiquer votre date de naissance en suivant l'exemple";
			}	
				
		if (empty($part_act_liberal_ij) AND (!is_numeric($part_act_liberal_ij)))
			{		
			$erreur .= "<br> Veuillez indiquer le % de la part de l'activité libérale et cette valeur doit être numérique";
			}
		
		if(empty($montant_ij) AND (!is_numeric($montant_ij)))
			{			
			$erreur .= "<br>Veuillez indiquer le montant des IJ et cette valeur doit être numérique";
			}
		
		if(!empty($date_install_ij) AND (!preg_match( '`^\d{1,2}/\d{1,2}/\d{4}$`' , $date_install_ij)))
			{		
			$erreur .= "<br>Veuillez respecter le format des date indiqué pour votre date d'installation";
			}
		
		if(empty($nom_ij))
			{		
			$erreur .= "<br>Veuillez indiquer votre nom SVP";
			}
		
		if(empty($prenom_ij))
			{			
			$erreur.= "<br>Veuillez indiquer votre prenom SVP";
			}
		
		if(empty($mail_ij) AND (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{3,}\.[a-z]{2,4}$#" , $mail_ij)))
			{			
			$erreur .= "<br>Veuillez indiquer votre adresse email ou votre adresse email n'est pas valide";
			}
			
		if(!empty($tel_ij) AND (!is_numeric($tel_ij)))
			{			
			$erreur .= "<br>La valeur de votre N° de téléphone doit être numérique";
			}
			
		if($erreur == "")
		{
				
			
		$sql="INSERT INTO SIMULATION (PROFESSION, EXERCICE, PART_ACT_LIBERALE, MONTANT, FRANCHISE, DUREE, DATE_NAISSANCE, DATE_INSTALL, 
		NOM, PRENOM, MAIL, TELEPHONE, COMMENTAIRE, MADELIN, SEXE) VALUES ('".$profession_ij."', '".$exercice_ij."', '".
		$part_act_liberal_ij."', '".$montant_ij."', '".$franchise_ij."', '".$duree_ij."	
		','DATE_FORMAT('$date_naissance_ij','%d/%m/%Y')','DATE_FORMAT('$date_install_ij','%d/%m/%Y')', '".$nom_ij."', '".$prenom_ij."', 
		'".$mail_ij."', '".$tel_ij."', '".$commentaire_ij."', '".$madelin_ij."', '".$sexe_ij."')";
													
		$req=mysql_query($sql);
		
			if(!$req)		
			{
			$erreur .= "une erreur existe sur la requete : ".$sql;
			}
		}
	}
?>


Toute aide est la bienvenue car la ma tete ma exploser!!

voici le resultat de la requete sous phpMyadmin:

requête SQL:

$sql = "INSERT INTO SIMULATION

(PROFESSION, EXERCICE, PART_ACT_LIBERALE, MONTANT, FRANCHISE, DUREE, DATE_NAISSANCE, DATE_INSTALL, NOM, PRENOM, MAIL, TELEPHONE, COMMENTAIRE, MADELIN, SEXE) VALUES

('".$profession_ij. "', '".$exercice_ij. "', '".$part_act_liberal_ij. "', '".$montant_ij. "', '".$franchise_ij. "', '".$duree_ij. " ','DATE_FORMAT('$date_naissance_ij','%d/%m/%Y')','DATE_FORMAT('$date_install_ij','%d/%m/%Y')', '".$nom_ij. "', '".$prenom_ij. "', '".$mail_ij. "', '".$tel_ij. "', '".$commentaire_ij. "', '".$madelin_ij. "', '".$sexe_ij. "')"

MySQL a répondu:

#1064 - 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 '$sql="INSERT INTO SIMULATION (PROFESSION, EXERCICE, PART_ACT_LIBERALE, MONTANT, ' at line 1
Modifié par Latomate (25 Aug 2010 - 14:44)
Salut,

Latomate a écrit :
Il y a une erreur sur ma requete d'insertion et phpMyadmin me dit que cela vient d'une erreur de syntaxe mais perso après des heures de modifs, je me demande si cela vient vraiment de la...
Quel taquin ce phpMyadmin ! Smiley lol

Je n'ai pas regardé dans le détail mais en tout cas tu ne devrais pas utiliser DATE_FORMAT au moment de l'insert puisque mysql stocke les champs de type date comme il le souhaite. Il ne sert que pour la restitution et donc dans un select.
en fait sous phpMyadmin, la requête marche(sans les DATE_FORMAT) en supprimant les guillemets autour de la requete!!

mais si je les enlève de ma page PHP, cela me génère une erreur Smiley decu

comment faire?
merci pr ton aide!

j'ai trouvé mon erreur et je confirme qu'il fallait aussi convertir les date

encore merci
Latomate a écrit :
j'ai trouvé mon erreur et je confirme qu'il fallait aussi convertir les date
Si tu veux dire par là que tu stockes des dates dans des champs de type texte ça n'est pas forcément une bonne idée car du coup tu n'as plus accès à la foultitude de fonctions disponibles.

Si tu considères que ce sujet est [Résolu] merci de l'indiquer en éditant ton premier post et en modifiant le titre. Smiley cligne