Maison  >  Article  >  développement back-end  >  Explication détaillée des fonctions de données statistiques implémentées en PHP

Explication détaillée des fonctions de données statistiques implémentées en PHP

不言
不言original
2018-06-01 14:11:524794parcourir

Cet article présente principalement la fonction de données statistiques implémentée par PHP et analyse les compétences opérationnelles associées au traitement des requêtes et de l'affichage des données PHP sous forme d'exemples. Les amis dans le besoin peuvent s'y référer

Les exemples dans. cet article décrit l'implémentation de la fonction de statistiques PHP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Les statistiques consistent à intégrer des données de base.

En utilisant SQL, il existe un groupe par fonction, une fonction de comptage, un ordre par fonction, etc.

sql effectuera une analyse statistique sur les données collectées.

Dans des circonstances normales, les données obtenues après le traitement SQL doivent être organisées via la logique PHP.

Affichage à la réception dans un certain format.

est généralement affiché sous la forme d'un tableau, ce qui est aussi la notion de structure de données.

En regardant cette image, la structure de base est probablement

{nombre de lignes en ligne, nombre total de commandes émises, nombre total d'approbations, total par habitant, taux d'approbation total, {(Agent 1, numéro de travail 1, nombre de commandes 1, nombre d'expéditions 1, taux d'approbation de commande 1), (Agent 2, numéro de travail 2, nombre de commandes 2, nombre d'expéditions 2, commande taux d'approbation 2)} >

Si vous utilisez php pour afficher la structure ci-dessus, elle sera facile à gérer.

Tout d'abord, obtenez les données de traitement initiales via SQL

Ne sous-estimez pas ces données de traitement initiales si elles sont bien traitées, ce sera très pratique.

Copier le code Le code est le suivant :

SELECT a.user,count(order_id) as subcount,b.passcount,c.full_name from vicidia_order a LEFT JOIN (utilisateur SELECT, count (order_id) comme compte de passe de vicidial_order où time > UNIX_TIMESTAMP ('2015-11-7') et user_group = 'TeamOne' et verifysta = 'Y' GROUP BY user) b sur a.user = b. utilisateur LEFT JOIN vicidial_users c sur a.user = c.user où time > UNIX_TIMESTAMP('2015-11-7') et a.user_group = 'TeamOne' GROUP BY a.user ;

Idée SQL, Le tableau des commandes est classé par utilisateur.

Obtenez le nombre total de soumissions de commandes count() pour chaque personne ce jour-là.

Obtenez également le nombre total de commandes approuvées pour chaque personne et filtrez par où.

Ensuite, associez et interrogez d'autres données associées.

Avec ces données de base, d'autres données connexes peuvent être publiées.

Traitez l'acquisition via php, et les variables doivent être clairement nommées, ce qui est également utile pour lire le code.


$select_sql = "SELECT a.user,count(order_id) as subcount,b.passcount,c.full_name from vicidial_order a LEFT JOIN (SELECT user,count(order_id) as passcount from vicidial_order where time > UNIX_TIMESTAMP('".$today."') and user_group = '".$user_group."' and verifysta = 'Y' GROUP BY user ) b on a.user = b.user LEFT JOIN vicidial_users c on a.user = c.user where time > UNIX_TIMESTAMP('".$today."') and a.user_group = '".$user_group."' GROUP BY a.user ";
$rows = mysqli_query( $db_conn, $select_sql );
$row_counts_list = mysqli_num_rows( $rows );
if ( $row_counts_list != 0 )
{
  $i = 0;
  while($rs = mysqli_fetch_assoc( $rows )) // mysqli_fetch_assoc 获取键值数据   mysqli_fetch_field 获取一条数据 mysqli_fetch_fields 获取多组数据  mysqli_fetch_row
  {
    $outData['list'][$i]['user'] = $rs['user'];
    $outData['list'][$i]['full_name'] = $rs['full_name'];
    $outData['list'][$i]['subcount'] = $rs['subcount'];
    $outData['list'][$i]['passcount'] = $rs['passcount'];
    $outData['list'][$i]['passrate'] = round(($rs['passcount']/$rs['subcount'])*100)."%";
    $outData['all_subcount'] += $rs['subcount'];
    $outData['all_passcount'] += $rs['passcount'];
    $i++;
  }
  $outData['all_passrate'] = round(($outData['all_passcount']/$outData['all_subcount'])*100)."%";
  $outData['online_count'] = $row_counts_list;
  $outData['average_subcount'] = round($outData['all_subcount']/$outData['online_count'],1);
}


où outData est le type de structure de données à afficher.


Array
(
  [list] => Array
    (
      [0] => Array
        (
          [user] => 8001
          [full_name] => 魏硕磊
          [subcount] => 3
          [passcount] => 2
          [passrate] => 67%
        )
      [1] => Array
        (
          [user] => 8004
          [full_name] => 刘庆
          [subcount] => 2
          [passcount] => 2
          [passrate] => 100%
        )
      [2] => Array
        (
          [user] => 8005
          [full_name] => 章厚英
          [subcount] => 4
          [passcount] => 3
          [passrate] => 75%
        )
    )
  [all_subcount] => 9
  [all_passcount] => 7
  [all_passrate] => 78%
  [online_count] => 3
  [average_subcount] => 3
)


Après avoir obtenu les données, tout est facile.

Insérez-le simplement dans la page, puis déboguez-le vous-même.


<!-- begin -->
<?php foreach ($outData as $k => $v) { ?>
<p class="col-xs-12 col-sm-6 widget-container-col ui-sortable">
  <p class="widget-box widget-color-blue">
    <p class="widget-header">
      <h5 class="widget-title bigger lighter">
        <i class="ace-icon fa fa-table"></i>
        【<?php echo $v[&#39;group_name&#39;];?>】成绩表
      </h5>
    </p>
    <p class="widget-body">
      <p class="widget-main no-padding">
        <table>
        </table>
        <table class="table table-striped table-bordered table-hover">
          <thead style="text-align:center;font-size:16px">
            <tr>
              <td colspan="2">上线总人数:</td>
              <td colspan="3"><?php echo $v[&#39;stat&#39;][&#39;online_count&#39;]?></td>
            </tr>
            <tr>
              <td colspan="2">出单总数:</td>
              <td style="color:red"><?php echo $v[&#39;stat&#39;][&#39;all_subcount&#39;]?></td>
              <td >核过总数</td>
              <td style="color:red"><?php echo $v[&#39;stat&#39;][&#39;all_passcount&#39;]?></td>
            </tr>
            <tr>
              <td colspan="2">总人均:</td>
              <td style="color:red"><?php echo $v[&#39;stat&#39;][&#39;average_subcount&#39;]?></td>
              <td >总核率</td>
              <td style="color:red"><?php echo $v[&#39;stat&#39;][&#39;all_passrate&#39;]?></td>
            </tr>
          </thead>
          <thead class="thin-border-bottom">
            <tr>
              <th>
                <i class="ace-icon "></i>
                坐席人
              </th>
              <th>
                <i class="ace-icon "></i>
                工号
              </th>
              <th>
                <i class="ace-icon "></i>
                出单数
              </th>
              <th>
                <i class="ace-icon "></i>
                发货数
              </th>
              <th>
                <i class="ace-icon "></i>
                核单率
              </th>
            </tr>
          </thead>
          <tbody>
            <?php foreach ($v[&#39;stat&#39;][&#39;list&#39;] as $listk => $listv) { ?>
            <tr>
              <td class=""><?php echo $listv[&#39;full_name&#39;]?></td>
              <td>
                <a href="#"><?php echo $listv[&#39;user&#39;]?></a>
              </td>
              <td class="">
                <a href="#"><?php echo $listv[&#39;subcount&#39;]?></a>
              </td>
              <td class=""><?php echo $listv[&#39;passcount&#39;]?></td>
              <td class=""><?php echo $listv[&#39;passrate&#39;]?></td>
            </tr>
            <?php }?>
            <tr style="color:red;font-size:16px">
                <td class=""colspan="2">总计</td>
                <td class=""><?php echo $v[&#39;stat&#39;][&#39;all_subcount&#39;]?></td>
                <td class=""><?php echo $v[&#39;stat&#39;][&#39;all_passcount&#39;]?></td>
                <td class=""><?php echo $v[&#39;stat&#39;][&#39;all_passrate&#39;]?></td>
            </tr>
          </tbody>
        </table>
      </p>
    </p>
  </p>
</p>
<?php }?>
<!-- end -->

Recommandations associées :

Exemple d'outil d'indexation d'analyse d'annuaire de sites Web basé sur PHP

Fonction de tri de tableau personnalisée et méthode de classe de tri implémentée en PHP

Classe d'opération de fichier et fonction de téléchargement de fichier implémentée en PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn