Rechercher : dans
Par :

[php] Pb pour ajouter une ligne à la base

Dernière réponse le 29 jun 2007 à 14:13:10 micom59, le 29 jun 2007 à 13:10:49 
 Signaler ce message aux modérateurs

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.

Configuration: Windows 2000
Internet Explorer 6.0

Meilleures réponses pour « [php] Pb pour ajouter une ligne à la base » dans :
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...
Connexion à une base Oracle en php Voir1. Périmètre Cet article est un exemple de connexion à une base Oracle par le biais d'un script php. Cet article ne traite pas la configuration de votre serveur Oracle, et de votre client Oracle. Nous partons du principe que vous pouvez accéder à...
Sed - Supprimer une ou plusieurs lignes d'un fichier VoirSupprimer une (ou plusieurs) ligne(s) d'un fichier Syntaxe sed '{[/]||[/]}d' sed '{[/][,][/]d' /.../ = délimiteurs n = le numéro de ligne chaîne = la chaîne contenue dans la...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...
Importer et exporter des données sous MySQL VoirImportation et exportation Les Système de Gestion de Bases de Données tels que MySQL permettent de manipuler facilement et avec beaucoup de souplesse un très important volume de données. Toutefois, aussi robuste soit MySQL, il peut être intéressant...
Introduction à PHP VoirQu'est-ce que PHP? PHP est un langage interprété (un langage de script) exécuté du côté serveur (comme les scripts CGI, ASP, ...) et non du côté client (un script écrit en Javascript ou une applet Java s'exécute sur votre ordinateur...). La...

1

hare, le 29 jun 2007 à 13:35:51
  • +1

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.

Répondre à hare

2

micom59, le 29 jun 2007 à 13:43: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.

Répondre à micom59

3

hare, le 29 jun 2007 à 13:53:41

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.

Répondre à hare

4

micom59, le 29 jun 2007 à 14:02:00

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.

Répondre à micom59

5

mîck, le 29 jun 2007 à 14:12:28

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

Répondre à mîck

6

 micom59, le 29 jun 2007 à 14:13:10

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!!!

Répondre à micom59