[php] pb pour modifer une donnée après ajout

Fermé
micom59 Messages postés 71 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 11 août 2009 - 3 juil. 2007 à 09:08
micom59 Messages postés 71 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 11 août 2009 - 3 juil. 2007 à 09:30
Bonjour, j'ai un petit formulaire qui permet d'ajouter des article a ma base de donnée mais j'aimerais que lorsque l'article a deja était entrée dans la zone, le programme modifie la quantité présente en ajoutant la nouvelle quantité a celle deja présente.

Malheuresement le programme me sort une erreur quand je veux faire un ajout : Parse error: parse error in c:\program files\easyphp1-8\www\ajouter.php on line 26

Il s'agit de la ligne du update, je ne sais pas quoi mettre après le quantite=

Voici mon ajouter.php, qui modfie la quantité lorsque que l'article est deja présent dans la zone ou ajout l'article sinon.

<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());

$sql = "SELECT * FROM article";
$result = mysql_query($sql) or die(mysql_error());
$articles= mysql_fetch_array($result);

$article = $articles['article'];
$quantite = $articles['quantite'];
$zone = $articles['zone'];

if($article==$_POST['article'] and $zone==$_POST['zone'])
{

$quantite=$_POST['quantite']+$quantite;

UPDATE article SET quantite=$quantite;

echo "quantité modifiée";
}

else
{
$quantite=$_POST['quantite'];

mysql_query("INSERT INTO article VALUES('$_POST[article]','$_POST[quantite]','$_POST[zone]') ");
echo "Enregistrement effectué";

}
?>

<BODY BGCOLOR=#33CCFF>
<p>
<a href="index.html">Accueil</a><p>
<a href="visu.php">Visualisation générale</a><p>
</body>
</html>


Comment arriveriez vous au résultat souhaité?
Merci d'avance pour votre aide!
A voir également:

2 réponses

if($article==$_POST['article'] and $zone==$_POST['zone'])
{

$quantite=$_POST['quantite']+$quantite;

UPDATE article SET quantite=$quantite;

echo "quantité modifiée";
}


Ton update, c'est une requête, au même titre que le INSERT. Tu dois donc le mettre dans un mysql_query ...

2eme erreur, et c'est la cause de pas mal de problèmes : UPDATE article SET quantite=$quantite;
Tu changes bien la quantité, mais ne défini pas pour quel article ! Tu vas donc modifier la quantité deTOUS tes articles !!

Un update correct serait donc UPDATE article SET quantite=$quantite where article_id = $mon_id (ou autre clé unique de ta table).

le tout dans un mysql_query().

J'ai été assez clair ?

Bonne continuation

Ben
0
micom59 Messages postés 71 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 11 août 2009 1
3 juil. 2007 à 09:30
merci ben, j'ai effectuer les modifications, maintenant ca me donne ca

<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());

$sql = "SELECT * FROM article";
$result = mysql_query($sql) or die(mysql_error());
$articles= mysql_fetch_array($result);

$article = $articles['article'];
$quantite = $articles['quantite'];
$zone = $articles['zone'];

if($article==$_POST['article'] and $zone==$_POST['zone'])
{

$quantite=$_POST['quantite']+$quantite;

mysql_query("UPDATE article SET quantite=$quantite where article=$article");

echo "quantité modifiée";
}

else
{

mysql_query("INSERT INTO article VALUES('$_POST[article]','$_POST[quantite]','$_POST[zone]') ");
echo "Enregistrement effectué";

}
?>

<BODY BGCOLOR=#33CCFF>
<p>
<a href="index.html">Accueil</a><p>
<a href="visu.php">Visualisation générale</a><p>
</body>
</html>


J'ai pas trop compris le truc des clés uniques! donc j'ai mis where article=$article, je ne sais pas si il comprends

Par contre il reste un petit probleme, lorsque je mets le meme article et meme zone il m'ajoute l'article au lieu de modifier, il saute le if...
Serais tu pourquoi?
Encore merci.
0