Bonjour,
Tout d'abord, ce que j'aurais dû faire dans mon premier post concernant ce tutoriel : un grand merci à son auteur... Les pauvres débutants en php comme moi apprécient l'aide que cela nous apporte pour apprendre et comprendre.

Voici les autres raisons de ce post relatif aux scripts de ce tutorlel :

Dans la page fonctions-panier.php, dans la partie concernant la modification du panier au niveau de la quantité, j'ai fait une modification...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function modifierQTeArticle($libelleProduit,$qteProduit){
if (creationPanier())
{
 
  if ($qteProduit > 0)
  {
   $positionProduit = array_search($libelleProduit,  $_SESSION['panier']['libelleProduit']);
 
   if ($positionProduit !== false)
   {
    $_SESSION['panier']['qteProduit'][$positionProduit] = $qteProduit ;
   }
  }
  else
   supprimerArticle($libelleProduit);
 
}
else
  echo "Un problème est survenu veuillez contacter l'administrateur du site.";
}
Il y a, à la fin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
supprimerArticle($libelleProduit);
et cela supprime la ligne lorsqu'on change la quantité dans le panier au lieu "d'enregistrer" le changement de quantité. Je l'ai remplacé par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
modifierQTeArticle($libelleProduit);
ce qui me permet maintenant de changer la quantité tout en conservant la ligne de produit.
J'y ai ensuite ajouté, sans problème, le traitement de deux données supplémentaires (le nom du fournisseur et un second montant) et fais les modifications dans la page panier.php...

Mais je voudrais y faire deux autres modifications, et j'avoue que je sèche...

La première concerne les prix : j'aimerais qu'ils s'affichent dans le panier avec deux décimales et non pas une seule lorsque la deuxième décimale est un zéro (par exemple : 1.80 au lieu de 1.8 actuellement)...

et la seconde est l'ajout, dans le panier, d'une colonne comportant, ligne par ligne, le résultat de la multiplication du prix unitaire par la quantité. actuellement, je n'ai en bas du tableau que le total des différents achats, mais je n'ai pas ce résultat à chaque ligne (je ne sais pas si je m'explique bien...)
Ajouter une colonne dans panier.php, je sais faire, mais je n'arrive pas à trouver la bonne formule à mettre dans fonctions-panier.php pour arriver à faire cette simple multiplication pour envoyer vers le panier (j'suis pas douée, hein !)

Je remets ce script (avec mes ajouts) en entier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?php
 
function creationPanier(){
$ret=false;
 
if (isset( $_SESSION['panier']))
 $ret = true;
else
{
 
  $_SESSION['panier']=array();
  $_SESSION['panier']['libelleProduit'] = array();
  $_SESSION['panier']['fournisseurProduit'] = array();
  $_SESSION['panier']['qteProduit'] = array();      
  $_SESSION['panier']['prixProduit'] = array();
  $_SESSION['panier']['gainProduit'] = array();
 
  $ret=true;
}
return $ret;
}
 
function ajouterArticle($libelleProduit,$fournisseurProduit,$qteProduit,$prixProduit,$gainProduit){
 
if (creationPanier())
{
$positionProduit = array_search($libelleProduit,  $_SESSION['panier']['libelleProduit']);
 
  if ($positionProduit !== false)
  {
   $_SESSION['panier']['qteProduit'][$positionProduit] += $qteProduit ;
  }
  else
  {
   array_push( $_SESSION['panier']['libelleProduit'],$libelleProduit);
   array_push( $_SESSION['panier']['fournisseurProduit'],$fournisseurProduit);
   array_push( $_SESSION['panier']['qteProduit'],$qteProduit); 
   array_push( $_SESSION['panier']['prixProduit'],$prixProduit);
   array_push( $_SESSION['panier']['gainProduit'],$gainProduit);
 
  }
 
}
 
else
  echo "Un problème est survenu veuillez contacter l'administrateur du site.";
}
 
function supprimerArticle($libelleProduit){
 
if (creationPanier())
{
  $tmp=array();
  $tmp['libelleProduit'] = array();
  $tmp['fournisseurProduit'] = array();
  $tmp['qteProduit'] = array();      
  $tmp['prixProduit'] = array();
  $tmp['gainProduit'] = array();
 
  for($i = 0; $i < count($_SESSION['panier']['libelleProduit']); $i++) 
  {
   if ($_SESSION['panier']['libelleProduit'][$i] !== $libelleProduit)
   {
    array_push( $tmp['libelleProduit'],$_SESSION['panier']['libelleProduit'][$i]);
    array_push( $tmp['fournisseurProduit'],$_SESSION['panier']['fournisseurProduit'][$i]);
    array_push( $tmp['qteProduit'],$_SESSION['panier']['qteProduit'][$i]); 
    array_push( $tmp['prixProduit'],$_SESSION['panier']['prixProduit'][$i]);
    array_push( $tmp['gainProduit'],$_SESSION['panier']['gainProduit'][$i]);
 
   }
 
  }
 
 
$_SESSION['panier'] =  $tmp;
unset($tmp);      
 
}
else
  echo "Un problème est survenu veuillez contacter l'administrateur du site.";
}
 
function modifierQTeArticle($libelleProduit,$qteProduit){
if (creationPanier())
{
 
  if ($qteProduit > 0)
  {
   $positionProduit = array_search($libelleProduit,  $_SESSION['panier']['libelleProduit']);
 
   if ($positionProduit !== false)
   {
    $_SESSION['panier']['qteProduit'][$positionProduit] = $qteProduit ;
   }
  }
  else
   modifierQTeArticle($libelleProduit);
 
}
else
  echo "Un problème est survenu veuillez contacter l'administrateur du site.";
}
 
function MontantGlobal(){
 
$total=0;
 
  for($i = 0; $i < count($_SESSION['panier']['libelleProduit']); $i++) 
  {            
   $total += $_SESSION['panier']['qteProduit'][$i] * $_SESSION['panier']['prixProduit'][$i]; 
  }
 
return $total;
}
 
function MontantGain(){
 
$total=0;
 
  for($i = 0; $i < count($_SESSION['panier']['libelleProduit']); $i++) 
  {            
   $total += $_SESSION['panier']['qteProduit'][$i] * $_SESSION['panier']['gainProduit'][$i]; 
  }
 
return $total;
}
 
?>
Merci par avance de votre aide.