PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 14-09-2011 09:09:59

Cedric06
Membre
Inscription : 14-09-2011
Messages : 16

modifier une seule valeur dans un tableau

Bonjour à tous et toutes,

j'ai un problème de mise à jour d'un tableau.

J'ai un tableau T_PRODUITS qui est un panier. Il contient autant de sous-tableaux (produit[]) qu'il y a de produits dans le panier.

Je voudrais modifier mon script de telle façon à ce que je puisse modifier le champ quantité ($qte) d'un produit sans devoir repasser toutes les valeurs pour le produit concerné.

Donc, en fait, au lieu de devoir chaque fois repasser toutes les valeurs du produit en POST pour les remettre dans le tableau, je voudrais identifier la ligne grâce à son "idprod", modifier la quantité et ré-enregistrer la ligne $produit ainsi modifiée dans mon tableau T_PRODUIT avant de ré-enregistrer celui-ci dans ma session.

Quelqu'un aurait-il une méthode pour cela ?
Merci beaucoup par avance
Cédric

Voici mon script :


// GESTION DES MODIFICATIONS
// -------------------------
   elseif ($_POST['modifqte']=='yes')) {


  // identification du produit et de ses valeurs
  // -----------------------------------------------
     $idprod  = $_POST['idprod'];
     $prod    = $_POST['prod'];
     $price   = $_POST['price'];
     $qte     = $_POST['nb'];   // nouvelle valeur de quantité
     $info01  = $_POST['info01'];
     $info02  = $_POST['info02'];
     $info03  = $_POST['info03'];
     $info04  = $_POST['info04'];
     $info05  = $_POST['info05'];

     $produit = array($idprod,$prod,$price,$qte,$info01,$info02,$info03,$info04,$info05);


  // identifier la ligne à modifier
  // ------------------------------
     $T_PRODUITS=$_SESSION['T_PRODUITS'];

     if ($qte >= 1) {

       for ($i=0; $i<sizeof($T_PRODUITS); $i++)
          {

           if ($T_PRODUITS[$i][0] == $idprod) { $index=$i; Break; }
          }

     $T_PRODUITS[$index] = $produit;
     $_SESSION['T_PRODUITS']=$T_PRODUITS;

     $message = "La quantité a été modifiée";
    }

     else $message = "La quantité ne peut être inférieure à 1";
  }
 

Hors ligne

#2 14-09-2011 10:17:56

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : modifier une seule valeur dans un tableau

Saluton,
Tu aurais du faire de ton tableau $_SESSION['T_PRODUITS'] un tableau associatif avec une dimension par $id_prod et une association clef->valeur par info pour chaque produit.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 14-09-2011 18:39:28

Cedric06
Membre
Inscription : 14-09-2011
Messages : 16

Re : modifier une seule valeur dans un tableau

Bonsoir Kris

j'ai réussi à résoudre le problème :-)
merci beaucoup

bonne soirée et merci

Cédric.

Hors ligne

Pied de page des forums