Probleme insertion dans table mysql a partir de données formulaire [Résolu]

Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Dernière intervention
26 avril 2013
- 30 juin 2009 à 22:09 - Dernière réponse :
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
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.

 
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Dernière intervention
26 avril 2013
- 2 juil. 2009 à 11:18
3
Merci
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.

 

Merci LaTatadu91 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de LaTatadu91
Messages postés
11
Date d'inscription
samedi 2 octobre 2004
Dernière intervention
1 juillet 2009
- 1 juil. 2009 à 16:58
0
Merci
et si tu mattais VALUES('NULL', '$nom',etc...
ou VALUES(NULL, '$nom',etc.....

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

 
Commenter la réponse de LaTatadu91
Messages postés
11
Date d'inscription
samedi 2 octobre 2004
Dernière intervention
1 juillet 2009
- 1 juil. 2009 à 22:25
0
Merci
en faisant comment
partage pour les autres qui tomberont sur ce post par hasard

heureux de faire parti de
Commenter la réponse de cs_nestam

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.