addition dans colonne array

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : addition dans colonne array

par Invité » 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;
		}
}

par icebreak » 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;

par thehawk » 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...

par icebreak » 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.

par thehawk » 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]

par thehawk » 14 août 2006, 12:23

j'y arrive pas dsl ...
bon j abondonne pour l instant je reprendrai demain

par zeus » 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

par thehawk » 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:

par zeus » 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;
}

par thehawk » 14 août 2006, 11:09

ca me marque :

Code : Tout sélectionner

array(1) { [0]=> array(2) { ["ref"]=> string(5) "memhk" ["prix"]=> string(2) "15" } }

par zeus » 14 août 2006, 11:06

Essaye
var_dump($_SESSION['achats']);

par thehawk » 14 août 2006, 11:03

il n ya aucun probleme pour l affichage ca fait exactement ce que je veux une derniere precision je teste sous easyphp .

par zeus » 14 août 2006, 11:02

Est-ce que l'affichage du contenu du panier fonctionne ?

par thehawk » 14 août 2006, 11:00

dans un fichier caddie qui est inclu dans l index
session_start();
require "fonction.php";
echo '<h3>'.$texte_caddie.'</h3>';
require("function.php");
$valide = array("add","del","aff","modif");
if(isset($_GET['action']) and in_array($_GET['action'],$valide))
{
        switch ($_GET['action'])
        {
                case "add":
                add($_GET['ref'],$_GET['prix']);
                aff($panier_vide,$panier_supprimer);
                break;                
                case "aff":
                aff($panier_vide,$panier_supprimer);
                break;
                case "del":
                del($_GET['ref']);
                aff($panier_vide,$panier_supprimer);
                break;
                case "modif":
                modif($_GET['ref'],$_GET['qte']);
                aff($panier_vide,$panier_supprimer);
                break;
        }
}
 else
{
aff($panier_vide,$panier_supprimer);
total_prix();

}
l integarlité du script.Pour la fonction ne sé pas vraiment ou la placée ...

par zeus » 14 août 2006, 10:46

A quel moment est-ce que tu fait appel à la fonction qui compte le total ?