Page 1 sur 1
Pb insertion données
Posté : 09 juil. 2007, 14:17
par laeti
Bonjour,
Je travaille sur une base de données PostgreSQL, j'ai réussi à insérer des données via mon formulaire Php dans la BD mais certains champs, bien que saisis dans le formulaire, ne sont pas insérer. Je ne comprends pas pourquoi. Est-ce que quelqu'un peut m'aider? Merci par avance.
Posté : 09 juil. 2007, 14:21
par Garth
Sans code c'est vraiment dur de t'aider a trouver d'ou peu venir l'erreur
Posté : 09 juil. 2007, 14:24
par laeti
Ok pas de pb, je mets mon code:
<?php
/* 1/ Se connecter à la base de données */
// ---------------------------------------------------------------
include ("fonctions/fonctions.inc.php");
ConnexionBase("BD_Stage2");
/* 2/ On teste si les variables du formulaire sont bien déclarées */
// -----------------------------------------------------------------------------------------------
$Nom=$_POST['Nom'];
$Sigle=$_POST['Sigle'];
$Adresse=$_POST['Adresse'];
$Code_Postal=$_POST['Code_Postal'];
$Commune=$_POST['Commune'];
$Téléphone=$_POST['Téléphone'];
$Fax=$_POST['Fax'];
$Email=$_POST['Email'];
$Site_internet=$_POST['Site_internet'];
$Nombre_employés=$_POST['Nombre_employés'];
$Type_structure=$_POST['Type_structure'];
$Activité=$_POST['Activité'];
/* 4/ On prépare la requête pour insérer les données dans la table structure */
//------------------------------------------------------------------------------------------------------
$sql = "INSERT INTO structure(str_nom, str_sigle, str_tel, str_fax, str_mel,str_site_internet, str_nb_employes) VALUES ('".$Nom."','".$Sigle."','".$Téléphone."','".$Fax."','".$Email."','".$Site_internet."','".$Nombre_employés."')";
/* 5/ On insère les informations du formulaire dans la table structure */
// -----------------------------------------------------------------------------------------------
pg_query($sql) or die('Erreur SQL !'.$sql.'<br>'.pg_result_error());
//affichage des résultats, pour savoir si l'insertion a marchée:
if($sql)
{
echo("L'insertion a été correctement effectuée") ;
}
else
{
echo("L'insertion à échouée") ;
}
?>
Posté : 09 juil. 2007, 14:41
par Ryle
Et quels sont les champs qui ne sont pas renseignés ?
Si c'set $Type_structure ou $Activité, c'est normal, ils ne sont pas spécifiés dans ta requête d'insertion
(Nota : ca ne changera probablement rien, mais par habitude, évite de mettre des accents dans tes noms de variable

)
Posté : 09 juil. 2007, 14:41
par charabia
As-tu bien vérifié que tous les noms des champs qui posent problème sont identique ?
NB : évites les accents lorsque tu nommes tes champs.
Posté : 09 juil. 2007, 14:45
par laeti
Ce sont les champs Nom et Email qui sont concernés par mon problème. Je n'ai pas encore traité l'insertion des champs activité et type_structure car ils font partis d'une autre table.
En ce qui concerne les accents, ça marche mais vous avez raison donc je les ai enlevés.
Posté : 09 juil. 2007, 15:11
par charabia
Affiches $_POST['Nom'] et $_POST['Email'] pour voir si tu as bien quelque chose.
Posté : 09 juil. 2007, 15:13
par Ryle
Y a pas vraiment de raison à première vue... affiche la requête avant de l'exécuter, ou plus simplement les valeurs de $_POST['Nom'] ou $_POST['Email'] pour vérifier que les valeurs sont bien présentes.... tes champs ont bien les bons noms ? (casse majuscule/minuscule)

Posté : 09 juil. 2007, 15:15
par laeti
Mes champs ont bien les mêmes noms et rien ne s'affiche quand je fais un echo de ces champs. Je ne comprend pas.
Posté : 09 juil. 2007, 15:21
par zeus
fait un print_r($_POST) et affiche nous le résultat stp

Posté : 09 juil. 2007, 15:23
par Ryle
Tu nous montres ton formulaire ?
Sinon je vois pas trop... ça peut peut être venir de ton script fonctions.inc.php, si jamais il affecte ces variables ? mais bon, je doute..
Posté : 09 juil. 2007, 15:28
par laeti
Voici mon formulaire:
<!-- Construction du formulaire de saisie de l'enquête-->
<FORM action="traitement_BD.php" method="POST" name="envoi">
<div id=p1> La structure </div>
<TABLE class="table" width="80%" border="0" align="left" hspace="0" vspace="10">
<TR>
<TD><font face="Verdana" size="2">Nom :</font></TD>
<TD><input name="Nom" type="text"></TD>
</TR>
<TR>
<TD><font face="Verdana" size="2">Sigle :</font></TD>
<TD><input name="Sigle" type="text"></TD>
</TR>
<TR>
<TD><font face="Verdana" size="2">Adresse :</font></TD>
<TD><input name="Adresse" type="text" size="50" maxlength="500"></TD>
</TR>
<TR>
<TD><font face="Verdana" size="2">Code Postal :</font></TD>
<TD><select size="1">
<!--Intégration des codes postaux de la base de données dans la combobox--->
<?php
// requête sql
$sql = "SELECT DISTINCT com_cp FROM commune ORDER BY com_cp asc";
// on sélectionne toutes les entrées code postal de la table commune
$req=pg_query($sql) or die('Erreur SQL !'.$sql.'<br>'.pg_resul_error());
//On affiche ces entrées
while ($line=pg_fetch_array($req))
{
echo "<option name='Code_Postal'>".$line['com_cp']."</option>";
}
?></select> </TD>
<TD><font face="Verdana" size="2">Commune :</font></TD>
<TD><select size="1">
<!--Intégration des communes de la base de données dans la combobox--->
<?php
// requête sql
$sql = "SELECT DISTINCT com_nom FROM commune ORDER BY com_nom asc";
// on sélectionne toutes les entrées nom de commune de la table commune
$req=pg_query($sql) or die('Erreur SQL !'.$sql.'<br>'.pg_resul_error());
//On affiche ces entrées
while ($line=pg_fetch_array($req))
{
echo "<option name='Commune'>".$line['com_nom']."</option>";
}
?></select></TD>
</TR>
<TR>
<TD><font face="Verdana" size="2">Téléphone :</font></TD>
<TD><input name="Téléphone" type="text"></TD>
<TD><font face="Verdana" size="2">Fax :</font></TD>
<TD><input name="Fax" type="text"></TD>
</TR>
<TR>
<TD><font face="Verdana" size="2">Email :</font></TD>
<TD><input name="Email" type="text" size="40"></TD>
</TR>
<TR>
<TD><font face="Verdana" size="2">Site internet :</font></TD>
<TD><input name="Site_internet" type="text" size="40"></TD>
</TR>
<TR>
<TD><font face="Verdana" size="2">Nombre d'employés :</font></TD>
<TD><input name="Nombre_employés" type="text" size="10"></TD>
</TR>
<TR>
<TD><font face="Verdana" size="2">Type de structure :</font></TD>
<TD><select size="1">
<!--Intégration des types de structure de la base de données dans la combobox--->
<?php
// requête sql
$sql = "SELECT DISTINCT type_str_libelle FROM type_structure ORDER BY type_str_libelle asc";
// on sélectionne toutes les entrées type de structure de la table type_structure
$req=pg_query($sql) or die('Erreur SQL !'.$sql.'<br>'.pg_resul_error());
//On affiche ces entrées
while ($line=pg_fetch_array($req))
{
echo "<option name='Type_structure'>".$line['type_str_libelle']."</option>";
}
?></select></TD>
</TR>
<TR>
<TD><font face="Verdana" size="2">Secteur d'activité ou de compétence de la structure :</font></TD>
<TD><select size="1">
<!--Intégration des secteurs d'activité de la base de données dans la combobox--->
<?php
// requête sql
$sql = "SELECT DISTINCT act_str_libelle FROM activite_structure ORDER BY act_str_libelle asc";
// on sélectionne toutes les entrées activités de la table activite_structure
$req=pg_query($sql) or die('Erreur SQL !'.$sql.'<br>'.pg_resul_error());
//On affiche ces entrées
while ($line=pg_fetch_array($req))
{
echo "<option name='Activité'>".$line['act_str_libelle']."</option>";
}
?></select></TD>
</TR>
</TABLE>
[/code][/php]
Personne n'a d'idées. Je suis toujours bloquée et je n'y comprends rien.
Merci.
Posté : 10 juil. 2007, 10:59
par charabia
C'est étonnant en effet...
Ce que tu peux faire c'est d'essayer sur 2 pages vraiment très simple qui ne contienne que ces deux champs en supprimant tout le superflu, c'est mieux pour déceler l'erreur. Là je ne vois pas trop pourquoi le reste marche et pas ces deux champs.
Posté : 10 juil. 2007, 11:12
par laeti
Mon problème est résolu. C'est bizarre, j'ai juste changer les noms des variables qui posaient problème. C'est assez incompréhensible mais maintenant ça marche c'est le principal.
Merci pour vos réponses et votre aide.