Page 1 sur 1

Formulaire PHP et MySQL

Posté : 15 déc. 2011, 23:22
par SNY77
Bonjour, je dois créer un formulaire pour remplir une table dans une BDD. Les valeurs du formulaires ne s'inscrivent pas dans la BDD. Parcontre, si je mets directements les valeurs dans la requête SQL elles sont bien envoyées.
La connexion vers ma BDD fonctionne.
Merci de votre aide.
<center><b>Remplissage de la table</b></center></h1>
<FORM method=post action="form.php">
<h3><u>Completer le formulaire pour remplir la table :</u></h3>
<TABLE BORDER=5>
 
<TR>
	<TD>Entrez le nom</TD>
	<TD>
	<INPUT type=text name="Name_test" >
	</TD>
</TR>
 
<TR>
	<TD>Entrez le Number</TD>
	<TD>
	<INPUT type=text name="Number_test" >
	</TD>
 
<TR>
	<TD>Entrez la description</TD>
	<TD>
	<INPUT type=text name="Description_test" >
	</TD>
</TR>
 
<TR>
	<TD>Entrez le PartNumber</TD>
	<TD>
	<INPUT type=text name="PartNumber" >
	</TD>
</TR>
 
<TR>
	<TD>Entrez le num_EC</TD>
	<TD>
	<INPUT type=text name="num_EC" >
	</TD>
</TR>	
 
	<TR>
	<TD COLSPAN=2>
	<INPUT type="submit" value="Envoyer">
	</TD>
</TR>
 
</TABLE>
</FORM>
<?
<?php
$db = mysql_connect('127.0.0.1', 'root', '1234');  
mysql_select_db('bdd',$db); 
 
// Recuperation des valeurs :
 
$Name_test = $_POST['Name_test'];
$Number_test = $_POST['Number_test'];
$Description_test = $_POST['Description_test'];
$PartNumber = $_POST['PartNumber'];
$num_EC = $_POST['num_EC'];
 
 
 
 
// Insertion des valeurs :
$insertion = "insert into test_table (Name_test, Number_test, Description_test, PartNumber, num_EC) values ('$Name_test', '$Number_test', 
'$Description_test','$PartNumber', '$num_EC')";
mysql_query($insertion)
 
?>

Re: Formulaire PHP et MySQL

Posté : 15 déc. 2011, 23:48
par Ryle
Tu as un "<?" en trop, suivi d'un <?php au début de ton script... ;)

Re: Formulaire PHP et MySQL

Posté : 16 déc. 2011, 00:08
par SNY77
Non c'est juste dans mon copier/coller.
La page s'affiche bien, quand je mets directement les valeurs des parametres de la table dans la requêtes, les enrengistrements sont dans la BDD.
Parcontre, quand je remplis le formulaire et j'appuie sur envoyer, ils ne sont pas envoyés dans la BDD.
merci.

Re: Formulaire PHP et MySQL

Posté : 16 déc. 2011, 08:18
par xTG
Protèges les valeurs avec mysql_real_escape_string().
Et pour déboguer regardes ce que retourne mysql_error().

Re: Formulaire PHP et MySQL

Posté : 16 déc. 2011, 11:09
par SNY77
Lorsque je fais un echo de ma requête j'ai ça :
insert into test_table (Name_test, Number_test, Description_test, PartNumber, num_EC) values ('1', '2', '3','', '')
Comme vous le voyez, les valeurs des deux derniers champs ont disparus ! (Pourtant j'ai bien données une valeur sur le formulaire). Et sur la BDD, il n'y a aucun enrengistrements !
Et pour la commande
mysql_real_escape_string()
j'ai tout mis apres la requête :
mysql_real_escape_string($Name_test, $db);
mysql_real_escape_string($Number_test, $db);
mysql_real_escape_string($Description_test, $db);
mysql_real_escape_string($PartNumber, $db);
mysql_real_escape_string($num_EC, $db);
Merci ...

Re: Formulaire PHP et MySQL

Posté : 16 déc. 2011, 13:27
par SNY77
C'est bon ça fonctionne (enfin!). Parcontre, je voudrais eviter d'avoir des erreurs lors du 1er affichage de la page (car le champs n'est pas remplis).
Je voudrais aussi vérifier que les champs sont bien remplis sauf Description_test qui est optionnel.
Merci;

Re: Formulaire PHP et MySQL

Posté : 16 déc. 2011, 17:44
par liens_geeks
Salut,
Tu peux faire un if(isset($_POST[nom_d_un_des_champs_obligatoires]))
{
//le code PHP que tu as mis dans ton 1er message
}

Tu peux tester, dans ta condition, si tes champs sont remplis avec empty() ou !empty()

Ciao
Jérôme