Page 1 sur 2

Probleme d'INSERT INTO...

Posté : 13 juin 2005, 15:22
par castelli
Bonjour ,

J'aimerais mettre dans une base de donnée (mysql) des valeur entré dans mon formulaire.
Hors je dois avoir un probleme avec mo insert car cela ne marche pas .. Je me demandai si vous pourriez jeter un coup doeuil pour voir sque vous en pensez

merci d'avance

le formulaire ..

Code : Tout sélectionner

<form action="" method="post"><table width="50%"> <tr><td><b>Fournisseur</b></td> <td width="30%" height="29"><select name="fournisseur"> <option value="acros">Acros</option> <option value="aldricht">Aldricht</option> <option value="sigma">Sigma</option> <option value="lancaster">Lancaster</option> <option value="autres">autres</option> </select> </td></tr> <tr width="30%" height="15"><td><b>Autres fournisseurs</b><P><i>A remplir si le fournisseur n'est pas dans la liste</i></td> <td><b><input type="text" name="fournisseur"></b></td></tr> <tr width="30%" height="29"><td><b>Quantité a Commander</b></td> <td><b><input type="text" name="quantite"></b></td></tr> <tr width="30%" height="29"><td><b>Nombre de Quantité a commander</b></td> <td><b><input type="text" name="nombre_quantite"></b></td></tr> <tr width="30%" height="29"><td><b>Prix</b></td> <td><b><input type="text" name="prix"></b></td></tr> <tr><td><input type="submit" value="Commander"></td> <center><td><input type="submit" value="Imprimer" onclick="print();"></td></center> <td><input type="submit" value="fermer" onClick="window.close()";></td></tr> </table> </form>
et la requete
$quantite=$_POST['quantite'];
$fournisseur = $_POST['fournisseur'];
$nombre_quantite=$_POST['nombre_quantite'];
$prix=$_POST['prix'];


$query="INSERT INTO 'commande'('fournisseur','quantite','nombre_quantite','prix') VALUES ($fournisseur, $quantite, $nombre_quantite, $prix);";
mysql_query($query); 


?>
voila merci

Posté : 13 juin 2005, 15:28
par zeus
Pour voir pourquoi ça ne marche pas, je te conseille de faire ça :
mysql_query($query) or die (mysql_error);
Ensuite, pour tout les champs MySQL non numérique, il faut que tu encadres les valeurs par ' et ensuite, sors les variables des chaines :
$query="INSERT INTO 'commande'('fournisseur','quantite','nombre_quantite','prix') VALUES ('".$fournisseur."', ".$quantite.", ".$nombre_quantite.", ".$prix.");"; 
J'ai estimé que fournisseur était un champ texte, quantite et nombre des entiers et prix un flotant

Posté : 13 juin 2005, 15:56
par castelli
Merci pour ta reponse Zeus mais cela ne fonctionne toujours pas..
en effet lorsque j'appuis sur le bouton commande il n'y a rien qui s'ajoute dans la table. Pour verifier je suis meme allé voir dans phpmyadmin et il n'y a rien..

Peut etre que c'est le bouton commander qui ne fonctionne pas?

il y a une requete precedente sur une autre table peut etre mon probleme vient il du fait que la connection vers l'autre table n'est pas fermer?
(si c'est le cas comment puis-je la fermer? )

Posté : 13 juin 2005, 15:59
par zeus
Qu'est ce que te dit phpMyAdmiin quand tu execute la requete ?

Posté : 13 juin 2005, 16:02
par castelli
En gros je fai uen recherche sur tout les resultat contenus dans la table et jai un resultat (vide dans chacun des champs ) mais c moi ki avait créer cette valeur pr voir si sa fonctionnait bien.

donc en conclusion pas de resultat la requete n'aboutit pas .

Posté : 13 juin 2005, 16:03
par zeus
Quand tu dit qu'elle n'aboutie pas, c'est que aucune valeurs ne sont insérée ou bien qu'une erreur est détectée durant l'exécution ?

J'ai pas bien compris ton dernier post

Posté : 13 juin 2005, 16:07
par castelli
bah il n ' y a pas de valeur ajouter dans la base de données creer a partir de ma requete ..
(en gros tu concidere que les valeurs presente qui s'affiche dans la base de données sont des valeur tests que jai creer a partir de phpmyadmin )

Posté : 13 juin 2005, 16:09
par zeus
Et si tu affiche ta requete avant de l'exécuter, elle est valide ?

Posté : 13 juin 2005, 16:11
par castelli
Lorsque je fais

echo $query;

j'obtient :
INSERT INTO 'commande'('fournisseur','quantite','nombre_quantite','prix') VALUES ('', , , );
mes variables doivent etre donc mauvaises nan?

Posté : 13 juin 2005, 16:13
par zeus
Bingo

Est-ce que tu teste si ton formulaire est validé avant d'exécuter la requete ?

Posté : 13 juin 2005, 16:16
par castelli
nan j'ai pas tester .

sinon en faisant un echo en replissant mon formulaire

j'obtient
INSERT INTO 'commande'('fournisseur','quantite','nombre_quantite','prix') VALUES ('archos', 34, 34, 3);
donc mes variables sont bonnes

Posté : 13 juin 2005, 16:19
par zeus
Et dans ce cas, ça ne rempli rien ?

plusieurs pistes :
- met le
mysql_query($query) or die (mysql_error);
Qu'on se fasse une idée précise des erreurs éventuelles
- verifie ta base après formulaire validé
- met en place un test sinon dès que tu vas rafraichir ta base, tu vas insérer des lignes vides

Posté : 13 juin 2005, 16:29
par castelli
C'est bon sa fonctionne :)

je recopie la requete on c'est jamais:
$query="INSERT INTO commande (fournisseur,quantite,nombre_quantite,prix) VALUES ('".$fournisseur."', '".$quantite."', '".$nombre_quantite."', '".$prix."');"; 
Y'avais juste les '' en trop autour de commande maintenant sa marche presque bien juste des petits problemes resolvables

merci zeus :)

Posté : 13 juin 2005, 16:33
par zeus
C'est dommage parce que j'avais remarqué ça dès le 1er post mais je me suis dit que ça devais marcher quand même.

Ca m'apprendra à ne pas tout prendre en compte

Posté : 13 juin 2005, 16:41
par castelli
lol au moin sa ma servit . Je suis certain de plus recommencer cette petite betise lol

et de puis sa ma permis de te feliciter c'est deja pas mal ^^

lol