Problème de sauvegarde des données dans une base sql

Problème de sauvegarde des données dans une base sql - PHP - Programmation

Marsh Posté le 01-06-2006 à 10:34:13    

voila mon code :  
 

Code :
  1. * <?php
  2.     * 
  3.     * 
  4.     * $cnx = mysql_connect( "localhost", "root", "" );
  5.     *
  6.     * $db= mysql_select_db( "nom_de_ma_base_de_données" );
  7.     *
  8.     * $sql = "SELECT * FROM formulaire";
  9.     *
  10.     * $requete = mysql_query( $sql, $cnx ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );
  11.     *
  12.     * echo( "<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" align=\"center\">\n" );
  13.     * echo( "<tr>
  14.     * <td><div align=\"center\">nom</div></td>
  15.     * <td><div align=\"center\">prenom</div></td>
  16.     * <td><div align=\"center\">mail</div></td>
  17.     * </tr>" );
  18.     * 
  19.     * while( $result = mysql_fetch_array( $requete ) )
  20.     * {
  21.     * echo( "<tr>\n" );
  22.     * echo( "<td><div align=\"center\">".$result["nom"]."</div></td>\n" );
  23.     * echo( "<td><div align=\"center\">".$result["prenom"]."</div></td>\n" );
  24.     * echo( "<td><div align=\"center\">".$result["mail"]."</div></td>\n" );
  25.     * echo( "</tr>\n" );
  26.     * }
  27.     * 
  28.     * echo( "</table><br>\n" );
  29.     * ?>


 

Code :
  1. # form method=POST action=form.php on (presse) {getURL(form.php" , "_blank", "post" )}>
  2. # <div id="layer1" style="width:454px; height:600px; position:absolute; left:387px; top:280px; z-index:1;">
  3. #
  4. # <table>
  5. #     <tr><td><p class="p4">Nom :<font color='#FF0000'>*</font></td>
  6. #     <td><input type="text" name="nom" size="20"></p></td></tr>
  7. #     <tr><td><p class="p4">Prénom :<font color='#FF0000'>*</font></td>
  8. #     <td><input type="text" name="prenom" size="20"></p></td></tr>
  9. #         <tr><td><p class="p4">Adresse mail :<font color='#FF0000'>*</font></td>
  10. #     <td><input type="text" name="mail" size="20"></p></td></tr>
  11. #
  12. #
  13. # <tr><td><input type="submit" value="Envoyer" name="envoi"></td>
  14. # </table>
  15. # </div>
  16. # </form>


 
Mes données saisie dans le formulaire apparaissent bien dans le tableau mais par contre elle ne sont pas enregistrer dans la base sql. Je débute en php et perso j'ai beau chercher je ne trouve pas comment faire. Pouvez vous m'aidez ??? :hello:

Reply

Marsh Posté le 01-06-2006 à 10:34:13   

Reply

Marsh Posté le 01-06-2006 à 10:43:47    

napalm27 a écrit :

elle ne sont pas enregistrer dans la base sql.


 
 :??:  Tu ne fais pas de INSERT, donc, tes données ne peuvent être enregistrées.
 
A moins que tu ne le fasse dans form.php...
 


---------------
Je donne souvent l'air d'être ailleurs, mais en faite, je ne suis nulle part...
Reply

Marsh Posté le 01-06-2006 à 10:47:46    

nan en effet je ne fais pas de INSERT c'est surement ca mon problème. je vais chercher de mon coté, mais si tu peu me donné le bout de code a inséré pour enregistrer mes données dans la base sql ca serais cool.
 
merci de ton aide en tout cas !! :jap:

Reply

Marsh Posté le 01-06-2006 à 10:56:26    

j'ai trouvé ca :  
 

Code :
  1. INSERT INTO formulaire(nom, prenom, mail, date, pays, postale, sex, newsletter) VALUES('', 'nom', 'prenom', 'mail', 'date', 'pays', 'postale', 'sex', 'newsletter')


 
MAis par contre je dois le mettre dans mon form.php ou alors dans ma page avec mon code html pour le formulaire ????

Reply

Marsh Posté le 01-06-2006 à 11:00:49    

Je ne connais pas ta base de données, donc a adapter :  
 

Code :
  1. //La requete a executer :
  2. $request = "INSERT INTO nomTable (Champs1, Champs2) VALUES ('".$val1."', '".$val2."');";
  3. //On execute la requete. Si il y a un probleme, l'erreur est retourne (die(mysql_error()).
  4. $res = mysql_db_query(BASE, $request, $this->numConnect) or die(mysql_error());


 
Bon, c'est pas tout simple a comprendre si tu n'as jamais fait de BDD, mais fait des recherches sur :  
http://www.siteduzero.com/tuto-3-4 [...] c-php.html pour des trucs assez simples, ou sur
http://dev.mysql.com/doc/refman/5.0/fr/insert.html pour quelque chose de plus...pointu ! :D


---------------
Je donne souvent l'air d'être ailleurs, mais en faite, je ne suis nulle part...
Reply

Marsh Posté le 01-06-2006 à 11:03:23    

Mon précédent post ne sert (encore) à rien ! :D
 

napalm27 a écrit :

MAis par contre je dois le mettre dans mon form.php ou alors dans ma page avec mon code html pour le formulaire ????


 
L'idéal (pour moi), c'est de faire une autre page php qui contient toutes tes requetes sous forme de fonctions, et après, de simplement les appeler... :)  
Ceci dit, si c'est juste pour faire deux ou trois requetes, tu dois pouvoir les mettres dans ton form.php...


Message édité par Glock21 le 01-06-2006 à 11:04:36

---------------
Je donne souvent l'air d'être ailleurs, mais en faite, je ne suis nulle part...
Reply

Marsh Posté le 01-06-2006 à 11:07:42    

ouais voila c'est ce que j'avais fais, ca me donne le code suivant :  
 

Code :
  1. <?php
  2. //connexion au serveur:
  3. $cnx = mysql_connect( "localhost", "root", "" );
  4. //sélection de la base de données:
  5. $db= mysql_select_db( "yop" );
  6. //création de la requête SQL:
  7. $sql = "SELECT * FROM formulaire";
  8. //exécution de notre requête SQL:
  9. $requete = mysql_query("INSERT INTO formulaire VALUES('', 'nom', 'prenom', 'mail', 'date', 'pays', 'postale', 'sex', 'newsletter')" ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );
  10. //enregistrement des données dans la base formulaire
  11. echo( "<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" align=\"center\">\n" );
  12. echo( "<tr>
  13. <td><div align=\"center\">nom</div></td>
  14. <td><div align=\"center\">prenom</div></td>
  15. <td><div align=\"center\">mail</div></td>
  16. <td><div align=\"center\">date</div></td>
  17. <td><div align=\"center\">pays</div></td>
  18. <td><div align=\"center\">postale</div></td>
  19. <td><div align=\"center\">sex</div></td>
  20. <td><div align=\"center\">newsletter</div></td>
  21. </tr>" );
  22. while( $_POST = mysql_fetch_array( $requete ) )
  23. {
  24. echo( "<tr>\n" );
  25. echo( "<td><div align=\"center\">".$_POST['nom']."</div></td>\n" );
  26. echo( "<td><div align=\"center\">".$_POST['prenom']."</div></td>\n" );
  27. echo( "<td><div align=\"center\">".$_POST['mail']."</div></td>\n" );
  28. echo( "<td><div align=\"center\">".$_POST['date']."</div></td>\n" );
  29. echo( "<td><div align=\"center\">".$_POST['pays']."</div></td>\n" );
  30. echo( "<td><div align=\"center\">".$_POST['postale']."</div></td>\n" );
  31. echo( "<td><div align=\"center\">".$_POST['sex']."</div></td>\n" );
  32. echo( "<td><div align=\"center\">".$_POST['newsletter']."</div></td>\n" );
  33. echo( "</tr>\n" );
  34. }
  35. //récupération des variable du formulaire
  36. echo( "</table><br>\n" );
  37. ?>


 
mais j'obtiens je message d'erreur suivant :  
 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\test\form.php on line 26

Message cité 1 fois
Message édité par napalm27 le 01-06-2006 à 11:15:23
Reply

Marsh Posté le 01-06-2006 à 11:15:43    

napalm27 a écrit :

Code :
  1. $requete = mysql_query("INSERT INTO formulaire VALUES('', 'nom', 'prenom', 'mail', 'date', 'pays', 'postale', 'sex', 'newsletter')" ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );



 
Là, tu mets dans ta table : nom, prenom, mail... et pas les valeurs que contiennent ces variables. :)  
 
De plus, le supplied argument ne viens pas forcemment de là, c'est sans doute qu'il manque quelque chose...
 
Mais, essais de cherché par toi meme plutot que de poster les erreurs que tu reçois, tu progressera beaucoup plus ! ;)


Message édité par Glock21 le 01-06-2006 à 11:17:21

---------------
Je donne souvent l'air d'être ailleurs, mais en faite, je ne suis nulle part...
Reply

Marsh Posté le 01-06-2006 à 11:53:16    

bah pourtant je cherche lol (2 jours que je suis dessus), j'avance progressivement et ca rentre tout doucement.
 

Code :
  1. $requete = mysql_query("INSERT INTO formulaire (nom, prenom, mail, date, pays, postale, sex, newsletter) VALUES('', '$_POST', '$_POST', '$_POST', '$_POST', '$_POST', '$_POST', '$_POST', '$_POST')" )


 
tu veux dire comme ca ??? le problème c'est nom,prenom,mail ... on tous la même variable $_POST :heink:

Reply

Marsh Posté le 01-06-2006 à 11:58:41    

Code :
  1. 'nom'

!=

Code :
  1. $_POST['nom']


 
Doooooonc,

Code :
  1. INSERT ... 'nom'

!=

Code :
  1. INSERT ... $_POST['nom']

... ;)


---------------
Je donne souvent l'air d'être ailleurs, mais en faite, je ne suis nulle part...
Reply

Marsh Posté le 01-06-2006 à 11:58:41   

Reply

Marsh Posté le 01-06-2006 à 12:23:17    

voici maintenant mon code :  
 

Code :
  1. //connexion au serveur:
  2. $cnx = mysql_connect( "localhost", "root", "" );
  3. //sélection de la base de données:
  4. $db= mysql_select_db( "yop" );
  5. //création de la requête SQL:
  6. $sql = "SELECT * FROM formulaire";
  7. //exécution de notre requête SQL:
  8. $requete = mysql_query("INSERT INTO formulaire (nom, prenom, mail, date, pays, postale, sex, newsletter) VALUES('', '$_POST['nom']', '$_POST['prenom']', '$_POST['mail']', '$_POST['date']', '$_POST['pays']', '$$_POST['postale']', '$_POST['sex']', '$_POST['newsletter']')" );
  9. //enregistrement des données dans la base formulaire sql
  10. $_POST = mysql_query ($requete,$cnx);
  11. //insert et execute la requete
  12. or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );
  13. //retour d'erreur
  14. if($requete)
  15. {
  16.     echo("L'insertion a été correctement effectuée" ) ;
  17.   }
  18.   else
  19.   {
  20.     echo("L'insertion à échouée" ) ;
  21.   }
  22. //affichage des résultats pour voir si la requête a marché


 
message suivant

Parse error: parse error in c:\program files\easyphp1-8\www\test\form.php on line 10


 
je suis chiant je sais :D :sweat:


Message édité par napalm27 le 01-06-2006 à 12:35:08
Reply

Marsh Posté le 01-06-2006 à 12:36:33    

Ecoute, je peux te répondre, car oui, c'est normal que ça bug...
 
Mais, si tu cherche tout seul un peu, tu trouvera très facilement !
 
Si tu tiens a ne pas réfléchir et ne pas progressé voila une réponse possible (du moins je pense...)
 
Remplace

Code :
  1. VALUES('', '$_POST['nom']', '$_POST['prenom']',

par

Code :
  1. VALUES('', '".$_POST['nom']."', '".$_POST['prenom']."',


 
Je ne sais pas si c'est ça, et en plus, il y a une autre erreur : tu ne met que 8 champs à remplir, et tu en remplis 9 :  
 
essais :  
 

Code :
  1. INTO formulaire (id, nom, prenom, mail, date, pays, postale, sex, newsletter)


 
si ton champs en auto increment se nomme id...
 
Bon, je pense que ça devrais mieux marcher ! ;-)


---------------
Je donne souvent l'air d'être ailleurs, mais en faite, je ne suis nulle part...
Reply

Marsh Posté le 01-06-2006 à 14:04:57    

Citation :

en plus, il y a une autre erreur : tu ne met que 8 champs à remplir, et tu en remplis 9 :


 
comment ca ? ou vois tu que j'en replis 9 ?

Reply

Marsh Posté le 01-06-2006 à 14:08:49    

C'est parce que dans la 1er partie de la requête il a pas déclaré l'autoincrémente :o

Reply

Marsh Posté le 01-06-2006 à 14:13:22    

Code :
  1. (nom, prenom, mail, date, pays, postale, sex, newsletter)

= 8 champs

Code :
  1. ('', '$_POST['nom']', '$_POST['prenom']', '$_POST['mail']', '$_POST['date']', '$_POST['pays']',
  2. '$$_POST['postale']', '$_POST['sex']', '$_POST['newsletter']')"

= 9 champs ! ;)


---------------
Je donne souvent l'air d'être ailleurs, mais en faite, je ne suis nulle part...
Reply

Marsh Posté le 01-06-2006 à 14:15:09    

exact ;)
 
malheuresement toujours un parse error dans la ligne de mon insert et pourtant j'ai fait toutes les modifs que tu m'as indiqué

Message cité 1 fois
Message édité par napalm27 le 01-06-2006 à 14:20:31
Reply

Marsh Posté le 01-06-2006 à 14:21:54    

azerty_93 a écrit :

C'est parce que dans la 1er partie de la requête il a pas déclaré l'autoincrémente :o


 
 :heink:  

Reply

Marsh Posté le 01-06-2006 à 14:26:50    

napalm27 a écrit :

exact ;)
 
malheuresement toujours un parse error dans la ligne de mon insert et pourtant j'ai fait toutes les modifs que tu m'as indiqué


 

Code :
  1. ('', '$_POST['nom']', '$_POST['prenom']', '$_POST['mail']', '$_POST['date']', '$_POST['pays']',
  2. '$$_POST['postale']', '$_POST['sex']', '$_POST['newsletter']')"


 
elle serait pas la ta parse erreur  :??:
 


 
oui ? vu que tu as un ('' ...) dans ton insert j'en conclue que c'est un auto-incremente et tu n'en fait pas mention quand tu déclare les vars ...


Message édité par azerty_93 le 01-06-2006 à 14:28:58
Reply

Marsh Posté le 01-06-2006 à 14:29:13    

J'ai changé maintenant le code est le suivant :  
 

Code :
  1. $requete = mysql_query "INSERT INTO formulaire (nom, prenom, mail, date, pays, postale, sex, newsletter) VALUES ('".$_POST['nom']."', '".$_POST['prenom']."', '".$_POST['mail']."', '".$_POST['date']."', '".$_POST['pays']."', '".$_POST['postale']."', '".$_POST['sex']."', '".$_POST['newsletter']."')";

Reply

Marsh Posté le 01-06-2006 à 14:32:29    

à mon avis il manque le ; à la fin de ta requete, mais montre un echo pour voir ce qui sort.

Reply

Marsh Posté le 01-06-2006 à 14:34:17    

napalm27 a écrit :

Code :
  1. '".$_POST['newsletter']."')";



 
Par conscience professionelle, je rajouterai un ";" ici :
 

Code :
  1. '".$_POST['newsletter']."');";


 
mais bon...il ne sert pas vraiment, je pense... --> déjà, dit, dsl...je suis lent à écrire mes posts ! ;)
 
Pour ton erreur, elle me saute pas aux yeux, dsl...


Message édité par Glock21 le 01-06-2006 à 14:36:33

---------------
Je donne souvent l'air d'être ailleurs, mais en faite, je ne suis nulle part...
Reply

Marsh Posté le 01-06-2006 à 14:34:51    

Snif, si elle me saute aux yeux...
 
t'as oublié la "(" au début et la " )" a la fin...

Message cité 1 fois
Message édité par Glock21 le 01-06-2006 à 14:35:22

---------------
Je donne souvent l'air d'être ailleurs, mais en faite, je ne suis nulle part...
Reply

Marsh Posté le 01-06-2006 à 14:48:41    

Glock21 a écrit :

Snif, si elle me saute aux yeux...
 
t'as oublié la "(" au début et la " )" a la fin...


 
Voila c'étais ca. Bon maintenant il me reste des erreur mais je vais chercher un peu. si j'ai besoin d'aide je serait ou poser mes question. merci  :jap:  

Reply

Marsh Posté le 01-06-2006 à 14:52:43    

De rien ! ;)


---------------
Je donne souvent l'air d'être ailleurs, mais en faite, je ne suis nulle part...
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed