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] calcul de lignes dans une colonne


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut [Tableaux] calcul de lignes dans une colonne
    Bonjours

    J' ai un problème. Je voudrais prendre la quantité de chaque lignes d'une colonne pour faire un total de quantités.

    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
    <?php
    mysql_connect("localhost","root","");
    mysql_select_db('site');
    function valider(){
    $val=$_SESSION['val'];
    $taille=sizeof($val);
    if($taille-1<=10){$limite=$taille-1;}
    else{$limite=10;}for($i=0;$i<=$limite;$i++){if($val[$i][0]!=0)
    {
    $a=$val[$i][0];
    $b=$val[$i][1];
    $c=$val[$i][2];
    $d=;
    ?>
    <table>
      <tr>
        <td><?php echo"$a"; ?></td><td><?php echo"$b";?></td><td><?php echo"$c";?></td>
      </tr>
      <tr><td><?php echo"$d"; ?></td></tr>
    </table>
    <?php
    
       }}
    }
    $sql=mysql_query("SELECT nom,qte,total FROM pa ");
    $i=0;
    $val=array();
    while($res=mysql_fetch_object($sql)){
                                         $val[$i][0]=$res->nom;
    				                     $val[$i][1]=$res->qte;
                                         $val[$i][2]=$res->total;
    				                     $i++;
                                        }
                                        $_SESSION['val']=$val;
    
    ?>
    <html>
    <head></head>
    <body>
    <?php
    valider();
    ?>
    <br>
    <a href="vider.php">Vider la session</a>
    
    </body>
    </html>
    les lignes s'affichent mais je n'arrive pas mettre une fonction de calcul dans $d pour calculer la quantité de chaque lignes.

    J'ai essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $d=$val[$i][1]+$val[$i++][1];
    ou
    $d=$val[$i][1]+$i++;
    ou
    $d=$val[$i][1]+$val[$i+1][1];
    en bref je n'arrive pas à faire le calcul.

    Quelqu'un a t il une solution pour additionner les lignes (comme quantité) dans un tableau en php ?

    Merci d'avance !!!!

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Je ne comprends pas bien la question, tu peux donner un exemple précis avec des valeurs s'il te plait?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut rep
    J'affiche les lignes d'une base de données au sien d'un tableau en php.
    Chaque lignes contiennent une quantité.
    Je voudrais faire une fonction qui additionne la quantité de chaque lignes afin d'afficher le total ($d).

    le code que j'ai fait affichent les lignes. Mais je n'arrive pas faire une fonction et l'inclure dans $d pour faire le calcul.

  4. #4
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Je n'ai toujours pas compris vu qu'il n'y a pas d'exemples ...
    Donc je dis ce que j'ai compris:

    ligne 1 10 30 4
    ligne 2 20 10 5
    -------------------
    total 30 40 9

    Code de la boucle correspondant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // initialise $d a 0 
    $d[0] = 0;
    $d[1] = 0;
    $d[2] = 0;
    for($i=0;$i<=$limite;$i++){if($val[$i][0]!=0)
    {
    $b=$val[$i][1];
    $c=$val[$i][2];
    $d[0] += $a;
    $d[1] += $b;
    $d[2] += $c;
    Ensuite le total du l'as pour chaque colonne dans $d[...] et tu peux l'afficher après le for.

    (autre truc : tu n'es pas obligé d'ouvrir/fermer les balises <table> a chaque ligne, il vaut mieux ouvrir au début et fermer a la fin)

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut
    ligne 1 qte = 1
    ligne 2 qte = 4
    ligne 3 qte = 5
    ligne 4 qte = 5

    donc total des qte = 15

    avec ta modif ci dessous j 'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function valider(){
    $val=$_SESSION['val'];
    $taille=sizeof($val);
    if($taille-1<=10){$limite=$taille-1;}
    else{$limite=10;}
    $d[1] = 0;
    for($i=0;$i<=$limite;$i++){if($val[$i][0]!=0)
    {
    $b=$val[$i][1];
    $a=$d[1] += $b;
    echo"$a<br>";
       }}
    }
    j' ai
    1 (ici on'a que la premier ligne)
    5 (ici on dirai que l'on l'addition de 2 lignes)
    10 (ici on dirai que l'on l'addition de 3 lignes)
    15 celui ci cool c'est l'addtion de tout les quantités ok cool !!

    Ah zut comment je me débarrase du 1 5 10 afin de garder le dernier qui est le bon. j'ai tenté avec des tas de lignes le dernier calcul est toujours le bon.ca c'est cool. Mais comment éliminer les autres et garder le dernier la je bloque .

  6. #6
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Citation Envoyé par carmen256
    Ah zut comment je me débarrase du 1 5 10 afin de garder le dernier qui est le bon. j'ai tenté avec des tas de lignes le dernier calcul est toujours le bon.ca c'est cool. Mais comment éliminer les autres et garder le dernier la je bloque .

    Ouh la... tu ne peux pas connaitre la somme des colonnes avant de les avoir toutes lues! C'est normal que le résultat soit bon a la fin puisque je le calcule au fur et a mesure
    il faut que tu fasses l'affichage de $d APRES la boucle while, pas pendant.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut Rep
    Ca y est cela fonctionne avec le code ci dessous j'ai seulement le résultat maintenant

    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
     
    <?php
    function valider(){
    $val=$_SESSION['val'];
    $taille=sizeof($val);
    if($taille-1<=10){$limite=$taille-1;}
    else{$limite=10;}
    $d[1] = 0;
    for($i=0;$i<=$limite;$i++){
                               $b=$val[$i][1];
                                $a=$d[1] += $b;
                               }
    				echo"$a<br>";
    				}
    }
    ?>
    Cool!!!

    Merci pour tout
    Bisous

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/03/2009, 14h10
  2. copie ligne dans une colonne
    Par pierre.paumier dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/03/2008, 17h49
  3. afficher le numero de la ligne dans une colonne
    Par maysa dans le forum Requêtes
    Réponses: 14
    Dernier message: 24/12/2007, 09h02
  4. Nombre de lignes <> '' dans une colonne Excel
    Par zemeilleurofgreg dans le forum Delphi
    Réponses: 5
    Dernier message: 10/07/2007, 15h22
  5. [Access] Calcule par ligne dans une requête
    Par Belze dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/02/2006, 09h09

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