1. 程式人生 > >PHP分享查詢統計功能實現

PHP分享查詢統計功能實現

<?php 
require('config.inc.php');
date_default_timezone_set("Asia/Shanghai");
header("Content-type: text/html; charset=utf-8"); 

$str_from = $_POST["from"].' 00:00:00';
$str_to = $_POST["to"].' 00:00:00';
$from_time = strtotime($str_from);
$to_time = strtotime($str_to);
if ($from_time >= $to_time){
	echo
'起始時間必須小於截止時間'; return; } $conn = mysqli_connect($_CFG['mysql_host'], $_CFG['mysql_user'], $_CFG['mysql_pwd'], $_CFG['mysql_db']); if (mysqli_connect_errno($conn)) { echo "mysql連線失敗!".mysqli_connect_error(); return; } $KEY_startGame = "\"startGame\""; //啟動遊戲 $KEY_share = "\"share\""; //分享遊戲 $KEY_video
= "\"reliveVideo\""; //視訊觀看 $Pi_2 = 2; echo '<p>開始查詢, 操作時間 '.date("Y-m-d H:i:s",time()).'</p>'; $strsql = "SELECT COUNT(1) FROM (SELECT COUNT(1) AS AU FROM `knocking_statis` WHERE `time` >= $from_time AND `time` < $to_time AND `key` = $KEY_startGame GROUP BY `role_id`) TAU"; //var_dump($strsql);
// 活躍值查詢 $result = mysqli_query($conn, "SELECT COUNT(1) FROM (SELECT COUNT(1) AS AU FROM `knocking_statis` WHERE `time` >= $from_time AND `time` < $to_time AND `key` = $KEY_startGame GROUP BY `role_id`) TAU"); $row=mysqli_fetch_row($result); $AU = $row[0]; // 總啟動次數 $result = mysqli_query($conn, "SELECT SUM(AU) FROM (SELECT COUNT(1) AS AU FROM `knocking_statis` WHERE `time` >= $from_time AND `time` < $to_time AND `key` = $KEY_startGame GROUP BY `role_id`) TAU"); $row=mysqli_fetch_row($result); $startCount = $row[0]; // 總分享次數 $result = mysqli_query($conn, "SELECT SUM(AU) FROM (SELECT COUNT(1) AS AU FROM `knocking_statis` WHERE `time` >= $from_time AND `time` < $to_time AND `pi` = $Pi_2 AND `key` = $KEY_share GROUP BY `role_id`) TAU"); $row=mysqli_fetch_row($result); $shareCount = $row[0]; // 總分享人數 $result = mysqli_query($conn, "SELECT COUNT(1) FROM (SELECT COUNT(1) AS AU FROM `knocking_statis` WHERE `time` >= $from_time AND `time` < $to_time AND `pi` = $Pi_2 AND `key` = $KEY_share GROUP BY `role_id`) TAU"); $row=mysqli_fetch_row($result); $sharePlayer = $row[0]; // 完成視訊觀看次數 $result = mysqli_query($conn, "SELECT SUM(AU) FROM (SELECT COUNT(1) AS AU FROM `knocking_statis` WHERE `time` >= $from_time AND `time` < $to_time AND `pi` = $Pi_2 AND `key` = $KEY_video GROUP BY `role_id`) TAU"); $row=mysqli_fetch_row($result); $videoCount = $row[0]; echo '基礎統計<br>'; echo '<table border="1" cellpadding="0" cellspacing="0">'; echo '<tr>'; echo '<th>活躍值</th>'; echo '<td align="center">'; echo $AU; echo '</td>'; echo '</tr>'; echo '<tr>'; echo '<th>啟動次數</th>'; echo '<td align="center">'; echo $startCount; echo '</td>'; echo '</tr>'; echo '<tr>'; echo '<th>完成分享次數</th>'; echo '<td align="center">'; echo $shareCount; echo '</td>'; echo '</tr>'; echo '<tr>'; echo '<th>完成分享人數</th>'; echo '<td align="center">'; echo $sharePlayer; echo '</td>'; echo '</tr>'; echo '<tr>'; echo '<th>視訊觀看次數</th>'; echo '<td align="center">'; echo $videoCount; echo '</td>'; echo '</tr>'; echo '</table>'; echo '<p>查詢完成, 操作時間 '.date("Y-m-d H:i:s",time()).'</p>'; //============================== echo '<br>分享彙總<br>'; // ==================================================== // 分享彙總 $statelist = array(); $result = mysqli_query($conn, "SELECT `pi` FROM `knocking_statis` WHERE `key` = $KEY_share GROUP BY `pi`"); if (mysqli_num_rows($result) > 0) { while ($row=mysqli_fetch_row($result)) { array_push($statelist, $row); } } $shareResult = array(); for ($i = 0; $i<sizeof($statelist); ++$i) { $spi = $statelist[$i][0]; $pi = (int)$spi; //var_dump($pi); $strsql = "SELECT ps as tps, (SELECT COUNT(1) FROM `knocking_statis` WHERE `time` >= $from_time AND `time` < $to_time AND ps = tps AND `key` = $KEY_share AND `pi` = $pi) AS Number from `knocking_statis` WHERE `time` >= $from_time AND `time` < $to_time AND `key` = $KEY_share AND `pi` = $pi GROUP BY ps ORDER BY Number DESC"; //var_dump($strsql); $result = mysqli_query($conn, $strsql); if (mysqli_num_rows($result) > 0) { while ($row=mysqli_fetch_row($result)) { $rowkey = $row[0]; if (array_key_exists($rowkey, $shareResult) == false) { $shareResult[$rowkey] = array('s0'=>0,'s1'=>0,'s2'=>0); //var_dump($shareResult); //echo "add item to shareResult"; } $shareResult[$rowkey]['s'.$spi] = $row[1]; } } } //var_dump($shareResult); if (empty($shareResult) == false) { echo '<table border="1" cellpadding="0" cellspacing="0">'; echo '<tr>'; echo '<th></th>'; echo '<th>分享點</th>'; //echo '<th>Number</th>'; echo '<th>S0</th>'; echo '<th>S1</th>'; echo '<th>完成分享(S2)</th>'; echo '<th>完成佔比</th>'; echo '</tr>'; $index = 1; foreach($shareResult as $key => $value) { echo '<tr>'; echo '<td align="center">'; echo $index++; echo '</td>'; echo '<td bgcolor="#FFFFFF" align="center">'; if ($key == '') { echo '無'; } else { echo $key; } echo '</td>'; foreach($value as $ikey => $ivalue) { echo '<td bgcolor="#FFFFFF" align="center">'; echo $ivalue; echo '</td>'; } echo '<td bgcolor="#FFFFFF" align="center">'; $percentage = $shareCount == 0 ? 0 : $value['s2']/$shareCount; echo sprintf("%.2f%%",$percentage * 100); echo '</td>'; echo '</tr>'; } echo '</table>'; echo '總計分享 '.$shareCount; echo '<p>查詢完成, 操作時間 '.date("Y-m-d H:i:s",time()).'</p>'; } else { echo '分享彙總記錄為空!'; } /*$strsql = "SELECT ps as tps, (SELECT COUNT(1) FROM `knocking_statis` WHERE `time` >= $from_time AND `time` < $to_time AND ps = tps AND `key` = $KEY_share AND `pi` = $Pi_2) AS Number from `knocking_statis` WHERE `time` >= $from_time AND `time` < $to_time AND `key` = $KEY_share AND `pi` = $Pi_2 GROUP BY ps ORDER BY Number DESC"; $result = mysqli_query($conn, $strsql); if (mysqli_num_rows($result) > 0) { echo '<table border="1" cellpadding="0" cellspacing="0">'; echo '<tr>'; echo '<th>Order</th>'; echo '<th>From</th>'; echo '<th>Number</th>'; echo '<th>Percent</th>'; echo '</tr>'; $index = 1; while ($row=mysqli_fetch_row($result)) { echo '<tr>'; echo '<td align="center">'; echo $index++; echo '</td>'; echo '<td bgcolor="#FFFFFF" align="center">'; if ($row[0] == '') { echo '無'; } else { echo $row[0]; } echo '</td>'; echo '<td bgcolor="#FFFFFF" align="center">'; echo $row[1]; echo '</td>'; echo '<td bgcolor="#FFFFFF" align="center">'; $percentage = $shareCount == 0 ? 0 : $row[1]/$shareCount; echo sprintf("%.2f%%",$percentage * 100); echo '</td>'; echo '</tr>'; } echo '</table>'; echo '總計分享 '.$shareCount; echo '<p>查詢完成, 操作時間 '.date("Y-m-d H:i:s",time()).'</p>'; } else { echo '分享彙總記錄為空!'; }*/ // ==================================================== // 視訊彙總 // //============================== echo '<br>視訊彙總<br>'; $statelist = array(); $result = mysqli_query($conn, "SELECT `pi` FROM `knocking_statis` WHERE `key` = $KEY_video GROUP BY `pi`"); if (mysqli_num_rows($result) > 0) { while ($row=mysqli_fetch_row($result)) { array_push($statelist, $row); } } $shareResult = array(); for ($i = 0; $i<sizeof($statelist); ++$i) { $spi = $statelist[$i][0]; $pi = (int)$spi; //var_dump($pi); $strsql = "SELECT ps as tps, (SELECT COUNT(1) FROM `knocking_statis` WHERE `time` >= $from_time AND `time` < $to_time AND ps = tps AND `key` = $KEY_video AND `pi` = $pi) AS Number from `knocking_statis` WHERE `time` >= $from_time AND `time` < $to_time AND `key` = $KEY_video AND `pi` = $pi GROUP BY ps ORDER BY Number DESC"; //var_dump($strsql); $result = mysqli_query($conn, $strsql); if (mysqli_num_rows($result) > 0) { while ($row=mysqli_fetch_row($result)) { $rowkey = $row[0]; if (array_key_exists($rowkey, $shareResult) == false) { $shareResult[$rowkey] = array('s0'=>0,'s1'=>0,'s2'=>0); //var_dump($shareResult); //echo "add item to shareResult"; } $shareResult[$rowkey]['s'.$spi] = $row[1]; } } } //var_dump($shareResult); if (empty($shareResult) == false) { echo '<table border="1" cellpadding="0" cellspacing="0">'; echo '<tr>'; echo '<th></th>'; echo '<th>觀看點</th>'; //echo '<th>Number</th>'; echo '<th>S0</th>'; echo '<th>S1</th>'; echo '<th>完成觀看(S2)</th>'; echo '<th>完成佔比</th>'; echo '</tr>'; $index = 1; foreach($shareResult as $key => $value) { echo '<tr>'; echo '<td align="center">'; echo $index++; echo '</td>'; echo '<td bgcolor="#FFFFFF" align="center">'; if ($key == '') { echo '無'; } else { echo $key; } echo '</td>'; foreach($value as $ikey => $ivalue) { echo '<td bgcolor="#FFFFFF" align="center">'; echo $ivalue; echo '</td>'; } echo '<td bgcolor="#FFFFFF" align="center">'; if ($videoCount > 0) { $percentage = $shareCount == 0 ? 0 : $value['s2']/$videoCount; } else { $percentage = $shareCount == 0; } echo sprintf("%.2f%%",$percentage * 100); echo '</td>'; echo '</tr>'; } echo '</table>'; echo '總計完成觀看 '.$videoCount; echo '<p>查詢完成, 操作時間 '.date("Y-m-d H:i:s",time()).'</p>'; } else { echo '視訊彙總記錄為空!'; } mysqli_free_result($result); mysqli_close($conn);
<?php

$_CFG = array();

$_CFG['mysql_host'] = '127.0.0.1';
$_CFG['mysql_user'] = 'root';
$_CFG['mysql_pwd'] = '123456';
$_CFG['mysql_db'] = 'xxxx';

<!DOCTYPE html>
<html lang="zh-CN">
	<head>		
    	<meta http-equiv="X-UA-Compatible" content="IE=edge">
    	<meta name="viewport" content="width=device-width, initial-scale=1">
    	<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
    	<!--<script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js"></script>
		<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>-->
		<title>分享查詢</title>		
	</head>
	<body>
	 	<div class="container">
			  <div class="jumbotron">
			    <h2>分享查詢</h2>
			    <p>時間跨度越大耗時越久,提交之後請耐心等待...</p>
			    <form name="query_newbie" action="knock-query.php" method
            
           

相關推薦

PHP分享查詢統計功能實現

<?php require('config.inc.php'); date_default_timezone_set("Asia/Shanghai"); header("Content-type: text/html; charset=utf-8"); $str_from = $

php實現一個簡單的新增查詢統計功能

<?php require('config.inc.php'); date_default_timezone_set("Asia/Shanghai"); header("Content-type: text/html; charset=utf-8"); $str_from = $

PHP圖片上傳功能實現

php file 圖片上傳 上傳圖片功能:獲取當前文件夾位置,上傳到當前文件夾下為了上傳後文件名重復導致覆蓋,上傳後更改名字為:當前時間+原文件名只允許gif、jpeg、bmg、jpg格式的文件上傳<form name="frm1" enctype="multipart/form-data"

G. PHP發送郵件功能實現(使用163郵箱)

wid ucc 認證 bubuko min change hit function chan 第一步我用的是163郵箱發送郵件,做一個嘗試,在嘗試之前,需要要開啟163郵箱的授權碼如圖所示,請記住您的授權碼,將在之後的步驟中用到第二步需要下載一個類PHPMailer,我有這

PHP與視訊外掛功能實現

php與視訊播放器外掛的功能,說白了就是前端是播放器的外掛,直接呼叫後端傳遞過來的播放地址,還有其他的一些資訊,比如封面圖面,名稱,播放時間,地址等等。這些需要在後臺把這些封裝起來,可以儲存在資料庫裡,方便呼叫。以上就是思路。想起來是不是很簡單。做起來也差不多咯。 首先,前端

ABAP 報表求和統計功能實現方法

在寫abap 的過程中,可能需要統計,求和等 那麼如何實現呢? 其實在loop ... endloop 中間,有個AT ,<…>,ENDAT迴圈. 其中的包括: FRIST, LAST, NEW , END OF.這些可以用來進行內表中按某個欄位進行分組統計

Android開發分享功能實現步驟

集成 sha har sse 分享 功能 秘鑰 步驟 過去 參考mob官網(http://www.mob.com/) 分享實現步驟:1.mob官網賬號註冊登錄2.進入後臺,進入ShareSDK,添加應用,生成秘鑰3.參照mob官網集成文檔,下載SDK,進入ShareSDK

php網絡爬蟲,實現采集功能

col clas shtml read 起點 相關 www. 輸出 爬蟲 php實現實時獲取當天天氣小工具 //獲取天氣預報網站的網頁內容 $html = file_get_contents("http://www.weather.com.cn/weather1d/101

PHP + Redis 訂閱/發布 實現即時通訊功能

PHP Redis 訂閱/發布 即時通訊 最近比較忙,沒時間更新博客,先暫時記下,待後續補充 Redis Sub/Pub 訂閱/發布 待編輯 PHP + Redis 訂閱/發布 實現即時通訊 待編輯 PHP + Redis 訂閱/發布 實現即時通訊功能

首次跟前端搭配開發——活動頁面分享功能實現

tar action web 管理系 調試 target 圖片 技術分享 new 以前搞管理系統麻木了 在個互聯網公司一開始不是很適應 也一周了,短短一周,學到了好些東西 今讓我加一個活動分享的功能 師傅今讓我添加個‘簡單‘的功能 說是實現以下一個頁面分享的功能,就是給

iOS截屏並修改截圖然後分享功能實現

interact nslog getheight enable esc EDA sid nsf style 一. 實現的效果類似微博的截圖分享 不僅截圖分享的時候還進行圖片的修改,增加自己的二維碼 二.實現方式 蘋果在ios7之後提供了一個新的通知類型:UIApplic

微信小遊戲轉發、分享功能實現

用戶登錄 ont 平臺 close shadow eat 執行函數 .so message 本文將介紹開發微信小遊戲四種常用功能的實現方法,這四種功能分別是: **獲取頭像功能 微信轉發功能 微信分享功能 遊戲圈** 在Egret Wing和微信開發者工具裏的配置為實現以上

移動端以及 PC瀏覽器頁面分享到朋友圈等的功能實現

微信 out 關聯 有一個 培養 text .net 都沒有 統一 我們經常可以在一些 app上看到分享到朋友圈、微信好友、qq好友等功能,例如 餓了麽、美團等 app,下單之後就會彈出給好友發紅包的 modal窗,這在 app上很常見,app的權限可以很大,甚至連啟動手機

Egret微信小遊戲轉發、分享功能實現

http://bbs.egret.com/thread-50904-1-1.html 這是官方教程的實現。 1. 需要在Platform.ts裡呼叫platform.js介面。 2. 在Main.ts通過Platform.ts呼叫執行函式 。 3. 在 platform.js寫相對應的邏

網站統計功能的設計與實現

本文簡要介紹網站統計功能的設計與實現。 本文分為以下五個部分: 埋點設計與實現 頁面引入 資料接收 資料入庫 統計分析   一、埋點設計與實現 在JavaScript中,包含了很多物件,可以用於獲取使用者的資料。比如Document

【原始碼分享】簡訊如何實現ECmall_V2.3驗證碼功能

對接簡訊的時候發現一家簡訊公司,有些不錯的簡訊驗證碼的外掛,對接起來挺方便的,有需求的可以看一下。http://www.ihuyi.com/ 外掛說明本外掛系互億無線針對ECmall_V2.3簡訊外掛開發,外掛內的所有檔案均為對原檔案的修改,如果你的系統經過二次開發,安裝本外掛之前,請仔細核對修改。 功能

PHP 使用魔法函式 __call 實現類似過載的功能

這幾天為了面試複習了php的魔法函式看到 __call使我有了一個想法也許能夠用使用這個函式實現方法過載 public function __call($name, $arguments) 這是_call的函式頭,有被呼叫的函式名稱跟引數,我的想法是根據名稱然後匹配引數型別來實現過載

php微信網頁開發實現自動登入註冊功能例項

功能:自動登入註冊功能 描述:php實現微信網頁自動登入註冊功能 範圍:適用於所有php版本 thinkphp5.0例項 $token = cookie('token'); if($token){ //這裡寫登入後的邏輯 }else{ $

Spring Cloud 指定包、類、方法名實現AOP切片登陸記錄統計功能

1. 所需 jar 包: <!--tools--> <properties> <commons.collections4.version>4.1</commons.collections4.version> <commons

報表統計——java實現查詢某年某月每天資料,沒資料補0

一般圖表繪製例如echarts等,返回資料格式都大同小異。重點是利用sql或者java實現資料格式的轉型,接下來是關鍵部分: 1.前提1:提供的工具方法——獲取某月有多少天 //通過年份和月份確定該月的最後一天 public static int getMaxDay(int year,in