Bonjour,
j'ai créé un formulaire qui doit envoyé des informations dans la base de donnée. Si je fais un simple INSERT INTO ca marche sans probleme, mais j'ai du utilisé des if et des else pour éviter des répétitions de nom et des truc pour obligé la personne à remplir un champs.
Déjà une chose, lorsque je valide le formulaire, il n'y a aucune erreur et en vérifiant dans la base de donnée, rien n'a été rajouté.
Voici mon formulaire MEMBRE.PHP
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <form method="POST" action="membre.php"> <table> <tr> <td><strong>SOCIETE ou NOM : </strong></td> <td><input type="text" name="societe" /></td> </tr> <tr> <td><strong>ADDRESSE : </strong></td> <td><input type="text" name= "adresse" /></td> </tr> <tr> <td><strong>CODE POSTAL : </strong></td> <td><input type="text" name="cp" /></td> </tr> <tr> <td><strong>VILLE : </strong></td> <td><input type="text" name="ville" /></td> </tr> </table> <input type="submit" value="Valider" /> </form>
et la page de traitement (MEMBRE.PHP même page):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 <?php // on vérifie que la variable Valider est créé et on vérifie bien qu'elle corresponde au bouton Valider if (isset($_POST['Valider']) && $_POST['Valider'] == 'Valider') { // on vérifie que la variable societe est créé et qu'elle contient bien une valeur if ((isset($_POST['societe']) && !empty($_POST['societe']))) { // connection à la base $db = mysql_connect("localhost","root", ""); mysql_select_db("mabase", $db); //on compte tous les éléments du tableau, si une variable n'est pas affecté alors count renvoit 0 dans l'unique but de vérifier que le nom de société n'existe pas déjà $req = mysql_query('SELECT count (*) FROM test WHERE T1_1= "'.addslashes($_POST['societe']).'"'); $data = mysql_fetch_array($req); // dans le cas où le nom de société n'existe pas encore if ($data[0] == 0) { $query = 'INSERT INTO test(T1_0, T5_1, T1_1, T1_2, T1_3, T1_4) VALUES ("","","'.addslashes($_POST['societe']).'", "'.addslashes($_POST['adresse']).'", "'.addslashes($_POST['cp']).'", "'.addslashes($_POST['ville']).'")'; echo "Les informations ont été enregistré dans la base de donnée"; mysql_query($query); } // si le nom de société existe déjà else { echo "Une société portant le même nom existe déjà"; } } //Si le champ SOCIETE n'est pas remplie. else { echo "Vous devez saisir un nom de société"; } } ?>
Je ne vois absolument pas où est mon erreur. Dans la table test le champ société est défini à obligatoire. Voila pourquoi j'ai précisé dans le code php qu'il affiche cette remarque si l'utilisateur ne rempli pas le champ SOCIETE du formulaire or ca n'a pas l'air de fonctionner. Rassurez moi EMPTY permet bien de voir qu'une variable a été affecté et en l'occurance qu'une champ a été rempli ?
Merci pour votre aide
PS: je précise que les noms de mes champs sont bien de la forme T1_1, T1_2, T1_3 etc...
Partager