


PHP implements an improved version of dynamic histogram, an improved version of php histogram_PHP tutorial
PHP implements an improved version of dynamic histogram, php improved version of histogram
This article analyzes an example of PHP implementing an improved version of dynamic histogram. Share it with everyone for your reference. The specific analysis is as follows:
I have already written about the situation where only dynamic histograms are made. In fact, the principle is still very simple. Because there were new demands yesterday afternoon, I made some modifications this morning and divided the data according to different numbers and displayed it in the table.
Paste the code below so that you can check it later. The idea is just a temporary spark. I came up with it today. I may not be able to think of it next time, and I don’t have to think hard, so writing it down is a better form. .
<!DOCTYPE html> <?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); } ?> <?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); ?> <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 id="近一个月总的情况">近一个月总的情况</h3> <table border="0" align="center" id="table1"> <caption> <?php echo "时间:".$beginDate."至".$endDate?> </caption> <tr align="center" valign="bottom"> <td> <p><?php echo $d[0]?></p> <div id="div1"></div> </td> <td> <p><?php echo $d3[0]?></p> <div style="height:<?php $str=floor(($d3[0]/$d[0])*200); echo $str.'px'?>"></div> </td> <td> <p><?php echo $d4[0]?></p> <div style="height:<?php $str=floor(($d4[0]/$d[0])*200); echo $str.'px'?>"></div> </td> <td> <p><?php echo $d2[0]?></p> <div style="height:<?php $str=floor(($d2[0]/$d[0])*200); echo $str.'px'?>"></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 id="近一个月每个人的情况">近一个月每个人的情况</h3> <table border="0" width="100%"> <caption>每个人的完成情况如下表:</caption> <!-- 因为总的列数比较长,如果显示在一个表格中,数据会很拥挤,多的话根本就看不清楚。 所以需要将数据进行分割,根据长度进行动态的分割,显示在多张表中。 --> <?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>"; } ?> </table> </body> </html>
It is convenient not to create a database. In fact, it is very easy to build a test data table based on the query table name and field name. The key is the idea. No matter how it changes, the idea is the key.
In order to understand the effect of the code more conveniently, take a screenshot
I hope this article will be helpful to everyone’s PHP programming design.

ThesecrettokeepingaPHP-poweredwebsiterunningsmoothlyunderheavyloadinvolvesseveralkeystrategies:1)ImplementopcodecachingwithOPcachetoreducescriptexecutiontime,2)UsedatabasequerycachingwithRedistolessendatabaseload,3)LeverageCDNslikeCloudflareforservin

You should care about DependencyInjection(DI) because it makes your code clearer and easier to maintain. 1) DI makes it more modular by decoupling classes, 2) improves the convenience of testing and code flexibility, 3) Use DI containers to manage complex dependencies, but pay attention to performance impact and circular dependencies, 4) The best practice is to rely on abstract interfaces to achieve loose coupling.

Yes,optimizingaPHPapplicationispossibleandessential.1)ImplementcachingusingAPCutoreducedatabaseload.2)Optimizedatabaseswithindexing,efficientqueries,andconnectionpooling.3)Enhancecodewithbuilt-infunctions,avoidingglobalvariables,andusingopcodecaching

ThekeystrategiestosignificantlyboostPHPapplicationperformanceare:1)UseopcodecachinglikeOPcachetoreduceexecutiontime,2)Optimizedatabaseinteractionswithpreparedstatementsandproperindexing,3)ConfigurewebserverslikeNginxwithPHP-FPMforbetterperformance,4)

APHPDependencyInjectionContainerisatoolthatmanagesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itactsasacentralhubforcreatingandinjectingdependencies,thusreducingtightcouplingandeasingunittesting.

Select DependencyInjection (DI) for large applications, ServiceLocator is suitable for small projects or prototypes. 1) DI improves the testability and modularity of the code through constructor injection. 2) ServiceLocator obtains services through center registration, which is convenient but may lead to an increase in code coupling.

PHPapplicationscanbeoptimizedforspeedandefficiencyby:1)enablingopcacheinphp.ini,2)usingpreparedstatementswithPDOfordatabasequeries,3)replacingloopswitharray_filterandarray_mapfordataprocessing,4)configuringNginxasareverseproxy,5)implementingcachingwi

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

SublimeText3 Chinese version
Chinese version, very easy to use

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

Atom editor mac version download
The most popular open source editor
