Probleme insertion dans table mysql a partir de données formulaire

Résolu
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 - 30 juin 2009 à 22:09
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 - 2 juil. 2009 à 11:18
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 'DEAD

            Une erreur s\'est produite sur le serveur, veuillez ré-essayer plus tard.

';
    }

// 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.'
'.mysql_error());

    // on affiche le résultat pour le visiteur
    echo '
        YEP

            Inscription réussie, un e-mail vous sera envoyé à l\'adresse indiquée.

';

    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.

 

4 réponses

LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 1
2 juil. 2009 à 11:18
oui tu as raison:

 $sql = "INSERT INTO adherents ( nom, prenom,date, adresse, code_postal, ville, tel, email, login, mdp) VALUES( '$nom', '$prenom', '$date', '$adresse', '$code_postal', '$ville', '$tel', '$email', '$login', '$mdp')";

je précise les champs que je veux remplir en omettant volontairement le champ id
et il s'incremente tout seul.

 
3
cs_nestam Messages postés 11 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 1 juillet 2009
1 juil. 2009 à 16:58
et si tu mattais VALUES('NULL', '$nom',etc...
ou VALUES(NULL, '$nom',etc.....

heureux de faire parti de
0
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 1
1 juil. 2009 à 17:00
ha oui désolé j'ai trouvé une solution simple en zappant l'id!

 
0
cs_nestam Messages postés 11 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 1 juillet 2009
1 juil. 2009 à 22:25
en faisant comment
partage pour les autres qui tomberont sur ce post par hasard

heureux de faire parti de
0
Rejoignez-nous