>  기사  >  백엔드 개발  >  PHP에서 구현된 통계 데이터 기능에 대한 자세한 설명

PHP에서 구현된 통계 데이터 기능에 대한 자세한 설명

不言
不言원래의
2018-06-01 14:11:524843검색

이 글에서는 주로 PHP에서 구현하는 통계 데이터 기능을 소개하고, PHP 데이터 쿼리 및 표시 처리와 관련된 조작 기술을 예제 형식으로 분석합니다. 도움이 필요한 친구가 참고할 수 있습니다.

이 글의 예제는 통계 데이터를 설명합니다. PHP로 구현된 함수입니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

통계는 기본 데이터를 통합하는 것입니다.

SQL을 사용하는 것에는 함수별 그룹화, 계산 함수, 함수별 정렬 등이 있습니다.

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 여기서 시간 > UNIX_TIMESTAMP('2015-11-7') 및 user_group = 'TeamOne' 및 verifysta = 'Y' GROUP BY user ) a.user = b.user LEFT JOIN vicidial_users c on a.user = c .user where time > UNIX_TIMESTAMP('2015-11-7') 및 a.user_group = 'TeamOne' GROUP BY a.user ;

sql 아이디어, 주문 테이블을 분류하고 사용자별로 분류합니다.

당일 각 개인별 총 주문 제출 횟수()를 가져옵니다.

또한 각 사람에 대해 승인된 총 주문 수를 가져와서 위치별로 필터링해야 합니다.

그런 다음 다른 관련 데이터를 연결하고 쿼리하세요.

이러한 기본 데이터로 다른 관련 데이터가 나올 수 있습니다.

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[&#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 -->

관련 추천:

PHP를 기반으로 구현된 웹사이트 디렉토리 검색 색인 도구의 예

PHP에서 구현한 사용자 정의 배열 정렬 기능 및 정렬 클래스 방법

PHP에서 구현한 파일 작업 클래스 그리고 파일 다운로드 기능

위 내용은 PHP에서 구현된 통계 데이터 기능에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.