insert to / field list

Eléphant du PHP | 132 Messages

29 sept. 2006, 20:31

Bonsoir, me revoila dèjà !

Alors j'avance bien dans mon projet et j'espère bientôt pouvoir vous montrer une ébauche de nos efforts ( je dit nos car c'est aussi grace a vous ! )

je tombe sur un nouveau probleme que j'ai du mal a résoudre. En fait, j'ai un formulaire a remplir avec 4 champs texte simple. le bouton du formulaire renvoi a ce morceau de code :
<?php
include ("config.php");
include ("install.php");
$date = date("d-m-Y");
$soft = $_POST['soft'];
$type_ext = $_POST['type_ext'];
$comm1 = $_POST['comm1'];
$comm2 = $_POST['comm2'];
mysql_query ("INSERT INTO repertoire(id,logiciel,extension,dating,comm1,comm2) VALUES('',$soft,$type_ext,$date,$comm1,$comm2)")
or die (mysql_error());
?>
et, par exemple, si je met "photoshop" dans le 1er champ de texte du formulaire, que je clik sur envoyer, voila ce que sa m'affiche :

Champ 'photoshop' inconnu dans field list

Et la, j'ai chercher mais je n'arrive pas vraiment a voir ou se situr l'erreur ^^

merci beaucoup pour os futurs réponses ....

Avatar du membre
ViPHP
ViPHP | 3008 Messages

29 sept. 2006, 20:39

Montres nous ton formulaire ;)

Eléphant du PHP | 132 Messages

29 sept. 2006, 20:42

Et un formulaire qui marche, UN !
<?php print ("
<form method=\"post\" action=\"ajout.php\"
>Logiciel :&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  <input type=\"text\" name=\"soft\" size=\"50\" ><br>
Extension :&nbsp;&nbsp;&nbsp;&nbsp;   <input type=\"text\" name=\"type_ext\" size=\"50\"><br><br>
Commentaires :&nbsp;&nbsp;&nbsp;&nbsp;   <input type=\"text\" name=\"comm1\" size=\"50\"><br><input type=\"text\" name=\"comm2\" size=\"50\"><br>
<br><input type=\"submit\" value=\"proposer\">");

 ?>

Avatar du membre
ViPHP
ViPHP | 3008 Messages

29 sept. 2006, 20:50

Pourquoi avoir intégré ton formulaire dans du PHP ?

Tests à faire :
- vérifier que toutes tes variables sont bien reconnues avant de faire l'insertion
- exécutes ta requête directement dans phpMyAdmin pour voir si ça fonctionne.

Eléphant du PHP | 132 Messages

29 sept. 2006, 20:54

Et bien pour répondre a ta question, c'est que je suis en période d'aprentissage accélérer donc je m'oblige a faire le plus de code possible ne php (meme si je sais qu'un formulaire html aurait été aussi simple ).

sinon, comment puis-je faire pour vérifier que toutes mes variables soitt reconnu ? des tests avec print ?

Quand a phpmyadmin, j'ai fait le test avec :
INSERT INTO repertoire(id,logiciel,extension,dating,comm1,comm2) VALUES('',"ee","rr","tt","yy","uu")
et le test marche bien

Avatar du membre
ViPHP
ViPHP | 3008 Messages

29 sept. 2006, 21:00

Heu l'apprentissage accéléré ne veut pas dire de tout mettre en PHP...C'est tout le contraire. Il ne faut mettre en PHP que ce qui a besoin de l'être.

Pour tester fait des echo des variables en question.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 sept. 2006, 21:03

Quand je regarde
VALUES('',$soft,$type_ext,$date,$comm1,$comm2)")
et
VALUES('',"ee","rr","tt","yy","uu")
Je remarque que, dans la 2nd proposition, il y a des " en plus ;)

Pour te donner un conseil, lorsque tu bloques sur une requete, affiche cette requete qui bloque et tu devrais comprendre ce qui ne va pas ;)

EDIT --
+1 pour Truc, apprendre le php ne veut pas dire "tout faire un php" mais apprendre les bonnes pratiques en PHP.

Dans ce cas là, je conseille fortement de ne pas faire print(HTML) mais plutot directement le code HTML sans passer par le php. Tu n'occupes pas de ressources serveur puisque ce code ne sera pas interpreté par le serveur.

De même, il me semble qu'il vaut mieux utiliser echo que print :-k
Modifié en dernier par zeus le 29 sept. 2006, 21:06, modifié 1 fois.
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

Avatar du membre
ViPHP
ViPHP | 3008 Messages

29 sept. 2006, 21:05

+1 zeus ;) Je m'en vais dormir lol

Psstttt charabia, pas Truc :langue:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

29 sept. 2006, 21:28

Qué... quoi... oui merci je suis le meilleur :-*
toujours un plaisir de donner de bons conseils :langue:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 46 Messages

29 sept. 2006, 21:39

Bonjour
C'est tout à fait normal
Un conseil d'un débutant

-Imprime tes requêtes avec un simple echo ensuite teste les sur phpMyAdmin pour voir ou ça bloque.

Mais la il faut mettre chaque variable entre '$variable' (enfin normalement c'est cela le problème)
<?php
include ("config.php");
include ("install.php");
$date = date("d-m-Y");
$soft = $_POST['soft'];
$type_ext = $_POST['type_ext'];
$comm1 = $_POST['comm1'];
$comm2 = $_POST['comm2'];
mysql_query ("INSERT INTO repertoire(id,logiciel,extension,dating,comm1,comm2) VALUES('','$soft','$type_ext','$date','$comm1','$comm2')")
or die (mysql_error());
?>

Essaye ça ,ça marchera normalement
Bon courage.

Mammouth du PHP | 19672 Messages

29 sept. 2006, 22:52

Un conseil d'un débutant

-Imprime tes requêtes avec un simple echo ensuite teste les sur phpMyAdmin pour voir ou ça bloque.
:pouce: Si tous les débutants commençaient par là, ils poseraient d'autres questions, probablement plus pointues sur la manière de formuler une requête par exemple, mais pas parce qu'une requête plante :D
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

30 sept. 2006, 10:49

@charabia : euh ... oui .. mais ... je nettoyais mon clavier, le truc est parti tout seul :langue:
Désolé, vraiment, je tiens à rendre à césar ce charabia qui appartient à truc. Comprendra qui pourra ;)

@Truc : eh, oh, c'est pas à toi que je faisais un compliment :langue:
-Imprime tes requêtes avec un simple echo ensuite teste les sur phpMyAdmin pour voir ou ça bloque.

Mais la il faut mettre chaque variable entre '$variable' (enfin normalement c'est cela le problème)
Bizarre, j'ai l'impression d'avoir dit la même chose 2 post plus haut :-k :langue:
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