Supression dans un tableau de tableau...

Supression dans un tableau de tableau... - PHP - Programmation

Marsh Posté le 23-03-2004 à 08:27:32    

Bonjour tout le monde. Voilà je suis débutante en php et je n'arrive pas à résoudre un problème. C'est la galère! C'est pourquoi je me décide enfin a poster un message sur ce forum pour vous demander un peu d'aide...
 
Je vous explique. Je gère un panier d'achats. Le visiteur recherche un produit selon des critères. Les résultats sont ensuite afficher. Il peut ensuite insérer les produits désirés dans un panier d'achats. Ce pannier est en réalité un tableau stocké dans une session. Rien n'est encore envoyé dans une base de données! Le visiteur peut donc vider son pannier, ou simplement retirer un article. Pour vider le pannier, je supprime simplement le tableau de la session, mais pour retirer un article, je n'y arrive pas. J'utilise la fonction unset, mais je sais pas quoi mettre en argument. Quelqu'un peut-il m'aider?
 
Pour rendre encore plus clair mon prob, voilà comment j'ai créé mon tableau.
 
  $Tab = array('Id' => $ProduitId, 'Nom' => $CommandeNom, 'Prix' => $CommandePrix);
  $TabCommande[] = $Tab;
 
(je fais un tableau de tableau... :-) )
 
je sais donc pas comment supprimer un $Tab(selon l'id récupéré) dans $TabCommande...
 
Merci d'avance!

Reply

Marsh Posté le 23-03-2004 à 08:27:32   

Reply

Marsh Posté le 23-03-2004 à 09:32:14    

hello,
 
Euh moi je ferais moins compliqué, il suffit de faire un tableau avec juste les numéros d'articles que le mec choisit...
$tab[1] = 3423453
$tab[2] = 765456f
$tab[3] = d345gfe
$tab[4] = 22www35
etc etc. après ça tu fais une boucle pour rechercher le numéro et mettre "la case" à zéro.
du coup tu auras :
$tab[1] = 3423453;
$tab[2] = 765456f;
$tab[3] = ;
$tab[4] = 22www35;
 
Après ça, je ne sais pas si je pense juste :D


---------------
Des trucs - flickr - Instagram
Reply

Marsh Posté le 23-03-2004 à 09:38:19    

Je vois le problème, les indices de ton tableau $TabCommande ne sont pas directement liés à l'id du produit.
 
Tu va aussi avoir des problèmes si un client ajoute plusieurs fois le même produit.
 
En fait, tu as un niveau en trop dans tes tableaux, et une info manquante : la quantité.
 
Je tu suggère donc de procéder ainsi :
 
$Tab : Info 'temporaire' sur un produit.
$TabCommande : Tableau des produits de la commande.
 
Ajouter $Quantity d'un produit

if( isset( $TabCommande[$ProduitId] ) )                                          
{                                                                                
 $Tab = $TabCommande[$ProduitId];
 $Tab['Qty'] += $Quantity;
}
else
{
 $Tab = array( 'Nom' => $CommandeNom, 'Prix' => $CommandePrix, 'Qty' => $Quantity );
}
$TabCommande[$ProduitId] = $Tab;


Supprimer complètement un produit :

unset( $TabCommande[$ProduitId] );


 
Enlever $Quantity à un produit :

if( $Quantity >= $TabCommande[$ProduitId]['Qty'] )
{
 unset( $TabCommande[$ProduitId] );
}
else
{
 $TabCommande[$ProduitId]['Qty'] -= $Quantity;
}


 
Sinon, tu peux aussi faire de l'objet, c'est plus fun :D


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 23-03-2004 à 10:32:26    

Ajouter $Quantity d'un produit  

Code :
  1. if( isset( $TabCommande[$ProduitId] ) )                                         
  2. {
  3. $TabCommande[$ProduitId]['Qty'] += $Quantity;
  4. }
  5. else
  6. {
  7. $TabCommande[$ProduitId] = array( 'Nom' => $CommandeNom, 'Prix' => $CommandePrix, 'Qty' => $Quantity );
  8. }

:D


Message édité par ratibus le 23-03-2004 à 10:32:40
Reply

Marsh Posté le 23-03-2004 à 10:45:50    

MDR...
 
Elle est où la blague drôle que j'ai pas vu ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 23-03-2004 à 10:58:09    

:heink:


---------------
Des trucs - flickr - Instagram
Reply

Marsh Posté le 23-03-2004 à 11:16:41    

merci beaucoup, ça marche bientot. juste un petit détail:
$TabCommande[$ProduitId]
 
--> comment je fais pour récupérer l'indice de $TabCommande (donc $ProduitId) dans une autre page...

Reply

Marsh Posté le 23-03-2004 à 11:18:09    

gaidjka a écrit :

merci beaucoup, ça marche bientot. juste un petit détail:
$TabCommande[$ProduitId]
 
--> comment je fais pour récupérer l'indice de $TabCommande (donc $ProduitId) dans une autre page...


 
sessions

Reply

Marsh Posté le 23-03-2004 à 11:22:18    

bon, je pense que ça doit être tout simple, mais je trouve pas... Effectivement j'envoie mon tableau dans une session, mais là n'est pas le problème. Lorsque j'affiche mes articles, je parcours tout le tableau de ma session, un lien se trouve à coté des article pour les supprimer. J'aimerai que ce lien envoie à ma page de traitement l'indice de la ligne du tableau où est stocké le produit que le visiteur désire supprimer... vous comprenez??? Mais je sais pas comment récupérer cet indice dans une variable...

Reply

Marsh Posté le 23-03-2004 à 11:23:10    

ou GET ou POST mais si tu veux y récup dans tout le site, session... :)


---------------
Des trucs - flickr - Instagram
Reply

Marsh Posté le 23-03-2004 à 11:23:10   

Reply

Marsh Posté le 23-03-2004 à 11:28:51    

gaidjka a écrit :

bon, je pense que ça doit être tout simple, mais je trouve pas... Effectivement j'envoie mon tableau dans une session, mais là n'est pas le problème. Lorsque j'affiche mes articles, je parcours tout le tableau de ma session, un lien se trouve à coté des article pour les supprimer. J'aimerai que ce lien envoie à ma page de traitement l'indice de la ligne du tableau où est stocké le produit que le visiteur désire supprimer... vous comprenez??? Mais je sais pas comment récupérer cet indice dans une variable...


 
OK !
 
foreach( $TabCommande as $ProduitId => $Tab )
{
 echo( "Produit : $ProduitId<br>\n" );
 print_r( $Tab );
}
 
Vu ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 23-03-2004 à 11:33:44    

En fait ce n'est pas tout à fait ça que je voulais... Je vais essayer de m'expliquer plus clairement... J'ai donc un tableau $TabCommande avec comme indice $ProduitID ce qui donne $TabCommande[$ProduitID] voilà ce qui peux donc me donner:
$TabCommande[12] ou $TabCommande[34]...
Chacune de ces cellules du tableau contiennent des valeurs (stockés ds un tableau...), mais ce n'est pas ces valeurs que je veux récupérer pour l'instant, c'est l'indice (dans mon exemple 12 ou 34) voici la structure de mon tableau:
 
  $Tab = array('Nom' => $CommandeNom, 'Prix' => $CommandePrix);
  $TabCommande[$ProduitId] = $Tab;
  $_SESSION['Commande'] = $TabCommande;
 
Moi je veux connaitre la valeur de $ProduitId...

Reply

Marsh Posté le 23-03-2004 à 11:35:30    

Merci Mara's dad c'est tout à fait ça, c'est bon mon problème est terminé, merci! (désolée, j'ai posté l'autre message après avoir vu le tiens)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed