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

PHP & Base de données Discussion :

Somme tableau avec array_sum [ODBC]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club Avatar de nawak.seb
    Profil pro
    Inscrit en
    Août 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 106
    Points : 55
    Points
    55
    Par défaut Somme tableau avec array_sum
    Bonjour,
    Je cherche a caluler une somme dans un tableau
    voici ma requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $selectcalc ="SELECT * FROM T_detail_bretelleFourni WHERE idref=$ref";
    $reqbretcalc = odbc_do($odbc, $selectcalc ) or die(odbc_error());
    while($calacbretprix=odbc_fetch_array($reqbretcalc))
    {
    $t =  $calacbretprix['qte'] ;  //resultat1  = 2   //resultat2 = 3
    $r =  $calacbretprix['prixunit']; //resultat1 = 50   //resultat2 = 20
    $tba = array ($tototo = $t * $r ); //total1 = 100 //total2 = 60
     
    print_r ($tba);  //Array ( [0] => 100) Array ( [0] => 60) 
    }
     
    $b = array($tba);
    echo "sum(b) = " . array_sum($b) . "\n"; // sum(b) = 0
    Le resultat de "echo array_sum($b);" est zero,est elle correcte ma requete ?
    Merci d'avance.
    Quand l'impossible devient possible

  2. #2
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Pas sur d'avoir compris ta question, mais voici
    deux suggestions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    while($calacbretprix=odbc_fetch_array($reqbretcalc))
    {
      $t =  $calacbretprix['qte'] ;  //resultat1  = 2   //resultat2 = 3
      $r =  $calacbretprix['prixunit']; //resultat1 = 50   //resultat2 = 20
      $tba[] = $t * $r; // suggestion 1
      $total += $t * $r; // suggestion 2
    }
    echo "sum(b) = " . array_sum($tba) . "\n"; // suggestion 1
    echo "sum(b) = $total\n"; // suggestion 2
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

  3. #3
    Membre du Club Avatar de nawak.seb
    Profil pro
    Inscrit en
    Août 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 106
    Points : 55
    Points
    55
    Par défaut
    Merci pour ta réponse,
    J'ai trouvé un lien qui m'a fort aidé
    http://www.developpez.net/forums/d26...somme-tableau/

    Le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $selectcalc ="SELECT * FROM T_detail_bretelleFourni WHERE idref=$ref";
    $reqbretcalc = odbc_do($odbc, $selectcalc ) or die(odbc_error());
    $prix_total = "0";
    while($calacbretprix=odbc_fetch_array($reqbretcalc))
    {
    $t =  $calacbretprix['qte'] ;
    $r =  $calacbretprix['prixunit'];
    $tba = array ($tototo = $t * $r );
    $prix_total = $prix_total + array_sum($tba);
    }
    Quand l'impossible devient possible

  4. #4
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Il me semble que tu compliques

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $tba = array ($tototo = $t * $r );
    $prix_total = $prix_total + array_sum($tba);
    Tu crée à chaque passage de boucle un tableau d'un élément $tba
    et tu crées aussi une variable inutile $tototo

    Ecrit simplement:

    $prix_total = $prix_total + $t * $r;

    et vire la ligne $tba = ...

    ou plus simplement

    $prix_total += $t * $r;
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

  5. #5
    Membre averti
    Homme Profil pro
    Lead Dev Web
    Inscrit en
    Avril 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lead Dev Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2005
    Messages : 282
    Points : 390
    Points
    390
    Par défaut
    Ou pourquoi faire simple quand on peut faire compliqué

    +1 nawak.seb

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

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 03/05/2015, 23h29
  2. tableau avec 1 colonne sur 3 sans cadre
    Par brasco06 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 21/04/2005, 17h44
  3. balise <img> dans un tableau avec firefox
    Par yannock dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 25/10/2004, 16h44
  4. pb de coord de tex dans tableau avec multitex
    Par sebh dans le forum OpenGL
    Réponses: 3
    Dernier message: 25/01/2004, 21h36
  5. Réponses: 13
    Dernier message: 14/10/2003, 14h31

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