我需要的是获取问题ID并按小时跟踪用户提交的upvotes。当我尝试从数组中一致地获取数据以用于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);
答案 0 :(得分:1)
您的代码使用一些额外信息创建数组。而不是制作一个数组:
小时数
ID#
小时
票
你会做出一个导致:
ID#
[小时] - &gt;票
这次,ID#将成为关键,您的小时将是X值,您的投票将是Y值(参考基本的X-Y轴图表)。您的数组将更改为:
$hourlyUpvotesTodayResult[$issue_entry_id_today] = array($hour => $hourlyUpvotesTodayRow);
您必须将for语句完全放在上面的foreach语句中。然后,您可以按照您需要的问题编号打印每一个。
不确定PHPExcel但你可以通过基本上相同的foreach {for {}} group-loop来发布这个,这次没有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或任何你想要的东西。
希望这有帮助。