Ajout de donnée(BDD) à l'aide d'un formulaire

Fermé
lucie - 10 juil. 2009 à 11:16
 lucie - 13 juil. 2009 à 10:53
Bonjour,

J'ai un petit soucis dans la programmation que je fais. En effet, je fais actuellement un site pour m'amuser et découvrir le monde des développeurs.
Donc voilà, en fait, je suis en train de faire un script qui permettra de remplir un formulaire (en html) et une fois validé, les informations données dans le formulaire seront stocké dans ma base de données (hébergé en local ==> easyphp)

Voici mon code que je n'arrive pas du tout a faire marcher. Mon formulaire s'affiche bien mai quand je valide, et que je vais dans la base de données, voir si les infos ont été stocké, et bien rien ! Je ne comprend pas...
Depuis hier j'essaie mais rien n'y fais..

***Fichier ajouter_stock.html***
<html>
<body>
<h2><center>Ajout d\'un stock</center></h2>
<br>
<center>
<form method="post" action="ajouter_bdd_stock.php">
<table>

<tr>
<td>Num du stock de papier: </td>
<td><input type="text" name="num_stock"></td>
</tr>

<tr>
<td>Libellé du stock de papier: </td>
<td><input type="text" name="nom_stock"></td>
</tr>

<tr>
<td>Description du stock: </td>
<td><input type="text" name="description_stock"></td>
</tr>

<tr>
<td>Nombre de feuille par carton: </td>
<td><input type="text" name="ref_carton_feuille_stock"></td>
</tr>

<tr>
<td>Lieu du stock : </td>
<td><input type="text" name="lieu_stock"></td>
</tr>

<tr>
<td align="center" colspan="2"><input type="submit" value="envoyer" name="envoi_stock"><input type="reset" value="effacer"></td> </tr>
</table>
</form>

</body>
</html>

***Fichier ajouter_bdd_stock.php***
<?
//Connection à la base de données
// Etablissement de la connexion
$connexion = mysql_connect("local","gasi","ggg");

// Selection de la base test
$selection_base = mysql_select_db("test");

//Requete d'ajout d'un stock
$num_stock=$_POST['num_stock'];
$nom_stock=$_POST['nom_stock'];
$description_stock=$_POST['description_stock'];
$ref_carton_feuille_stock=$_POST['ref_carton_feuille_stock'];
$lieu_stock=$_POST['lieu_stock'];


$sql="INSERT INTO voir_stock VALUES ('num_stock','nom_stock','description_stock','ref_carton_feuille_stock','lieu_stock',)";

mysql_query($sql) or die(mysql_error());

mysql_close();
?>


Votre aide serai la bienvenue

Cordialement

6 réponses

dam75 Messages postés 1043 Date d'inscription lundi 4 mai 2009 Statut Webmaster Dernière intervention 21 février 2023 67
10 juil. 2009 à 11:35
bonjour,

C'est juste que ta requete donne en dur les noms et pas en variables :

$sql="INSERT INTO voir_stock VALUES ('$num_stock','$nom_stock','$description_stock','$ref_carton_feuille_stock','$lieu_stock')";

Par aileurs,
- il y avait une , en trop à la fin (je l'ai supprimé dans ma requête)
- ATTENTION à bien protéger (echapper) tes données avant de les insérer, voir par exemple mysql_real_escape_string en PHP (http://fr3.php.net/manual/fr/function.mysql-real-escape-string.php)
- le but est que si un champ de formulaire contient un ', il soit protégé par \ dans la requete pour ne pas provoquer d'erreur SQL ou pire de tentative de piratage (injection SQL)
- PHP peut le faire automatiquement (magic_quote_gpc), mais il vaut mieux s'en assurer ...

Bon courage
0
J'ai rectifié mon erreur par rapport à la variable... Mais toujours rien. Quand je vais voir sur ma table, rien n'a été ajouté. Il y a une actualisation à faire ou quelque chose dans le genre ?

Merci de ta réponse en tout cas
0
dam75 Messages postés 1043 Date d'inscription lundi 4 mai 2009 Statut Webmaster Dernière intervention 21 février 2023 67
10 juil. 2009 à 15:48
envoie moi la requete $sql une fois les remplacements effectués que je voie s'il n'y a pas d'erreur ?

Pour le raffraichissement de la base :
- soit tu parles via phpMyAdmin ou autre, et il suffit que tu recharges la page ou la table
- soit tu parles de ton site, et la ca depend de ton code : si tu souhaites un raffraichissement de la liste, il faut le programmer ...

Quoi qu'il en soit, une fois les données inserées par la requete INSERT ... , elles sont stockées en base instantanément :)
0
Ah okay... c'est pour ça.. Je me demandais si il fait réactualiser. Mais si c'est instantané comme tu dis, ça devrait marcher.

Voila ma requête modifié :

$sql="INSERT INTO voir_stock VALUES ('$num_stock','$nom_stock','$description_stock','$ref_carton_feuille_stock','$lieu_stock')";

Cdtl
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dam75 Messages postés 1043 Date d'inscription lundi 4 mai 2009 Statut Webmaster Dernière intervention 21 février 2023 67
10 juil. 2009 à 17:03
non je voulais dire peux tu poster un exemple de cette requete une fois le remplacement des $... effectué ?

Il te suffit par ex de rajouter
echo $sql.'<br/>';
dans ton code PHP pour qu'il t'affiche la requete definitive ?
0
Rien ne m'affiche.... C'est une page vierge qui se présente.

J'ai tout essayé... les quotes, les erreur de syntaxes, mais rien du tout.. Peut être que mon fichier est corrompu
0