Page 1 sur 3

addition dans colonne array

Posté : 13 août 2006, 20:47
par thehawk
bonjour je cherche un moyen d'additionner une colonne contenant des chiffres pouvez vous m'aider ?

Posté : 13 août 2006, 20:58
par aelurus
Salut
Heu colone c un peu vague quand meme.
Sinon une addition en php c'est dans le style:
$a=1;
$b=3;
echo $c=$a+$b;
//affiche 4
?>

Posté : 13 août 2006, 21:02
par thehawk
dsl j'ai oublier un 'petite partie ' c'est faire une addition dans un array()
de la forme :
$_SESSION['achats'][$i]['prix'] 
donc voila

Posté : 13 août 2006, 21:28
par aelurus
<?
$i=5;
$a['achats'][$i]['prix']=3;
print_r($a);
echo "<br>";

echo "<br>";
echo $a['achats'][$i]['prix'];
echo "<br>";
echo ++$a['achats'][$i]['prix'];
?>
affiche

Code : Tout sélectionner

Array ( [achats] => Array ( [5] => Array ( [prix] => 3 ) ) ) 3 4

Posté : 13 août 2006, 21:39
par thehawk
exactement ce que je voudrais c'est que je rentre une multitude de prix divers et que a la fin cela m affiche le total.

Posté : 13 août 2006, 21:53
par zeus
Juste en parlant d'algorithme, ce que je te conseille de faire :

il faut que tu parcours la liste des achats et, pour chaque achat, que tu parcours la liste des prix et que tu les additionnes.

Après, renseigne toi sur foreach() et tu devrais pouvoir arriver à tes fins.

Posté : 13 août 2006, 21:57
par thehawk
j'ai essayer avec un froeach soit je le fait mal soit ca ne peu pas marcher
le resultat est que je n y arrive pas.
function total_prix($prix)
{
	$count = count($_SESSION['achats']);
	for($i=0;$i<$count;$i++)
		{
		$tot = $_SESSION['achats'][$i]['prix'];
		}
		
		
 foreach($_SESSION['achats'] as $valeur) 
 { 
 $valeur_totale += $valeur; 
 } 
 echo $valeur_totale; 

}
voila ma fonction .... en esperant que vous m aiderai a trouver la solution[/php]

Posté : 13 août 2006, 22:14
par zeus
Bon, je te donne la solution.

Etudis bien le code pour le comprendre ;)
function total_prix()
{
	//Parcours des achats
	foreach($_SESSION['achats'] => $achat)
	{
		//Initialisation du total pour cet achat
		$total_achat = 0:
		
		//Parcours des prix de cet achat
		foreach($achat['prix'] => $prix)
		{
			//Ajout du prix au total par achat
			$total_achat += $prix
		}
	}
}

Posté : 13 août 2006, 22:18
par thehawk
cela marche pas ca me marque : parse error

Posté : 13 août 2006, 22:25
par aelurus
regarde les numero de ligne puis tu prend la ligne juste au dessus et tu regarde comment elle ce termine :)

Posté : 13 août 2006, 22:26
par thehawk
ben juste au dessu c'est un commentaire ... qui lui est bon

Posté : 14 août 2006, 00:45
par Truc
Mouais... un "parse error" est le plus souvent à cause d'un oubli de point virgule, fait en le tour :wink:

Posté : 14 août 2006, 08:37
par thehawk
j'ai repris tel quel le code de zeus ...
function total_prix()
{
    //Parcours des achats
    foreach($_SESSION['achats'] => $achat) // la ligne ou il y a le parse error ...
    {
        //Initialisation du total pour cet achat
        $total_achat = 0:
        
        //Parcours des prix de cet achat
        foreach($achat['prix'] => $prix)
        {
            //Ajout du prix au total par achat
            $total_achat += $prix
        }
    }
} 


Posté : 14 août 2006, 09:20
par zeus
j'ai repris tel quel le code de zeus ...
... dans lequel j'ai fait des erreurs de syntaxes :oops: Faut dire que j'était fatigué ;)
function total_prix()
{
    //Parcours des achats
    foreach($_SESSION['achats'] => $achat) // la ligne ou il y a le parse error ...
    {
        //Initialisation du total pour cet achat
        $total_achat = 0; // <= j'avais mis : au lieu de ;
        
        //Parcours des prix de cet achat
        foreach($achat['prix'] => $prix)
        {
            //Ajout du prix au total par achat
            $total_achat += $prix; //<= j'avais oublié le ;
        }
    }
}
Mais ce sont des erreurs que tu aurais pu trouver tout seul ;)

Par exemple, pour un "parse error : UNEXPECTED ..." regarde la dernière ligne de code avant celle indiquée et regarde s'il ne manque pas un ; ;)

Posté : 14 août 2006, 09:25
par thehawk
moi aussi j étais fatiguer et je les avez pas vu mé meme en faisant les modif s ca marche pas ....