IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] Calculer la somme d'un tableau [Fait]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 39
    Par défaut [Tableaux] Calculer la somme d'un tableau
    Hello hello,

    Voilà, je rencontre un petit problème pour calculer la somme d'un tableau. C'est toujours pour mon script panier

    je fais avec un array_sum, mais cela me caclul que le dernier article passé dans le panier.

    En fait je ne sais pas comment récuperer tout mes articles pour faire la calculation. Voici mon bout de code.

    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
    <?php
    //On contrôle si variable session panier est déclarée
    //Si c'est le cas on affiche les produits déclarés dans la session
    if(isset($_SESSION['panier'])) {
    ?>
    <!--PANIER
    <?php echo(join(",",array_keys($_SESSION['panier']))); 
    ?>-->
    	<table width="100%" cellpadding="5" cellspacing="0">
    <?php
    //Si la session n'est pas vide on affiche le ou
    //les produits séléctionnés en faisant un foreach.
    //$session panier devient $produit
    foreach(array_keys($_SESSION['panier']) as $produit) {
    	$info = produit_info($produit); 
    	// 
    	$total_prix = array($info['prix']);
     
    ?>
    		<tr>
    			<td>
    			<div style="float:left;margin:0px"><?php echo($info['nom']); ?></div>
    			<div style="float:right;margin:0px"><?php echo($info['prix']); ?> Frs</div>
    			</td>
    		</tr> 
    <?php 
    }//Fin du foreach
    ?>
    		<tr>
    			<td align="center">
    <?php
    //Si la session panier est vide, on affiche "Panier vide"
    if (empty($_SESSION['panier'])) { ?>Panier vide<?php }
    //Sinon c'est que le panier contient au moins un produit
    else { ?>
     
    			<div style="float:left;margin:0px">TOTAL:</div>
    			<div style="float:right;margin:0px"><?php echo "".array_sum($total_prix)."" ;?> Frs</div>
    			<br>
    			<a href="valider.php">Valider le paiement</a>
    <?php 
    }//Fin de la condition else
    ?>
    			</td>
    		</tr>
    	</table>
    <?php 
    }//Fin de la condition if $_SESSION['panier']
    ?>

  2. #2
    Membre éprouvé
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Par défaut
    Si j'ai tout compris,
    Tu veux le total de ton prix alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $total_prix = array($info['prix']);
    Ca te mets le dernier prix dans $total_prix.
    Faire une addition pourrait être sympa pour avoir un total, genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $total_prix = $total_prix + array($info['prix']);
    Le tout en n'ayant bien sur pas oublié d'initialiser $total_prix a 0, parce que c'est plus propre.

  3. #3
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 39
    Par défaut
    hello, merci bien pour ta réponse.

    Alors oui c'est bien cela, ça me met le dernier prix dans $total_prix

    Donc j'ai fait comme tu m'as dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $total_prix = $total_prix + array($info['prix']);
    mais j'ai une erreur: Fatal error: Unsupported operand types

    Ce qui est logique vu que ma variable $total_prix n'a aucune valeur. Donc j'ai fait comme tu l a suggéré, j ai initialisé $total_prix à 0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $total_prix = "0";
    $total_prix = $total_prix + array($info['prix']);
    Mais là pareil, j ai tjrs la même erreur

    Alors j'ai tenté un dernier truc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $cal_prix = array($info['prix']);
    $total_prix = $cal_prix + array($info['prix']);
    Mais là $total_prix = array :-(

    je suis complètement paumé...

  4. #4
    Membre éprouvé
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Par défaut
    Garlg, forcement, j'devrai mieux lire. J'ai bien mis le +, mais j'ai pas cherché plus loin.
    Faut pas metre le array. Array() sert à déclarer un tableau. Là il existe déjà, t'as qu'a le lire. Donc, sous reserve que ton prix soit bien dans ton tableau "$info" avec la clef 'prix' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $total_prix = $total_prix + $info['prix'];
    Si ca ne marche pas, tu fait un print_r de $info (avec éventuellement un echo de '<pre>' avant et un '</pre>' après, histoire d'avoir une mise en forme un peu plus agréable.

    Accesoirement :
    La tu as initialisé $total_prix a "0", c'est a dire a la chaine de caractère 0.
    Il se trouve que comme on est en php et que php fait tout un tas de conversion implicite, ca va marcher quand même avec un peu de bol, mais c'est très sale. Il faut initialiser a la 'valeur' 0. Donc tout simplement :

  5. #5
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 39
    Par défaut
    Un grand merci à toi car j ai appris 2-3 trucs.

    Alors j ai fait ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $total_prix = 0;
    $total_prix = $total_prix + $info['prix'];
     
    <?php echo "$total_prix" ; ?>
    Mais c'est tjrs pareil, ça me calcule le dernier produit, mais pas la totalité de mon panier

    voilà ce que me retourne print_r
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    (
        [id] => 2
        [nom] => Camembert
        [prix] => 12.55
    )
    Ce qui démontre bien que le calcul ne se fait pas sur tout le panier. En fait ca revient à la même situation que mon array_sum

    P.s Voici l'url de mes tests online, si ça peut aider.
    http://www.cqfd.ch/www/tests/test_panier/produits.php

  6. #6
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Un rapide coup d'oeil au manuel PHP montre que tu n'utilises pas correctement la fonction 'array_sum' dans ton code d'origine.
    http://fr.php.net/array_sum
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Calcul de somme dans un tableau
    Par kimblue77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/01/2011, 11h03
  2. [XL-2007] option boutton: comment calculer une somme dans un tableau
    Par Malek713 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/10/2010, 16h05
  3. Calculer une somme dans un tableau
    Par nawak.seb dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 10/02/2009, 16h21
  4. [Tableaux] Calcul d'une moyenne à partir d'un tableau
    Par Mordanus dans le forum Langage
    Réponses: 13
    Dernier message: 09/05/2007, 18h03
  5. [Tableaux] Calcul de somme
    Par Flushovsky dans le forum Langage
    Réponses: 2
    Dernier message: 21/09/2006, 16h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo