Page 1 sur 1

probleme insertion BDD MySQL

Posté : 14 janv. 2012, 00:04
par amonite
Bonsoir,

J'ai voulu faire un formulaire pour inserer des données dans ma base de données, mais il me met toujours, une erreur est survenue.

Je vous mets ci-dessous le code, si quelqu'un a une idée, je suis preneur.

Merci d'avance.

fichier avec le formulaire en php

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Document sans titre</title> </head> <body> <?php include('../connexion.php'); ?> <span class="titre">Ajouter un evenement</span> <form action="ajout_produit.php" method="post" enctype="multipart/form-data" > <table><br /> <tr> <td>Nom : * </td> <td> <input class="" type="text" name="nom"/></td> </tr> <tr> <td>Prenom : * </td> <td><input class="" type="text" name="prenom"/> </td> </tr> <tr> <td>Age : * </td> <td><input class="" type="text" name="age"/> </td> </tr> <tr> <td>Code postal : * </td> <td> <input class="" type="text" name="code"/></td> </tr> <tr> <td>Ville : </td> <td><input class="" type="text" name="ville"/> </td> </tr> <tr> <td>Téléphone : * </td> <td><input class="" type="text" name="tel"/> </td> </tr> <tr> <td>Fax : * </td> <td><input class="" type="text" name="fax"/> </td> </tr> <tr> <td>Tel. portable : </td> <td><input class="" type="text" name="gsm"/> </td> </tr> <tr> <td>Email : </td> <td><input class="" type="text" name="email"/> </td> </tr> <tr> <td>sexe : </td> <td><input class="" type="text" name="sexe"/> </td> </tr> <tr> <td class="champs">* : champs obligatoires</td> </tr> </table> <br /> <input class="valider" name="valider" type="submit" value="Valider"/> </form> </div> </body> </html>

Re: probleme insertion BDD MySQL

Posté : 14 janv. 2012, 00:05
par amonite
Fichier de traitement du formulaire

Code : Tout sélectionner

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <?php // traitement pour ajouter un événement dans l'espace admin (checkbox) if (isset ($_POST['valider'])) { $nom = $_POST['nom']; $prenom = $_POST['prenom']; $age = $_POST['age']; $code = $_POST['code']; $ville = $_POST['ville']; $tel = $_POST['tel']; $fax = $_POST['fax']; $gsm = $_POST['gsm']; $email = $_POST['email']; $sexe = $_POST['sexe']; // Si l'un des champs est vide -> erreur if (empty ($nom) || empty($prenom) || empty($age) || empty($code) || empty($ville) || empty($email)) { echo '<body onLoad="alert(\'Veuillez entrer tous les champs.\')">'; header("refresh:1; URL = 'admin.php'"); } else { include('../connexion.php'); $nom = mysql_real_escape_string($nom) ; $prenom = mysql_real_escape_string($prenom); $age = mysql_real_escape_string($age); $code = mysql_real_escape_string($code); $ville = mysql_real_escape_string($ville); $tel = mysql_real_escape_string($tel); $fax = mysql_real_escape_string($fax); $gsm = mysql_real_escape_string($gsm); $email = mysql_real_escape_string($email); $sexe = mysql_real_escape_string($sexe); // Insertion dans la bdd $query = "insert into PROD(nom,prenom,age,code,ville,tel,fax,gsm,email,sexe) values('', '$nom', '$prenom', '$age', '$code', '$ville', '$tel', '$fax', '$gsm', '$email', '$sexe')"; mysql_real_escape_string($query); if (mysql_query($query)) { echo '<body onLoad="alert(\'Evenement ajoutée avec succès.\')">'; header("refresh:1; URL = 'admin.php' "); } else { echo '<body onLoad="alert(\'Une erreur a été détectée.\')">'; header("refresh:1; URL = 'admin.php' "); } //mysql_close(); } } ?>

Re: probleme insertion BDD MySQL

Posté : 14 janv. 2012, 15:37
par Ryle
Si tu as le message d'erreur, c'est que le test du if est faux, donc que la requête n'est pas correctement exécutée (donc qu'il y a une erreur dans ta requête sql)

Le mieux dans ces cas là, c'est d'utiliser mysql_error() pour connaitre le message d'erreur de mysql et d'afficher le sql que tu vas exécuter pour voir ce qui peut clocher.

En l'occurrence, le problème vient de ton utilisation de mysql_real_escape_string(). Il faut l'utiliser pour chacune des variables que tu utilises dans ta requête, et non pas sur ta chaine sql :)

Re: probleme insertion BDD MySQL

Posté : 14 janv. 2012, 17:23
par amonite
Bonjour Ryle,

J'ai trouver la solution, c'est dans le deuxieme code, après values, il y a '' entre les parenthese en trop.

Maintenant ca fonctionne.

Bonne journée