Page 1 sur 1

insert to / field list

Posté : 29 sept. 2006, 20:31
par ptitgenie69
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 ....

Posté : 29 sept. 2006, 20:39
par charabia
Montres nous ton formulaire ;)

Posté : 29 sept. 2006, 20:42
par ptitgenie69
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\">");

 ?>

Posté : 29 sept. 2006, 20:50
par charabia
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.

Posté : 29 sept. 2006, 20:54
par ptitgenie69
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

Posté : 29 sept. 2006, 21:00
par charabia
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.

Re: insert to / field list

Posté : 29 sept. 2006, 21:03
par zeus
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

Posté : 29 sept. 2006, 21:05
par charabia
+1 zeus ;) Je m'en vais dormir lol

Psstttt charabia, pas Truc :langue:

Posté : 29 sept. 2006, 21:28
par Truc
Qué... quoi... oui merci je suis le meilleur :-*
toujours un plaisir de donner de bons conseils :langue:

Re: insert to / field list

Posté : 29 sept. 2006, 21:39
par hbellahc
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.

Re: insert to / field list

Posté : 29 sept. 2006, 22:52
par Cyrano
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

Re: insert to / field list

Posté : 30 sept. 2006, 10:49
par zeus
@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: