[php] Pb pour ajouter une ligne à la base

Fermé
micom59 Messages postés 71 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 11 août 2009 - 29 juin 2007 à 13:10
 jerbien13 - 5 mai 2010 à 16:55
Bonjour, j'aimerais ajouter des lignes de données à ma base de donnée par l'intermédiaire d'un formulaire mais il ne rajoute à ma base que des 0

Voici le code de mon formulaire :

<html>
<body>
<BODY BGCOLOR=#33CCFF>
<center><h1>Entrée de composants</h1>
<p>
<form name="formulaire" method="post" action="http://127.0.0.1/site1/ajouter.php">
<table width="200" border="1">
<tr>
<td>Article:</td>
<td><input name="article" type="text" id="$article"></td>
</tr>
<tr>
<td>Quantité:</td>
<td><input name="quantite" type="text" id="$quantite"></td>
</tr>
<tr>
<td>Zone:</td>
<td><input name="trave" type="text" id="$zone"></td>
</tr>

<td>Lot:</td>
<td><input name="lot" type="text" id="$lot"></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="submit" name="Submit" value="Envoyer">
</div></td>
</tr>
</table>
</form>
</center>
<a href="index.html">Retour</a>
</body>
</html>


et voici le code de ajouter.php

<html>
<body>
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'base';

$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

mysql_query('INSERT INTO article VALUES("$article","$quantite","$zone","$lot") ');

?>
</body>
</html>


quelqu'un a t'il une idée pour que insert to m'ajoute les bonnes valeurs?
merci d'avance pour votre aide.
A voir également:

7 réponses

Tes variables n'existent pas car register globals à off, très bonne chose.

Donc au lieu de $article, utilise $_POST['article'] , pareil pour les autres.

N'oublie pas de contrôler et protéger tes requêtes, car en l'état, ton code permet facilement une injection sql.
1
micom59 Messages postés 71 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 11 août 2009 1
29 juin 2007 à 14:02
ok, j'ai donc ca maintenant dans ajouter.php

<html>
<body>
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'base';


$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
if
mysql_query('INSERT INTO article VALUES("$_POST['article']","$_POST['quantite']","$_POST['zone']","$_POST['lot']") ');
echo "Enregistrement effectué";
?>
<a href="index.html">Retour</a><p>
</body>
</html>

et maintenant il me dit Parse error: parse error, expecting `'('' in c:\weblocal\sites\site1\ajouter.php on line 13
il doit pas comprendre entre les ' " mais je sais pas lesquels mettre juste avant l'insert, devant le $post et devant l'article.
tu remplacerais par quoi?

Mes variables sont numériques, je note qu'il faudra que ca passe par une vérification.
1
micom59 Messages postés 71 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 11 août 2009 1
29 juin 2007 à 13:43
ok! merci, mais c'est ou qu'il faut que je remplace $article par $_POST['article']?
et tu entends quoi par protéger tes requêtes?
Merci beaucoup d'avoir répondu.
0
Les remplacer dans ton mysql_query()

Protéger ta requête signifie que tu dois contrôler les variables provenant de l'utilisateur.

Et vérifier ce que tu attends comme type de valeur.

$_POST['article'], est censé être quoi ? une chaine ? un nombre ? une valeur fournie parmi une liste ? autre ?

Dans tout les cas, il faut vérifier.

Et dans le cas d'une chaine, il faut l'échapper avec la fonction mysql_real_escape_string() puisque tu utilises mysql.
0

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

Posez votre question
Moi je te propose ceci avant de les inserer dans ta bd

$article=$_POST['article'];
........
pour tous tes champs

mysql_query('insert into article values("$article",.................);
Pour tous tes champs
0
micom59 Messages postés 71 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 11 août 2009 1
29 juin 2007 à 14:13
en fait ca marche, ca marchait pas parce qu'il y avait un if tout pourri qui trainait par la!
merci beaucoup!
a tout a l'heure pour le prochain truc que j'arriverais pas!!!
0
tu doit declarer les article $article=$_post["article"];
aprer pour assurer la bonne resquette vous trouvez une zone dans easy php inserer kliké sur pui vous trouver executer la requette kliké vous auriez la requette fetes copier coller pui remplire dans le champ values les $variable
0