Probleme d'INSERT INTO...

Eléphant du PHP | 450 Messages

13 juin 2005, 15:22

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
Alone in the dark , I smile :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

13 juin 2005, 15:28

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 450 Messages

13 juin 2005, 15:56

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? )
Alone in the dark , I smile :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

13 juin 2005, 15:59

Qu'est ce que te dit phpMyAdmiin quand tu execute la requete ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 450 Messages

13 juin 2005, 16:02

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 .
Alone in the dark , I smile :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

13 juin 2005, 16:03

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 450 Messages

13 juin 2005, 16:07

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 )
Alone in the dark , I smile :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

13 juin 2005, 16:09

Et si tu affiche ta requete avant de l'exécuter, elle est valide ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 450 Messages

13 juin 2005, 16:11

Lorsque je fais

echo $query;

j'obtient :
INSERT INTO 'commande'('fournisseur','quantite','nombre_quantite','prix') VALUES ('', , , );
mes variables doivent etre donc mauvaises nan?
Alone in the dark , I smile :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

13 juin 2005, 16:13

Bingo

Est-ce que tu teste si ton formulaire est validé avant d'exécuter la requete ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 450 Messages

13 juin 2005, 16:16

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
Alone in the dark , I smile :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

13 juin 2005, 16:19

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 450 Messages

13 juin 2005, 16:29

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 :)
Alone in the dark , I smile :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

13 juin 2005, 16:33

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 450 Messages

13 juin 2005, 16:41

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
Alone in the dark , I smile :D