addition dans colonne array

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

14 août 2006, 11:15

Bon, j'ai l'impression que tu attendes que je te donne une solution toute faite ... :?

Je te donne des tas de pistes des chemins de recherche et tu attends juste mes réponses

Reprend ce code et essaye d'afficher ce qui est récupéré à chaque étape pour voir à quel endroit le code ne fonctionne pas
function total_prix()
{


    foreach($_SESSION['achats'] as $element=> $achat)
    {
        //Initialisation du total pour cet achat
        $total_achat = 0;
        
        //Parcours des prix de cet achat
        foreach($achat['prix'] as $element => $prix)
        {
            //Ajout du prix au total par achat
            $total_achat += $prix;
        }
    } 
echo $total_achat;
}
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 991 Messages

14 août 2006, 11:25

je suis vraiment desolé mais je cherche ,je cherche et je commence a en avoir marre de voir ce p***** de 0 a la place du total ... ](*,)
ElePHPant :tir2:

quelqu un peut me donner la solution SVP :merci: :merci:
DevOps, Symfony4, Hoa

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

14 août 2006, 12:01

quelqu un peut me donner la solution SVP :merci: :merci:
:evil: :shock: :? :cry: :boire4: :afraid:

Alors, je vais reprendre :
Dans le code que je t'ai donné, il y a un parcours sur la case achat de ta session. Si tu réfléchi 30s, tu trouveras que c'est une erreur car il n'y a qu'une seule case "achat" (je ne savais pas qu'il n'y en avait qu'une quand j'ai écrit le code).

Commence donc par supprimer le foreach sur achat

Ensuite, si le code ne marche toujours pas, essaye d'afficher le prix récupérer à chaque itération pour vérifier que la boucle fonctionne
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 991 Messages

14 août 2006, 12:23

j'y arrive pas dsl ...
bon j abondonne pour l instant je reprendrai demain
DevOps, Symfony4, Hoa

Mammouth du PHP | 991 Messages

15 août 2006, 10:17

dsl mais je vois pas trop comment faire :
Ensuite, si le code ne marche toujours pas, essaye d'afficher le prix récupérer à chaque itération pour vérifier que la boucle fonctionne
peux ton m expliquer?[/quote]
DevOps, Symfony4, Hoa

Eléphant du PHP | 124 Messages

15 août 2006, 11:45

je dis ça comme ça, j'ai pas testé, mais il retourne un STRING comme prix.
Normalement dans le calcul ça devrait être directement typé mais au cas ou, un bête (real) devant la valeur devrait la typer DECIMAL pour que ce soit bien un chiffres.

Je sais pas quand la première boucle se termine, mais à mon avis je mettrais l'initialisation hors du foreach. Car si tu as 0 comme retour c'est que c'est pas bon.

Mammouth du PHP | 991 Messages

15 août 2006, 16:05

voial en enlevant le premier forech ca donne:
 function total_prix()
{



        //Initialisation du total pour cet achat
        $total_achat = 0;
        //Parcours des prix de cet achat
        foreach($achat['prix'] as $element => $prix)
        {
		
            //Ajout du prix au total par achat
            $total_achat += $prix;
        

		} 
print_r ($total_achat);
} 
est ce exact ? pourquoi ca marche pas snif...
DevOps, Symfony4, Hoa

Eléphant du PHP | 124 Messages

16 août 2006, 08:51

Parceque aucune variable ne rentre dans ta fonction.
Soit tu fais un total_prix($achats)
Et tu l'appelles de cette façon.

Soit dans ta fonction, au totu début, tu y fout un
global $achat;

Invité
Invité n'ayant pas de compte PHPfrance

16 août 2006, 10:31

fasse a trop grand nombre de difficulté je me suis tourner vers un autre moyenr certe un peux plus fastidieux a metre en place mais au moins il marche

je tenai tout pârticulierement a remercie tous ceux qui mon aider

la technique que j ai utilisé :.
function add($ref,$prix)
{
        $_SESSION['achats'][] = array ("ref" => $ref,"prix" => $prix);
	if (!isset($_SESSION['prix_total']))
		{
		$_SESSION['prix_total'] = 0;
		$_SESSION['prix_total'] = $_SESSION['prix_total'] + $prix;
		}
	else
		{
		$_SESSION['prix_total'] = $_SESSION['prix_total'] + $prix;
		}
}