[RESOLU] insertion champs formulaire dans BDD

Petit nouveau ! | 5 Messages

10 mars 2016, 14:35

bonjour à tous

je suis en train de me remettre tout doucement au PHP après 10 ans de non pratique

j'ai crée plusieurs formulaire en fonction des réponse donner et sur le dernier j'aimerai pouvoir enregistrer les donnée dans une base de donnée. mais c'est la que vient l'erreur que je ne comprend pas :

Erreur SQL lINSERT INTO non conforme VALUES("", "$produit", "$date", "$commentaire")
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'conforme VALUES("", "$produit", "$date", "$commentaire")' at line 1

je vous laisse mon code

Code : Tout sélectionner

<?php $base = mysql_connect ('localhost', 'root', '') or die ("erreur de connexion au serveur"); mysql_select_db ('commande', $base) or die ("erreur de connexion a la base de données"); //on recupere les donnée formulaire $produit = $_POST['produit']; $date = $_POST['date']; $commentaire = $_POST['commentaire']; //echo $produit, $date, $commentaire; //test des variable remplie if (isset($_POST['produit']) && isset($_POST['date']) && isset($_POST['commentaire'])){ //echo $produit, $date, $commentaire; // on prepare la requete pour inserer les champs dans la table $sql = 'INSERT INTO non conforme VALUES("", "$produit", "$date", "$commentaire")'; //echo $produit, $date, $commentaire; // on insert la requet mysql_query ($sql) or die ('Erreur SQL l'.$sql.'<br />'.mysql_error()); echo $produit, $date, $commentaire; } ?>
merci pour votre aide

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

10 mars 2016, 14:51

Bonjour,

Il y a un problème dans le nom de ta table dans ta requête SQL. La syntaxe devrait être "INSERT INTO nomDeTaTable VALUES (...)" hors "non conforme" n'est pas un nom de table valide... au mieux "non_conforme" ou "non-conforme" ou un vrai nom de table en fonction de ce que tu as créé en base :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 5 Messages

10 mars 2016, 14:57

merci pour ta réponse.

la table que j'avais crée ce nommais bien "non conforme" donc je doit mettre comme tu ma dit.

j'essaie de suite et je te redit

Petit nouveau ! | 5 Messages

10 mars 2016, 15:06

cela a fonctionner

jai mis une valeur ID dans ma table pour que quand il enregistre les donnée elle sois classer par ordre

mais lorsque l'enregistrement se fait la valeur est toujours 0

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

10 mars 2016, 15:08

Je pense que tu dois pouvoir, avec les apostrophes spéciales de MySQL, mettre des caractères spéciaux dans tes noms de tables, du genre de l'espace, pour autant ça n'est absolument pas recommandé. Il vaut mieux effectivement se limiter à de l'alphanumérique (sans accents) et aux seuls caractères spéciaux - ou _

Du coup dans l'idéal, il vaut mieux renommer ta table en base en "non_conforme" et ajuster ta requête et ça fonctionnera mieux :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

10 mars 2016, 15:11

Pour ta colonne ID, il faut soit que tu l'alimentes toi même, soit si tu veux une incrémentation automatique, utiliser l'option AUTO INCREMENT de MySQL. Ainsi à chaque nouvel enregistrement MySQL viendra alimenter cette colonne automatiquement en fonction de l'ID précédemment utilisé
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 5 Messages

10 mars 2016, 15:17

meric bien pour les info je ne ferme pas le sujet parce que je n'est pas fini mon code il me reste 2 3 page a faire

Petit nouveau ! | 5 Messages

10 mars 2016, 16:16

jai terminer merci pour ont aide