[php] mise à jour donnée et affichage
oie
-
carternets Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
carternets Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
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 ...
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 ...
A voir également:
- [php] mise à jour donnée et affichage
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Mise a jour chromecast - Accueil - Guide TV et vidéo
- Mise a jour kindle - Guide
- Mise à jour libre office - Accueil - Bureautique
5 réponses
dis moi, quand tu regarde ton "code source" de la page html généré ...
est ce que tous les
est ce que tous les
<input type = text name = quantite value = ".$fetchsel[1]." >on le même nom ??
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...
Je suis claire ou pas ???
je ne sais pas .
dis moi si tu as compris le problème parce que c'est tout bête, mais encore faut-il que se soit bien expliquer ... et là je ne suis pas sure d'être trés claire dans mes explications :D
Je suis claire ou pas ???
je ne sais pas .
dis moi si tu as compris le problème parce que c'est tout bête, mais encore faut-il que se soit bien expliquer ... et là je ne suis pas sure d'être trés claire dans mes explications :D
alors s'il te plait ... regarde dans la balise form
et ca devrait être mieux, non ??
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 ??
Salut,
ce que tu peux faire sinon c'est une incrémentation pour chaque boucle et la placer dans le nom de ton input.
Par exemple
Donc en gros ton premier input sera ref_produit1 la seconde boucle ref_produit2 etc...
Derrière sur ta page où tu récupères la donnée, tu utilises une structure conditionnelle où ce que tu veux.
Voilà, j'espère que ça t'aidera ;-)
ce que tu peux faire sinon c'est une incrémentation pour chaque boucle et la placer dans le nom de ton input.
Par exemple
$i=0; while($fetchsel = mysql_fetch_assoc($quersel)) { $i++; echo "<form method= 'post' action='{$_SERVER['PHP_SELF']}' >"; echo "<tr><input type = 'hidden' name = 'ref_produit".$i."' value = '".$fetchsel['ref_produit']."'/ > <td>".$fetchsel['ref_produit']."</td> <td><input type = 'text' name = 'quantite".$i."' value = '".$fetchsel['quantite']."'/ ></td> <td>".$fetchsel['total']."</td> <td><input type = submit name = 'sub_form' value = 'modifier'></td> </tr> </form>"; }
Donc en gros ton premier input sera ref_produit1 la seconde boucle ref_produit2 etc...
Derrière sur ta page où tu récupères la donnée, tu utilises une structure conditionnelle où ce que tu veux.
Voilà, j'espère que ça t'aidera ;-)
oauis mais je ne sais pas comment faire pour que quand je clique sur "modifier", ca me modifie juste la quantité d'un seul article..
suis completement perdu... :(
suis completement perdu... :(
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
on va reprendre un code plus implifié :
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.. :(
$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.. :(