Changeset 10223 in spip-zone


Ignore:
Timestamp:
Mar 7, 2007, 7:57:09 AM (14 years ago)
Author:
bertrand@…
Message:

Requetes regroupees pour types d'abonnement :( on dirait que ça va moins vite

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_test_/spip-listes/spip-listes_1_9_2/exec/abonnes_tous.php

    r10201 r10223  
    6363        spiplistes_cherche_auteur();
    6464       
    65         $result_pile = spip_query("SELECT * FROM spip_listes AS listes LEFT JOIN spip_auteurs_listes AS abonnements USING (id_liste) WHERE listes.statut='liste'");
    66         $nb_abonnes = spip_num_rows($result_pile);
    67        
    68         $result_pile = spip_query("SELECT * FROM spip_listes AS listes LEFT JOIN spip_auteurs_listes AS abonnements USING (id_liste) WHERE listes.statut='inact'");
    69         $nb_abonnes_int = spip_num_rows($result_pile);
    70        
    71         $result = spip_query("SELECT extra FROM spip_auteurs");
    72         $nb_inscrits = spip_num_rows($result);
    73 
    74         $cmpt_texte = 0;
    75         $cmpt_html = 0;
    76         $cmpt_non = 0;
     65        $result_pile = spip_query(
     66          'SELECT listes.statut, COUNT(abonnements.id_auteur)
     67           FROM spip_listes AS listes LEFT JOIN spip_auteurs_listes AS abonnements USING (id_liste)
     68           GROUP BY listes.statut');
     69        $nb_abonnes = array();
     70        while ($row = spip_fetch_array($result_pile, SPIP_NUM)) {
     71                $nb_abonnes[$row[0]] = intval($row[1]);
     72        }
     73       
     74        $result = spip_query(
     75          'SELECT extra, COUNT(spip_auteurs.id_auteur) FROM spip_auteurs GROUP BY extra');
     76        $nb_inscrits = 0;
     77
     78        $cmpt = array('texte'=>0, 'html'=>0, 'non'=>0);
    7779       
    7880        while ($row = spip_fetch_array($result, SPIP_NUM)) {
     81                $nb_inscrits += $row[1];
    7982                $abo = unserialize($row[0]);
    80                 if ($abo['abo'] == "texte")
    81                         $cmpt_texte = $cmpt_texte + 1 ;
    82                 if ($abo['abo'] == "html")
    83                         $cmpt_html = $cmpt_html + 1 ;
    84                 if ($abo['abo'] == "non")
    85                         $cmpt_non = $cmpt_non + 1 ;
    86         }
    87         $total_abo = $cmpt_html + $cmpt_texte ;
     83                if ($abo['abo']) {
     84                        $cmpt[$abo['abo']] += $row[1];
     85                }
     86        }
     87        $total_abo = $cmpt['html'] + $cmpt['texte'] ;
    8888
    8989        $abonnes = spip_query("select a.id_auteur, count(d.id_liste) from spip_auteurs a 
     
    9797        echo"<div>";
    9898        echo"<div style='float:right;width:150px'>";
    99         echo "<b>"._T('spiplistes:repartition')."</b>  <br /><b>"._T('spiplistes:html')."</b> : $cmpt_html <br /><b>"._T('spiplistes:texte')."</b> : $cmpt_texte <br /><b>"._T('spiplistes:desabonnes')."</b> : $cmpt_non";
     99        echo "<b>"._T('spiplistes:repartition')."</b>  <br /><b>"._T('spiplistes:html')."</b> : {$cmpt['html']} <br /><b>"._T('spiplistes:texte')."</b> : {$cmpt['texte']} <br /><b>"._T('spiplistes:desabonnes')."</b> : {$cmpt['non']}";
    100100        echo"</div>";
    101         $total= $cmpt_html+$cmpt_texte+$cmpt_non;
    102         echo "Nombre d'abonn&eacute;s : ".$total_abo."<p>Abonn&eacute;s aux listes publiques : ".$nb_abonnes."<br />Abonn&eacute;s aux listes internes : ".$nb_abonnes_int."<br />Abonn&eacute;s &agrave; aucune liste : ".($nb_abonnes_auc-$cmpt_non)."</p>";
     101        $total = $cmpt['html'] + $cmpt['texte'] + $cmpt['non'];
     102        echo "Nombre d'abonn&eacute;s : ". $total_abo .
     103          "<p>Abonn&eacute;s aux listes publiques : " . $nb_abonnes['liste'] .
     104          "<br />Abonn&eacute;s aux listes internes : ". $nb_abonnes['inact'] .
     105          "<br />Abonn&eacute;s &agrave; aucune liste : " . ($nb_abonnes_auc - $cmpt['non']) . "</p>";
    103106       
    104107        echo"</div>";
Note: See TracChangeset for help on using the changeset viewer.