[php] pb faire une som avec d donné de la baz

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 à 14:58
micom59 Messages postés 71 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 11 août 2009 - 29 juin 2007 à 15:47
Bonjour, j'ai un formulaire où l'on peut rentrer un article, une quantité et une zone, et j'aimerais que quand le même article est ajouté, le programme ajoute la nouvelle quantité à la quantité déja présente.

je pensais faire ca avec un if($article=$_POST['article'){$_POST['quantite']=$_POST['quantite']+$quantite

Mais ca ne fontionne pas, d'ailleurs je ne sais même pas où inclure ce genre de fonction.

Dans mon formulaie les quantités et articles sont enregistrés sous le nom quantite et article

Voici le code php de ajouter.php (là où s'effectue l'ajout de l'article dans la base de donnée)

<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('$_POST[article]','$_POST[quantite]','$_POST[zone]') ");
echo "Enregistrement effectué";
?>
<a href="index.html">Retour</a><p>
</body>
</html>


J'ai aussi un programme qui permet de visualiser tous les articles, est-ce ici qu'il faudrait faire des modifications?

voici visu.php (qui me permet de tous voir)

<html>
<body>
<BODY BGCOLOR=#33CCFF>
<center><h1>Visualisation générale</h1></center>
<p>
<hr>
<?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());


$select = 'SELECT * FROM article order by article group by article';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);

echo "<h2><center><table width='200' border='1'><TR><TD>Article</TD><TD>Quantité</TD><TD>Zone</TD></TR></h2>\n";
while ($row = mysql_fetch_assoc($result))
{

echo "<h3><TR><TD>".$row["article"]."</TD><TD>".$row["quantite"]."</TD><TD>".$row["zone"]."</TD></TR></h3>\n";
}

?>
</body>
</html>


savez vous comment faire?
Merci d'avance, et merci encore à ceux qui m'ont aidé pour mes précédents problemes.
A voir également:

3 réponses

essai de mettre dans ton ajout.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());

// on récupere les infos dans la base de données
$sql = "SELECT * FROM article";
$result = mysql_query($sql) or die(mysql_error());
$articles= mysql_fetch_array($result);

// on assigne les variables
$article = $articles['article'];
$quantite= $articles['quantite'];

// si c'est le meme article ( attention == dans les if ... )
if($article==$_POST['article')
{
$quantite=$_POST['quantite']+$quantite;
}
else
{
$quantite=$_POST['quantite'];
}

mysql_query("INSERT INTO article VALUES('$_POST[article]','$quantite','$_POST[zone]') ");
echo "Enregistrement effectué";
?>
<a href="index.html">Retour</a><p>
</body>
</html>

je ne te garantie pas a 100% mais ça devrai pas etre loin ;)
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 à 15:20
merci pour ton aide, il n'y a pas d'erreur mais l'addition ne s'effectue pas, les lignes s'ajoute bien dans ma base, elle se regroupe bien pour n'en former qu'une lors de la visualisaition, mais la quantité reste la même. C'est peut etre a cause du group by de la visualisation, enfin j'y connais pas grand chose, si tu as une idée n'hésite surtout pas.
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 à 15:47
personne n'a d'idée pour que la somme remplace bien la quantité deja présente?

merci
0