Message d'erreur BDD MYSQL

Fermé
comminx - 24 janv. 2008 à 01:40
 Alain42 - 24 janv. 2008 à 14:03
Bonjour,
Lorsque je valide l'envoie de mon formulaire vers ma base de donnée voici le message d'erreur que cela m'affiche:

Les données ont bien été transmisses.La requête ne fonctionne pas. La table n'a pas été mise à jour.
Duplicate entry '' for key 1
Quelqu'un pourrai m'expliquer svp
voila mon code HTML

<form name='formulaire' ENCTYPE="text/plain" method="post" action="TEST2.php">
<table>
<tr><td>Votre nom : </td><td><input name='nom' type='text' size='30'></td></tr>
<tr><td>Votre prénom : </td><td><input name='prénom' type='text' size='30'></td></tr>
<tr><td>Votre email</td><td><input name='email' type='text' size='30'></td></tr>
<tr><td>Le motif de votre message</td><td><input name='motif' type='radio' value='Auto-école'>
Renseignement<br>
<input name='motif' type='radio' value='Location-Auto' checked="checked">
Probleme technique<br>
<input name='motif' type='radio' value='Renseignement'>
Partenariat</td></tr>
<tr><td>Votre message</td><td><textarea name='message' cols='30' rows='10'></textarea></td></tr>
<tr><td height="32"><input name='annuler' type='reset' value='Annuler'></td><td>
<input name='soumettre' type="submit" value='Envoyer'></td></tr>
</table>
</form>

et PHP

<?php
//appel du fichier de connexion à la base de données
mysql_connect("localhost", "root", "5656");
mysql_select_db("antilles_auto");

//récupérations des valeurs saisies dans le formulaire
$nom=$_POST['nom'];
$prénom=$_POST['prénom'];
$email=$_POST['email'];
$motif=$_POST['motif'];
$message=$_POST['message'];

//affichage du contenu des variables
echo "Les données ont bien été transmisses.";

//insertion dans la base de données
$reqinsert="insert into formulaire(`nom`,`prénom`,`email`,`motif`,`message`) values ('$nom','$prénom','$email','$motif','$message');";

mysql_query($reqinsert) or die("La requête ne fonctionne pas. La table n'a pas été mise à jour. <br />".mysql_error());
// fermeture de la connexion
mysql_close();
?>


merci d'avance pour l'aide

1 réponse

Bonjour,

QQs erreurs, je t'ai mis des annotations

(au passage, évites de mettre tes codes de connexion à la base en clair sur le forum)

Est tu certain des noms des champs de ta base, as tu mis un champ id ou num en premier en auto increment. ?

<form name='formulaire' ENCTYPE="text/plain" method="post" action="TEST2.php">
<table>
<tr><td>Votre nom : </td><td><input name='nom' type='text' size='30'></td></tr>
<tr><td>Votre prenom : </td><td><input name='prénom' type='text' size='30'></td></tr>
<tr><td>Votre email</td><td><input name='email' type='text' size='30'></td></tr>
<tr><td>Le motif de votre message</td><td>
<!-- les libelles semblent ne pas etre en face des cases à cocher correspondantes -->
<input name='motif' type='radio' value='Auto-ecole'><!-- evites les acents -->
Renseignement<br>
<input name='motif' type='radio' value='Location-Auto' checked="checked">
Probleme technique<br>
<input name='motif' type='radio' value='Renseignement'>
Partenariat</td></tr>
<tr><td>Votre message</td><td><textarea name='message' cols='30' rows='10'></textarea></td></tr>
<tr><td height="32"><input name='annuler' type='reset' value='Annuler'></td><td>
<input name='soumettre' type="submit" value='Envoyer'></td></tr>
</table>
</form>

et PHP

<?php

if(isset($_POST['soumettre'])){
	//appel du fichier de connexion à la base de données
	mysql_connect("localhost", "root", "5656") or die("Pb connexion base ".mysql_error());
	mysql_select_db("antilles_auto") or die("Pb selection base ".mysql_error());;
	//récupérations des valeurs saisies dans le formulaire
	$nom=$_POST['nom'];
	$prénom=$_POST['prenom'];// eviter les accents dans les noms
	$email=$_POST['email'];
	$motif=$_POST['motif'];
	$message=$_POST['message'];

	//affichage du contenu des variables
	//tu avait le message sans faire aucun test conditionnel
	echo "Les données ont bien été transmisses.";

	//insertion dans la base de données
	$reqinsert="INSERT INTO formulaire(nom,prénom,email,motif,message) values ('".$nom."','".$prénom."','".$email."','".$motif."','".$message."');";

	mysql_query($reqinsert) or die("La requête ne fonctionne pas. La table n'a pas été mise à jour. <br />".mysql_error());
	// fermeture de la connexion
	mysql_close();
}
?> 


attention, pas testé, j'ai peut etre fait des erreurs de frappe.

Tu es ou aux Antilles ?
0