我需要的是获取问题 ID 并按小时跟踪用户提交的赞成票。当我尝试从数组中连贯地获取数据以用于 PHPExcel 图表时,我遇到了困难。
我最终得到这个 $hourlyUpvotesTodayResult[] 数组,它每小时都有正确的票数(通过 print_r 验证),但我想以这样的方式对它们进行分组,我可以执行类似“对于每个问题 id 显示”的操作0-24小时以及每个小时的总票数”。也许我想太多了,错过了一些简单的事情。
另外,请忽略古老的 MySQL - 我正在处理一些现有代码,我知道它已被弃用,有一天我会抽出时间来更新它:D
while ($todayInfoRow = mysql_fetch_array($todayInfoQuery))
{
$issue_entry_id_today = array($todayInfoRow['issue_entry_id']);
foreach ($issue_entry_id_today as $issue_entry_id_today)
{
$todayInfoUpvotes = "SELECT id from $db.$tb2 WHERE date = '".$date."' and issue_entry_id = '".$issue_entry_id_today."' ORDER BY issue_entry_id DESC";
$todayInfoUpvotesQuery = mysql_query($todayInfoUpvotes)or die(mysql_error());
$todayInfoUpvotesRow = mysql_num_rows($todayInfoUpvotesQuery);
$todayInfoResult = array($issue_entry_id_today, $todayInfoUpvotesRow);
}
// get votes for individual hours for today
for ($hour_today=0; $hour_today<25; $hour_today++)
{
$hourlyUpvotesToday = "SELECT id from $db.$tb2 WHERE date = '".mysql_real_escape_string($date)."' AND issue_entry_id = '".$issue_entry_id_today."' AND hour = '".$hour_today."' ORDER BY issue_entry_id DESC";
$hourlyUpvotesTodayQuery = mysql_query($hourlyUpvotesToday)or die(mysql_error());
$hourlyUpvotesTodayRow = mysql_num_rows($hourlyUpvotesTodayQuery);
$hourlyUpvotesTodayResult[] = array('id'=>$issue_entry_id_today, 'upvotes'=>$hourlyUpvotesTodayRow, 'hour'=>$hour);
}
}
//debug print array
print_r($hourlyUpvotesTodayResult);
您的代码创建带有一些额外信息的数组。 而不是制作一个数组:
小时数
身份证号码
小时
投票
您将做出一个结果:
身份证号码
[小时] -> 投票
这次,ID # 将成为关键,您的小时数将是 X 值,您的投票数将是 Y 值(参考基本的 X-Y 轴图表)。 您的数组将更改为:
$hourlyUpvotesTodayResult[$issue_entry_id_today] = array($hour => $hourlyUpvotesTodayRow);
您必须将 for 语句完全放在上面的 foreach 语句中。 然后您可以根据需要按期号打印每一份。
不确定 PHPExcel,但您可以通过执行基本相同的 foreach { for {} } 组循环来发布此内容,只是这次没有 SQL 调用,因为它已经在数组中了。
在 for() 循环之外,您可以添加如下内容:
print "ID number for this issue: " . $issue_entry_id_today . "<br>";
在那个循环中你会有:
print "Hour " . $hour . " produced " . $hourlyUpvotesTodayResult[$issue_entry_id_today][$hour] . " votes.";
您可以将其放入表格或 div 或任何您想要的东西中。
希望这有帮助。