Page 1 sur 1

Insertion de données dans bdd par formulaire

Posté : 13 oct. 2014, 22:51
par cuixia
Bonjours,
je suis débutante en php et j'ai un premier bug que je n'arrive pas à résoudre.
En effet, mon erreur ne s'affiche pas à l'écran, je remplie un formulaire, le message de confirmation d'inscription dans la base de données apparaît, mais dans la base de données sur phpMyyAdmin.. il n'y a rien.

Je me demande si le bug ne vient pas d'un mélange entre le PDO et le mysql dans mon code..?

Je vous mets tout le code.. je ne suis pas encore assez douée pour localiser précisément mon erreur.. :oops:

Merci d'avance !


<?php
	include('config_bdd.php');	
	include('espace_membre.php');	
	?>

	<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="style.css" />
        <title>AJOUTER FICHE ETAPE 01 TEST 001</title>
    </head>
	
	<body>
	
	<div id="contenu">
		<div id="menu_fiche">Menu Fiche</div>
		
		<div id="fiche_utilisateur">
			
			<?php			
			// Si le formulaire a bien été envoyé:
			if( isset($_POST['nom_fiche']) && isset($_POST['sigle_fiche']) && isset($_POST['choix_pp']) ) 
			{
				
				//On echappe les variables pour pouvoir les mettre dans des requetes SQL
				if(get_magic_quotes_gpc()) 
				{
					$nom_fiche_form = stripslashes($_POST['nom_fiche']);
					$sigle_fiche_form = stripslashes($_POST['sigle_fiche']);
					$choix_pp_form  = stripslashes($_POST['choix_pp']);
				} 
				else 
				{
					$nom_fiche_form = $_POST['nom_fiche'];
					$sigle_fiche_form = $_POST['sigle_fiche'];
					$choix_pp_form = $_POST['choix_pp'];
				}
				
				$fixed_nom_fiche_form = mysql_real_escape_string($nom_fiche_form);
				$fixed_sigle_fiche_form = mysql_real_escape_string($sigle_fiche_form);
				$fixed_choix_pp_form = mysql_real_escape_string($choix_pp_form);	
				
				// On sélectionne l'id de la politique publique choisie; TABLE POLITIQUE PUBLIQUE
				$requete_select_idPP =  mysql_query('
										SELECT idPP 
										FROM politique_publique
										WHERE nom = "'.$fixed_choix_pp_form.'"
										');
				$select_idPP = mysql_fetch_array($requete_select_idPP);
				
				//On remplie la base de donnée grâce à une requête "préparée" ; TABLE FICHE
				try
				{
					$req = $bdd-> prepare("
											INSERT INTO fiche 
											VALUE ('', :nom, :sigle, NOW(), NOW(), '', :idUser, :idPP)"
										);
										
					$req -> execute (array(	'nom' => $fixed_nom_fiche_form,
											'sigle' => $fixed_sigle_fiche_form,
											'idUser' => $_SESSION['idUser'],
											'idPP' => $select_idPP
											));	
				}
				catch(Error $ec)
				{
					error(3);
				}		

				
				// On cache le formulaire :
				$form = false;
				
				//On redirige l'utilisateur vers l'étape suivante
				header('location:ajouter_fiche_etape_02.php');
				exit();
			}
			else
			{
				$form = true;
			}
			
			if($form)
			{
			?>	
				<p> Entrez les information liées à la fiche <p>
					<form action="ajouter_fiche_etape_01.php" method="post">
						<p>
							Nom : 		<input type="text" name="nom_fiche"> <br/>
							Sigle : 	<input type="text" name="sigle_fiche"> <br/>
							Politique publique ratachée : 	<select name="choix_pp">
																<option value "Agriculture">Agriculture</option>
																<option value "Economie">Economie</option>
																<option value "Emploi">Emploi</option>
																<option value "Logement">Logement</option>
																<option value "Ressource_Maritme">Ressource Maritme</option>
																<option value "Tourisme">Tourisme</option>
																<option value "Travail">Travail</option>
															</select><br/>
							<input type="submit" value="Suivant"/><br/>
						</p>
					<form/>
			<?php
			}
			?>			
		</div>
	
<div id="piedpage">Ceci est le pied de page</div>
		
    </body>
	
</html>


Re: Insertion de données dans bdd par formulaire

Posté : 14 oct. 2014, 02:26
par Genova
Bonsoir,

Il faut toujours faire
$result = mysql_query('votre requete') or die(mysql_error());
pour afficher les erreurs, car par mysql_query() ne les affiche pas.

Cdt