Un code PHP qui fait le total des totaux :-)



  • Bonjour à tous !

    Je voudrais savoir si vous saviez faire un code qui compte le total des totaux de tous mes membres ?

    En fait j'ai une page dans mon admin qui affiche le total personnel des points de mes membres, et je voudrais avoir un code qui additionne le total de tous les totaux de mes membres :D .

    J'espère avoir été compris :wink:

    Merci à tous !



  • J'espère avoir été compris Wink

    Non…

    Poster tes codes, sa aide.



  • utilise une boucle qui fait tous les user un par un pour recupérer leurs points et tu incrémente une variable tout au long avec ces points



  • $points_totaux = 0;
    $retour = mysql_query('SELECT * FROM membres');
    while($donnees = mysql_fetch_array($retour))
    {
              $points_totaux = $points_totaux + $donnees['points'];
    }
    

    Tu devrais pouvoir faire quelque chose avec ça !



  • Sa dépend ce que tu veux compter aussi…



  • SELECT SUM(`points`) AS `total` FROM `membres`
    

    puis

    <?php
    $total = mysql_query(...);
    $total = mysql_fetch_assoc($total);
    $total = $total['total'];
    ?>
    


  • SELECT SUM(`points`) AS `total` FROM `membres`
    ```ca fait direct le total ca?


  • Si vous n'avez pas compris, voici le code :)

    <h2 align=center>Clics des membres</h2><center>
    <form action=index.php method=post>
     <input type=hidden name=tp value=etable>
    
    <?php
     $query = "SELECT * FROM users";
     $eredm = mysql_query($query) or die("error");
     include("funcs.php");
     while ($sor=mysql_fetch_array($eredm)){
      $fid = $sor["fid"];
      $pearn[$fid]=getpoints($fid);
      $cearn[$fid]=getcash($fid);
     }
    
     if (isset($sendp)){
      arsort($pearn);
      print("<table align=center width=80% border=1><tr><td align=center width=25%><b>ID</b></td>
    	 <td align=center width=25%><b>Points</b></td><td align=center width=25%><b>Cash</b></td>
    	 <td align=center width=25%><b>Lire</b></td></tr>");
      foreach($pearn as $pkey => $pvalue){
       echo "<tr>
    	 <td align=center>$pkey</td>
    	 <td align=center>$pvalue</td>
    	 <td align=center>$cearn[$pkey]</td>
    	 <td align=center><a href=userview.php?uid=$pkey target=blank><font color=black>Lire</font></a></td></tr>";
      }
    
     } 
     if (isset($sendc)){
      arsort($cearn);
      print("<table align=center width=80% border=1><tr><td align=center width=25%><b>ID</b></td>
    	 <td align=center width=25%><b>Points</b></td><td align=center width=25%><b>Cash</b></td>
    	 <td align=center width=25%><b>Lire</b></td></tr>");
      foreach($cearn as $ckey => $cvalue){
       echo "<tr>
    	 <td align=center>$ckey</td>
    	 <td align=center>$pearn[$ckey]</td>
    	 <td align=center>$cvalue&nbsp;euros</td>
    	 <td align=center><a href=userview.php?uid=$ckey target=blank><font color=black>Lire</font></a></td></tr>";
      }
    
     }
    ?>
    

    Pour réexpliquer, j'ai le total de chaque points des membres et je souhaiterais additionner ces totaux pour faire le total de tout leurs points :).

    J'ai inscrit les codes que l'on m'a fournit mais je n'y suis pas parvenu et comme mes compétences sont très restreintes en php, faire une boucle ... :D . Donc si mon code est transformable directement n'hésitez pas :wink: .

    Par contre dois-je établir une requête ou quoi que ce soit dans ma base de donnée si je rajoute ce code ? :)

    Merci à tous :wink:



  • @equinox:

    SELECT SUM(`points`) AS `total` FROM `membres`
    ```ca fait direct le total ca?
    

    bah ca devrait si le total par membre est déjà totalisé dans la BDD.

    ET pour l'avoir pour un seul membre, on rajoute une clause where avec l'identificateur du membre. Si je me trompe pas on peut même passer cela en paramètre :)



  • Si je peux aider, le total de chaque membre s'inscrit sur une page de mon admin :)

    EDIT : Besoin d'aide s'il vous plait... :( . Ce dernier détail me permettra de bien lancer mon site :)

    Merci à tous.



  • @grignote1:

    Si je peux aider, le total de chaque membre s'inscrit sur une page de mon admin :)

    EDIT : Besoin d'aide s'il vous plait... :( . Ce dernier détail me permettra de bien lancer mon site :)

    Merci à tous.

    As-tu essayé les 2 codes proposés ? Car ils servent à faire ce que tu veux…



  • clair que la requete SQL fait ce que tu veux sans souci ^^



  • onepiecefan : Oui j'ai mis les 2 codes sur mon script, mais ça n'a pas marché comme j'avais mis un peu plus haut sur un de mes posts :) .

    Mais comme je suis très mauvais en php je ne sais même pas où je dois les mettre sur mon code, et je ne sais pas comment je peux afficher le total sur ma partie admin, parce que si je met le code et qu'après il n'y a pas le echo (que je ne sais pas faire ^^) je n'aurai pas le résultat :wink:

    lave : je dois exécuter une requete sql ?

    EDIT : SELECT SUM c'est la requête ?



  • comment se nomme le champs qui contient les points (situé dans la table user)?



  • Je crois que c'est ftotalclicks :wink:

    P.S. : Chez moi c'est la table users (au cas ou il y aurait une différence :) )



  • remplace le code que tu as donné par

    <h2 align=center>Clics des membres</h2><center>
    <form action=index.php method=post>
     <input type=hidden name=tp value=etable>
    
    <?php
     $total = mysql_query('SELECT SUM(`ftotalclicks`) AS `total` FROM `users`') or die(mysql_error());
     $total = mysql_fetch_assoc($total);
     $total = $total['total'];
     echo '<ul style="list-style-type: box;"><li>Nombre total de clics : </b> '.$total.'</li></ul>';
     $query = "SELECT * FROM users";
     $eredm = mysql_query($query) or die("error");
     include("funcs.php");
     while ($sor=mysql_fetch_array($eredm)){
      $fid = $sor["fid"];
      $pearn[$fid]=getpoints($fid);
      $cearn[$fid]=getcash($fid);
     }
    
     if (isset($sendp)){
      arsort($pearn);
      print("<table align=center width=80% border=1><tr><td align=center width=25%><b>ID</b></td>
        <td align=center width=25%><b>Points</b></td><td align=center width=25%><b>Cash</b></td>
        <td align=center width=25%><b>Lire</b></td></tr>");
      foreach($pearn as $pkey => $pvalue){
       echo "<tr>
        <td align=center>$pkey</td>
        <td align=center>$pvalue</td>
        <td align=center>$cearn[$pkey]</td>
        <td align=center><a href=userview.php?uid=$pkey target=blank><font color=black>Lire</font></a></td></tr>";
      }
    
     }
     if (isset($sendc)){
      arsort($cearn);
      print("<table align=center width=80% border=1><tr><td align=center width=25%><b>ID</b></td>
        <td align=center width=25%><b>Points</b></td><td align=center width=25%><b>Cash</b></td>
        <td align=center width=25%><b>Lire</b></td></tr>");
      foreach($cearn as $ckey => $cvalue){
       echo "<tr>
        <td align=center>$ckey</td>
        <td align=center>$pearn[$ckey]</td>
        <td align=center>$cvalue&nbsp;euros</td>
        <td align=center><a href=userview.php?uid=$ckey target=blank><font color=black>Lire</font></a></td></tr>";
      }
    
     }
    ?>
    

    Et dit ensuite si c'est bon.



  • Alors sur la page voila ce qu'il y a d'affiché : Nombre total de clics : 1122.

    Le total des points des membres (personnel à chacun) n'apparait plus mais ça peut-etre lié du fait qu'il y a quelque chose qui s'affiche d'abord sur la page (un lien avec inscrit dessus "show members" et après tous les totaux apparaissent.)

    EDIT : Essaye avec le champ "totpoints"



  • Essaye ce qui suit. Si ça ne marche pas, vérifie dans le code source généré si la boucle à été exécutée, ou si le code s'est arrêté juste après le miens.
    Bizarre, quand même.

    <h2 align=center>Clics des membres</h2><center>
    <form action=index.php method=post>
     <input type=hidden name=tp value=etable>
    
    <?php
     $query = mysql_query('SELECT SUM(`ftotalclicks`) AS `total` FROM `users`');
     $query = mysql_fetch_assoc($query);
     $query = $query['total'];
     echo '<ul><li>Nombre total de clics : </b> '.$query.'</li></ul>';
     $query = "SELECT * FROM users";
     $eredm = mysql_query($query) or die("error");
     include("funcs.php");
     while ($sor=mysql_fetch_array($eredm)){
      $fid = $sor["fid"];
      $pearn[$fid]=getpoints($fid);
      $cearn[$fid]=getcash($fid);
     }
    
     if (isset($sendp)){
      arsort($pearn);
      print("<table align=center width=80% border=1><tr><td align=center width=25%><b>ID</b></td>
        <td align=center width=25%><b>Points</b></td><td align=center width=25%><b>Cash</b></td>
        <td align=center width=25%><b>Lire</b></td></tr>");
      foreach($pearn as $pkey => $pvalue){
       echo "<tr>
        <td align=center>$pkey</td>
        <td align=center>$pvalue</td>
        <td align=center>$cearn[$pkey]</td>
        <td align=center><a href=userview.php?uid=$pkey target=blank><font color=black>Lire</font></a></td></tr>";
      }
    
     }
     if (isset($sendc)){
      arsort($cearn);
      print("<table align=center width=80% border=1><tr><td align=center width=25%><b>ID</b></td>
        <td align=center width=25%><b>Points</b></td><td align=center width=25%><b>Cash</b></td>
        <td align=center width=25%><b>Lire</b></td></tr>");
      foreach($cearn as $ckey => $cvalue){
       echo "<tr>
        <td align=center>$ckey</td>
        <td align=center>$pearn[$ckey]</td>
        <td align=center>$cvalue&nbsp;euros</td>
        <td align=center><a href=userview.php?uid=$ckey target=blank><font color=black>Lire</font></a></td></tr>";
      }
    
     }
    ?>
    


  • La même chose apparait …

    Ou peut-on vérifier que la boucle a été effectuée ?

    Mais sinon, comme j'ai entièrement confiance en toi je peux te donner mes identifiants ?



  • Si tu veux, mais bon, c'est pas prudent. Après tout, je pourrais être un maniaque webicide.
    M'enfin bon…



  • lol comme tu veux, je peux le modifier après sur freeheberg si j'en fait la demande :) .

    A moins que tu te considères vraiment comme un maniaque webicide ? Ou sinon peut-etre que c'est plus pratique qu'on fasse ça via msn ?


Se connecter pour répondre
 

Il semble que votre connexion ait été perdue, veuillez patienter pendant que nous vous re-connectons.