Bonjour,
Voici un bon moment que je n'ai pas utilisé ni PHP ni MySQL
et je me retrouver eprdu pour un truc tout simple: insérer des champs dans une table!
alors ma table a été configurée a la main sous php myAdmin, et voici mon code:
<?php
// On commence par récupérer les champs
if(isset($_POST['nom'])) $nom=$_POST['nom'];
else $nom="";
if(isset($_POST['prenom'])) $prenom=$_POST['prenom'];
else $prenom="";
if(isset($_POST['date'])) $date=$_POST['date'];
else $date="";
if(isset($_POST['adresse'])) $adresse=$_POST['adresse'];
else $adresse="";
if(isset($_POST['code_postal'])) $code_postal=$_POST['code_postal'];
else $code_postal="";
if(isset($_POST['ville'])) $ville=$_POST['ville'];
else $ville="";
if(isset($_POST['tel'])) $tel=$_POST['tel'];
else $tel="";
if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";
// On vérifie si les champs sont vides
if(empty($nom) OR empty($prenom) OR empty($email) OR empty($tel) OR empty($ville) OR empty($code_postal) OR empty($date) OR empty($adresse))
{
echo '<h2>DEAD</h2>
<p class="erreur" >Une erreur s\'est produite sur le serveur, veuillez ré-essayer plus tard.</p>';
}
// Aucun champ n'est vide, on peut enregistrer dans la table
else
{
// connexion à la base
$db = mysql_connect('localhost', 'login', 'mdp') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('db',$db) or die('Erreur de selection '.mysql_error());
// on écrit la requête sql (id, nom, prenom,date_naissance, adresse, code_postal, ville, tel, email)
$sql = "INSERT INTO membres VALUES('', '$nom', '$prenom', '$date', '$adresse', '$code_postal', '$ville', '$tel', '$email')";
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on affiche le résultat pour le visiteur
echo '
<h2>YEP</h2>
<p class="ValidForm" >Inscription réussie, un e-mail vous sera envoyé à l\'adresse indiquée.</p>';
mysql_close(); // on ferme la connexion
}
?>
l'erreur retournée est :Incorrect integer value: '' for column 'id' at row 1
mon champ 'id' a été défini comme suit: id Medium INT, primary, et autoincrement.
je ne comprends pas l'erreur! dans ma requete je mets bien '' pr id.
ps: si je donne un nombre a la place ma requete fonctionne, mais je perd l'utilité de l'autoincrementation.
merci de votre aide.