Pb insert into

bonjour,

J’ai une table sql et je souhaite y ajouter des enregistrements:

je récupére les valeurs de mon formulaire:
//récupération des valeurs des champs:
$nom = $_REQUEST[“nom”];
$prenom = $_REQUEST[“prenom”];
$code = $_REQUEST[“code”];
$adresse1 = $_REQUEST[“adresse1”];
$adresse2 = $_REQUEST[“adresse2”];
$cp = $_REQUEST[“cp”];
$ville = $_REQUEST[“ville”];
$tel = $_REQUEST[“tel”];
$date_naissance = $_REQUEST[“date_naissance”];
$anNaiss = $_REQUEST[“date_naissance”];
$date_adhesion= $_REQUEST[“date_adhesion”];
$cotis = $_REQUEST[“cotis”];
$tarif_cotisations = $_REQUEST[“tarif_cotisations”];
$titre = $_REQUEST[“titre”];
$email = $_REQUEST[“email”];
$divers = $_REQUEST[“divers”];
$divers1 = $_REQUEST[“divers1”];

Je suis connecté à ma base et je fais cette requête:
$select =“INSERT INTO donnees * VALUES (’$code’, ‘$nom’, ‘$prenom’, ‘$adresse1’, ‘$adresse2’, ‘$cp’, ‘$ville’,
‘$tel’, ‘$date_naissance’, ‘$date_adhesion’, ‘$cotis’, ‘$tarif_cotisations’, ‘$titre’,’’, ‘$email’, ‘$divers’, ‘$divers1’)”;

J’ai un message d’erreur, je fais un echo du $select :
INSERT INTO donnees * VALUES (’’, ‘aa’, ‘aa’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘Monsieur’,’’, ‘’, ‘’, ‘’)Erreur de syntaxe pr?s de ‘* VALUES (’’, ‘aa’, ‘aa’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘Mon’ ? la ligne 1

Je suis à la rue :@. J’ai bien le bon nombre de champs (le deuxième et troisième doivent contenir une valeur, c’est le cas.) j’ai essayé d’ajouter le champ id de ma table mais il est auto donc pas besoin à priori
J’ai aussi essayé en déclarant tous les champs de ma table idem ?

merci de votre aide

Merci de votre aide

INSERT INTO donnees * VALUES

J’ai pas regardé le truc de près, mais l’étoile est en trop.

merci pour ta réponse

J’ai maintenant un : INSERT INTO donnees VALUES (’’, ‘toto’, ‘titi’,’’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘Monsieur’,‘1900’, ‘’, ‘’, ‘’)Column count doesn’t match value count at row 1

(le nombre de champ correspond à ma base 17 sans le id qui est auto_increment

si je rajoute un champ id j’ai : INSERT INTO donnees VALUES (’’,’’, ‘toto’, ‘titi’,’’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘Monsieur’,‘1900’, ‘’, ‘’, ‘’)Incorrect integer value: ‘’ for column ‘id’ at row 1

suis perdu !!!

encore moi,

je pense que mon pb vient du fait que j’insère des valeurs issues d’un formulaire et que certains champs
ne sont pas obligatoirement remplis !
J’imagine que je dois les tester et définir une valeur par défaut ?

mais comment?

Déjà, utilise la forme conseillée de insert into :

insert into donnees (x, y, z, ...) values ($x, $y, $z, ...)

je l’ai fait c’est pareil!
Je confirme que si je rentre dans le formulaire les valeurs attendues par la table ça marche.
Mon pb c’est que certains champs ne sont pas remplis et je dérape sur les valeurs par défaut.

Les valeurs par défaut ne sont utilisées que si tu ne fournis pas de valeur pour la colonne. ie:

Si ta colonne x a pour valeur par défaut “XXX”, alors :

insert into donnees (y, z, ...) values ($y, $z, ...)

Equivaut à :

insert into donnees (x, y, z, ...) values ('XXX', $y, $z, ...)

Pour ton problème en général, tu n’as pas à remplir la colonne pour l’identifiant : tu dois toujours l’omettre de ta liste car il est calculé automatiquement.

Tu peux utiliser nvl si un champs de ton formulaire n’est pas remplis.

merci pour votre aide !
J’ai pas réussi car si mes champs type int ou date sont vides j’ai toujours des erreurs.
je teste donc mes variables et si elle n’existe pas je mets 0 pour int et 0000-00-00 pour les dates.
ça marche même si je suis conscient que c’est du “bricolage”

le forum est :super:

C’est le but du nvl, ça te permet d’initialiser une valeur par défaut lorsque ta valeur source est nulle.