> 백엔드 개발 > PHP 튜토리얼 > PHP는 향상된 동적 histogram_php 기술 버전을 구현합니다.

PHP는 향상된 동적 histogram_php 기술 버전을 구현합니다.

WBOY
풀어 주다: 2016-05-16 20:18:55
원래의
886명이 탐색했습니다.

이 기사에서는 PHP의 향상된 동적 히스토그램 버전을 분석합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.

동적 히스토그램만 만들어지는 상황에 대해서는 이미 글을 썼습니다. 사실 원리는 여전히 매우 간단합니다. 어제 오후에 새로운 수요가 있어서 오늘 아침에 약간 수정해서 숫자별로 데이터를 나누어 표에 표시했습니다.

나중에 확인할 수 있도록 아래 코드를 붙여넣으세요. 아이디어는 그냥 일시적인 아이디어일 뿐이고 다음에는 생각나지 않을 수도 있습니다. 어렵기 때문에 적어 두는 것이 더 나은 형식입니다.

<!DOCTYPE html> 
<&#63;php 
// 计算上一个月的今天 
function last_month_today($time) 
{ 
  $last_month_time = mktime(date("G", $time), date("i", $time), date("s", $time), date("n", $time), 0, date("Y", $time)); 
  $last_month_t = date("t", $last_month_time); 
  if ($last_month_t < date("j", $time)) { 
  return date("Y-m-t H:i:s", $last_month_time); 
  } 
  return date(date("Y-m", $last_month_time) . "-d", $time); 
} 
&#63;> 
<&#63;php 
include dirname(dirname(dirname(__FILE__))) . '/config.php'; 
$endDate = date('Y-m-d'); 
$date = strtotime($endDate); 
$beginDate = last_month_today($date); 
$sql = 'select count(*) from newpro where p_date>\'' . $beginDate . '\' and p_date<\'' . $endDate . '\''; 
$d = db()->query($sql)->fetch(PDO::FETCH_NUM); 
$sql2 = $sql . ' and is_pa_check_first=1 and is_pa_check_second=1 and is_pa_check_third=1'; 
$d2 = db()->query($sql2)->fetch(PDO::FETCH_NUM); 
$sql3 = $sql . ' and is_pa_check_first=1'; 
$d3 = db()->query($sql3)->fetch(PDO::FETCH_NUM); 
$sql4 = $sql . ' and is_pa_check_first=1 and is_pa_check_second=1'; 
$d4 = db()->query($sql4)->fetch(PDO::FETCH_NUM); 
// 查询每个人通过审核的情况: 
$sqlab = 'select d_m,sum(sroce) as total_score,count(d_m) as total_number 
from newpro 
  where is_pa_check_first=1 
  and is_pa_check_second=1 
  and is_pa_check_third =1 
group by d_m'; 
$row = db()->query($sqlab)->fetchAll(PDO::FETCH_ASSOC); 
&#63;> 
<html> 
<head> 
<meta charset="utf-8" /> 
<style> 
div { 
  background-color: #669900; 
  width: 50px; 
} 
#div1 { 
  height: 200px; 
} 
#table td { 
} 
</style> 
<script type="text/javascript" src="../../../js/jquery-1.7.2.min.js"></script> 
</head> 
<body> 
  <h3 align="center">近一个月总的情况</h3> 
  <table border="0" align="center" id="table1"> 
  <caption> 
     <&#63;php echo "时间:".$beginDate."至".$endDate&#63;> 
     </caption> 
  <tr align="center" valign="bottom"> 
    <td> 
    <p><&#63;php echo $d[0]&#63;></p> 
    <div id="div1"></div> 
    </td> 
    <td> 
    <p><&#63;php echo $d3[0]&#63;></p> 
    <div style="height:<&#63;php $str=floor(($d3[0]/$d[0])*200); echo $str.'px'&#63;>"></div> 
    </td> 
    <td> 
    <p><&#63;php echo $d4[0]&#63;></p> 
    <div style="height:<&#63;php $str=floor(($d4[0]/$d[0])*200); echo $str.'px'&#63;>"></div> 
    </td> 
    <td> 
    <p><&#63;php echo $d2[0]&#63;></p> 
    <div style="height:<&#63;php $str=floor(($d2[0]/$d[0])*200); echo $str.'px'&#63;>"></div> 
    </td> 
  </tr>
  <tr align="center" valign="top"> 
    <td><p>总计</p></td> 
    <td><p>一审通过</p></td> 
    <td><p>二审通过</p></td> 
    <td><p>审核通过</p></td> 
  </tr> 
  </table> 
  <h3 align="center">近一个月每个人的情况</h3> 
  <table border="0" width="100%"> 
  <caption>每个人的完成情况如下表:</caption>
  <!-- 因为总的列数比较长,如果显示在一个表格中,数据会很拥挤,多的话根本就看不清楚。 
     所以需要将数据进行分割,根据长度进行动态的分割,显示在多张表中。 
   --> 
    <&#63;php 
    $arr = array_chunk($row,2,false);//2表示分割的单位长度,false表示索引从0开始 
    foreach($arr as $newRow){ 
      $thStr = "<th style='background-color:#669900' width='110px' height='30px'>产品开发编号</th>"; 
      $trStr_total_score = "<tr align='center' style='background-color:silver' height='25px'><td>总分</td>"; 
      $trStr_total_number = "<tr align='center' style='background-color:silver' height='25px'><td>总数量</td>"; 
      $trStr_average_score = "<tr align='center' style='background-color:silver' height='25px'><td>平均分</td>"; 
      $resultStr = ""; 
      foreach ($newRow as $key => $value) { 
      // echo $key."=>".$value."<br/>"; 
      $x = 0; 
      foreach ($value as $key2 => $value2) { 
        // echo $key2 . "=>" . $value2 . "<br/>"; 
        if ($key2 == 'd_m') { 
        $thStr .= "<th style='background-color:#669900'>" . $value2 . "</th>"; // 表头 
        } elseif ($key2 == 'total_score') { 
        $value2 = sprintf("%.2f", $value2); //保留2位小数 
        $trStr_total_score .= "<td>" . $value2 . "</td>"; 
        $x += $value2; 
        } elseif ($key2 == 'total_number') { 
 
        $trStr_total_number .= "<td>" . $value2 . "</td>"; 
        $x /= $value2; 
        } 
      } 
      $x = sprintf("%.2f",$x); 
      $trStr_average_score .= "<td>" . $x . "</td>"; 
      } 
      echo "<table border='0' width='100%'>"; 
      echo $thStr; 
      echo $trStr_total_number . "</tr>"; 
      echo $trStr_total_score . "</tr>"; 
      echo $trStr_average_score . "</tr>"; 
      echo "</table>"; 
      echo "<p height='150px'></p>"; 
    } 
    &#63;> 
  </table> 
</body> 
</html>
로그인 후 복사

데이터베이스를 만들지 않는 것이 편리합니다. 실제로 쿼리 테이블 이름과 필드 이름을 기반으로 테스트 데이터 테이블을 구축하는 것은 매우 쉽습니다. 핵심은 아이디어입니다. 어떻게 변하더라도 아이디어가 핵심입니다.

코드의 효과를 더욱 편리하게 이해하기 위해 스크린샷을 찍어보세요

이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿