|
|
|
|
Bonjour!
voilà je voudrais pouvoir modifier la quantité de chaque article dans mon panier mais au lieu de ça, ça me modifie toutes les quantités des articles que le client à mis dans son panier
voici mon code :
[code]
<?
session_start();
$sessionidclient = $_SESSION['id_client'];
$article = $_POST['article'];
$quantite = $_POST['quantite'];
// connexion à la BDD
$req1 = "SELECT ref_produit, prix_produit FROM produit WHERE designation_produit = '".$article."'";
$query1 = mysql_query($req1) or die(mysql_error());
$fetch1 = mysql_fetch_array($query1);
$total = $fetch1[1]*$quantite;
$inser = "INSERT INTO panier (id_cli, ref_produit, quantite, total) VALUES ( '".$_SESSION['id_client']."','".$fetch1[0]."', '".$quantite."', '".$total."')";
$inquer = mysql_query($inser) or die(mysql_error());
$affected = mysql_affected_rows();
$reqtot = "SELECT sum(total) FROM panier WHERE id_cli = '".$_SESSION['id_client']."' ";
$querytot = mysql_query($reqtot) or die(mysql_error());
$fetchtot = mysql_fetch_array($querytot);
$select = "SELECT ref_produit, quantite, total FROM panier WHERE id_cli = '".$_SESSION['id_client']."' ";
$quersel = mysql_query($select) or die(mysql_error());
echo "<table border= 2>
<tr>
<td><center><b>Designation</td></center></b>
<td><center><b>Quantite</td></center></b>
<td><center><b>Prix(en €)</td> </center></b>
<td><center><b>Total produit</td></center></b>
<td>Modifier</td></tr>";
while($fetchsel = mysql_fetch_array($quersel))
{
$selectdesi = "SELECT designation_produit, prix_produit FROM produit WHERE ref_produit = '".$fetchsel[0]."'";
$querdesi = mysql_query($selectdesi) or die(mysql_error());
while ($fetchdesi = mysql_fetch_array($querdesi))
{
if(isset($_POST['sub_form']))
{
if ($_POST['sub_form'] == 'modifier')
{
$modif = "UPDATE panier SET quantite = ".$_POST['quantite'].", total = ".$fetchdesi[1] * $_POST['quantite']."
WHERE ref_produit = '".$fetchsel[0]."' AND id_cli = '".$_SESSION['id_client']."'";
echo $modif;
$res = mysql_query($modif) or die (mysql_error());
$fetchmodif = mysql_affected_rows();
}
}
$reqtott = "SELECT sum(total) FROM panier WHERE id_cli = '".$_SESSION['id_client']."' ";
$querytott = mysql_query($reqtott) or die(mysql_error());
$fetchtott = mysql_fetch_array($querytott);
if(isset ($fetchmodif))
{
echo "<form method= 'post' action='{$_SERVER['PHP_SELF']}'>";
echo "<tr>
<td>".$fetchdesi[0]."</td>
<td><input type = text name = quantite value = ".$_POST['quantite']." ></td>
<td>".$fetchdesi[1]."</td>
<td>".$fetchdesi[1] * $_POST['quantite']."</td>
<td><input type = submit name = 'sub_form' value = 'modifier'></td>
</form>
</tr>
";
}
else
{
echo "<form method= 'post' action='{$_SERVER['PHP_SELF']}'>";
echo "<tr>
<td>".$fetchdesi[0]."</td>
<td><input type = text name = quantite value = ".$fetchsel[1]." ></td>
<td>".$fetchdesi[1]."</td>
<td>".$total."</td>
<td><input type = submit name = 'sub_form' value = 'modifier'></td>
</form>
</tr>
";
}
}
}
if (isset ($fetchmodif))
{
echo "
<tr><td></td><td></td><b><center> </b></td><td align = \"center\"><b>Total : ".$fetchtott[0]." €</b></td></tr>";
echo"</table>";
}
else
{
echo "
<tr><td></td><td></td><b><center> </b></td><td align = \"center\"><b>Total : ".$fetchtot[0]." €</b></td></tr>";
echo"</table>
";
}
echo "<br><br>";
echo "<a href = essaipanier.php>Retour</a><br>";
echo "<a href = index.php>Accueil</a>";
?>
[/code]
je vous remercie beaucoup pour votre aide ...
C'est parce qu'ils ont tous le même nom. alors soit tu as fait un formulaire par produit et dans ce cas il te faut nommer chaque formulaire pour soumettre uniquement le bon soit il faut différencier les nom de tes champs...
|
On va reprendre un code plus implifié :
$sessionidclient = $_SESSION['id_client'];
echo $_SESSION['id_client']."Identifiant client";
echo "<br><br>";
$article = $_POST['article'];
echo $article;
echo "<br>";
$quantite = $_POST['quantite'];
// connexion BDD
$req1 = "SELECT ref_produit, prix_produit FROM produit WHERE designation_produit = '".$article."'";
$query1 = mysql_query($req1) or die(mysql_error());
$fetch1 = mysql_fetch_array($query1);
$total = $fetch1['prix_produit']*$quantite;
$inser = "INSERT INTO panier (id_cli, ref_produit, quantite, total) VALUES ( '".$_SESSION['id_client']."','".$fetch1['ref_produit']."', '".$quantite."', '".$total."')";
$inquer = mysql_query($inser) or die(mysql_error());
$affected = mysql_affected_rows();
$reqtot = "SELECT sum(total) FROM panier WHERE id_cli = '".$_SESSION['id_client']."' ";
$querytot = mysql_query($reqtot) or die(mysql_error());
$fetchtot = mysql_fetch_array($querytot);
if(isset($_POST['sub_form']))
{
if ($_POST['sub_form'] == 'modifier')
{
$modif = "UPDATE panier SET quantite = '".$_POST['quantite']."', total = '".$fetch1['prix_produit'] * $_POST['quantite']."'
WHERE ref_produit = '".$fetch1['ref_produit']."' AND id_cli = '".$_SESSION['id_client']."'";
$res = mysql_query($modif) or die (mysql_error());
}
}
$select = "SELECT ref_produit, quantite, total FROM panier WHERE id_cli = '".$_SESSION['id_client']."' ";
$quersel = mysql_query($select) or die(mysql_error());
echo "<table border= 2>
<tr>
<td><center><b>Reference</td></center></b>
<td><center><b>Quantite</td></center></b>
<td><center><b>Total produit</td></center></b>
<td>Modifier</td></tr>";
while($fetchsel = mysql_fetch_assoc($quersel))
{
echo "<form method= 'post' action='{$_SERVER['PHP_SELF']}'>";
echo "<tr>
<td>".$fetchsel['ref_produit']."</td>
<td><input type = 'text' name = 'quantite' value = '".$fetchsel['quantite']."'/ ></td>
<td>".$fetchsel['total']."</td>
<td><input type = submit name = 'sub_form' value = 'modifier'></td>
</tr>
</form>";
}
echo "</table>
";
?>
pour afficher tous les articles mis dans le panier, je boucle. et j'ai ma requete UPDATE qui me permet de mettre à jour la quantite avec le $_POST['quantite'] en fonction de la ref_produit et quand je veux modifier, ça me rajoute une ligne, un champs quantité en plus.. j'ai du mal à expliquer mon problème.. :( |
Alors s'il te plait ... regarde dans la balise form
while($fetchsel = mysql_fetch_assoc($quersel))
{
echo "<form method= 'post' action='{$_SERVER['PHP_SELF']}' >";
echo "<tr><input type = 'hidden' name = 'ref_produit' value = '".$fetchsel['ref_produit']."'/ >
<td>".$fetchsel['ref_produit']."</td>
<td><input type = 'text' name = 'quantite' value = '".$fetchsel['quantite']."'/ ></td>
<td>".$fetchsel['total']."</td>
<td><input type = submit name = 'sub_form' value = 'modifier'></td>
</tr>
</form>";
}
et ca devrait être mieux, non ?? ..:::P@ ... a tras, a PoOf ou a chou :::..
|