この記事では、主に PHP で実装されている統計データ関数を紹介し、PHP データのクエリと表示処理の関連操作スキルを例の形式で分析します。 PHPで実装された関数です。参考のために皆さんと共有してください。詳細は次のとおりです:
統計とは基礎データを統合することです。
SQLを使用するものには、group by関数、count関数、order by関数などが含まれます。
sql は収集されたデータに対して統計分析を実行します。
通常の状況では、SQL 処理後に取得されたデータは、PHP ロジックを通じて整理される必要があります。
一定のフォーマットでフロントに提示します。
通常は配列の形式で表示されますが、これはデータ構造の概念でもあります。
この図を見ると、基本的な構造は大まかに
{オンライン回線数、発行された注文の総数、承認の総数、1人当たりの平均の総数、承認率の総数、{(エージェント1、ジョブ番号)です。 1, 注文数 1 , 出荷数 1, 注文承認率 1), (エージェント 2, ジョブ番号 2, 注文数 2, 出荷数 2, 注文承認率 2)}}
php を使用すると、上記の構造を表示すると、非常に扱いやすくなります。
まず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('2015-11-7') and user_group = 'TeamOne' 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('2015-11-7') and a.user_group = 'TeamOne' GROUP BY a.user ;
sql のアイデアを使用して、順序テーブルを分類し、ユーザーごとに分類します。
その日の各人の注文送信の合計数を取得します count()。
また、各個人の承認された注文の合計数を取得し、どこでフィルターする必要もあります。
次に、他の関連データを関連付けてクエリします。
これらの基本データがあれば、他の関連データも出てきます。
phpを介して取得を処理し、変数の名前を明確にする必要があります。これはコードを読むのにも役立ちます。
$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); }
ここで、outData は出力されるデータ構造タイプです。
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 )
データを取得したら、すべてが簡単になります。
それをページに挿入して、自分でデバッグするだけです。
<!-- 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['group_name'];?>】成绩表 </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['stat']['online_count']?></td> </tr> <tr> <td colspan="2">出单总数:</td> <td style="color:red"><?php echo $v['stat']['all_subcount']?></td> <td >核过总数</td> <td style="color:red"><?php echo $v['stat']['all_passcount']?></td> </tr> <tr> <td colspan="2">总人均:</td> <td style="color:red"><?php echo $v['stat']['average_subcount']?></td> <td >总核率</td> <td style="color:red"><?php echo $v['stat']['all_passrate']?></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['stat']['list'] as $listk => $listv) { ?> <tr> <td class=""><?php echo $listv['full_name']?></td> <td> <a href="#"><?php echo $listv['user']?></a> </td> <td class=""> <a href="#"><?php echo $listv['subcount']?></a> </td> <td class=""><?php echo $listv['passcount']?></td> <td class=""><?php echo $listv['passrate']?></td> </tr> <?php }?> <tr style="color:red;font-size:16px"> <td class=""colspan="2">总计</td> <td class=""><?php echo $v['stat']['all_subcount']?></td> <td class=""><?php echo $v['stat']['all_passcount']?></td> <td class=""><?php echo $v['stat']['all_passrate']?></td> </tr> </tbody> </table> </p> </p> </p> </p> <?php }?> <!-- end -->
以上がPHPで実装されている統計データ関数を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。