我正在记录我社区中游戏玩家的统计数据.对于他们在线和游戏中的状态,我在他们"开始"和"结束"时注册.为了显示当天最活跃的日期和小时,我想使用一个SQL语句,根据"开始"和"结束"日期时间值来衡量最活跃的时刻.
查看SQL - 从db中选择大多数"活动"时间我可以看到相似之处,但我还需要包括开始和结束时间之间的时刻.
也许最简单的方法是编写一个执行计算的cron,但我希望这个问题可能会教我如何在SQL中解决这个问题.
我一直在搜索一个SQL语句,它允许创建一个日期时间段并使用它来减去单个小时和几天.但无济于事.
---更新
我正在考虑更多这方面,我想知道根据一天中的每个小时(最活跃的小时)运行24个查询以及最活跃的一天的几个查询是否明智.但这似乎是对性能的浪费.但是这个解决方案可能会使查询成为可能:
SELECT COUNT(`userID`), DATE_FORMAT("%H",started) AS starthour,
DATE_FORMAT("%H",ended) AS endhour
FROM gameactivity
WHERE starthour >= $hour
AND endhour <= $hour GROUP BY `userID`
Run Code Online (Sandbox Code Playgroud)
(为了示例的目的,添加了$小时,当然我正在使用PDO.列也仅用于示例目的,无论您认为哪些都很容易用于解释,可以识别为开始和结束对我来说是好的)
附加信息; PHP 5.5 +,PDO,MySQL 5+ ingame的表格布局将是:gameactivity:activityid,userid,gameid,started,ended
DDL:
CREATE TABLE IF NOT EXISTS `steamonlineactivity` (
`activityID` int(13) NOT NULL AUTO_INCREMENT,
`userID` varchar(255) NOT NULL,
`online` datetime DEFAULT NULL,
`offline` datetime DEFAULT NULL,
PRIMARY KEY (`activityID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
Run Code Online (Sandbox Code Playgroud) 在为Laravel 5构建多租户包时,我必须找到如何从代码中动态添加中间件.与SO上的这个问题相比,我不想触及Http/Kernel定义.
在应用程序初始化期间,我检查数据库中是否已知所请求的主机名,以及该主机名是否需要重定向到主主机名或ssl.
因为您不想触摸Http/Kernel
包,所以我们需要使用服务提供商.
要求:
使用mysql_error()函数没有显示错误.msqli_query()工作正常但是当我在它旁边添加mysql_error时,即使您的查询无效且连接错误,我也不会在网页中收到任何内容.
example. mysqli_query($link, $query) or die(mysql_error()); <--- Nothing comes up
Run Code Online (Sandbox Code Playgroud)
链接脚本:
<?php
#SET DATABASE CREDENTIALS
$mysql_host = 'localhost';
$mysql_username = 'root';
$mysql_password = 'root';
$mysql_db = 'attendance';
$mysql_error = 'Error: connection';
//TEST CONNECTION
$link = mysqli_connect( $mysql_host, $mysql_username, $mysql_password, $mysql_db) or die($mysql_error);
if(mysqli_connect_errno())
{
printf("Connection Failed: %s\n", mysqli_connect_error());
exit();
}
?>
Run Code Online (Sandbox Code Playgroud)
查询脚本:
<?php
require('conn.php'); <--- **No Problem**
$query = "SELsECT * FROM `$TBL` WHERE `textFromDate` >= '".mysql_real_escape_string($date1)."' AND `textToDate` <= '".mysql_real_escape_string($date2)."' AND `Scheme`='Paid'";
$resultwholeday = mysqli_query($link, $wholeday) or die(mysql_error()); <--- …
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个10x10图像的网格.这些是从javascript(对象)加载并使用onload方法将其添加到画布.添加工作,但画布图像似乎调整大小.currentSizes.cellSize的结果是80.然而,即使drawImage参数的宽度和高度值为80,所以添加的图像似乎大于80定义的图像.
我的目标是将画布游戏构建为jQuery插件.我想显示一个带有岛屿的javascript动态创建的网格(就像网络浏览器征服类型的游戏一样).所以我想创建一个100%宽度(和高度)的画布,其中javascript动态测量每个单元格(10x10)的大小.
所以我有以下内容:
for( var i = 0 ; i < totalTiles ; i++ ) {
// go to first column in next row
if( x >= 10 ) {
x = x - 10;
y = y + 1;
}
// build the world
tiles[i] = new Image();
tiles[i].x = x;
tiles[i].y = y;
tiles[i].towidth = currentSizes.cellSize;
tiles[i].toheight = currentSizes.cellSize;
tiles[i].coordx = ( x * currentSizes.cellSize );
tiles[i].coordy = ( y * currentSizes.cellSize );
//tiles[i].onload = function() { canvas2d.drawImage( …
Run Code Online (Sandbox Code Playgroud)