临时表和foreach

时间:2012-06-25 13:40:18

标签: php mysql

$date['"01.06.2012"'] = '2012-06-01'; 
$date['"01.05.2012"'] = '2012-05-01'; 
$date['"01.04.2012"'] = '2012-04-01';
$date['"01.03.2012"'] = '2012-03-01';
$date['"01.02.2012"'] = '2012-02-01';
$date['"01.01.2012"'] = '2012-01-01';     

foreach($date as $month => $actual_date)
{  /* start foreach loop */
$query = "select Player, SUM(points) AS score from rankings WHERE
`drop_date` > '$actual_date' 
AND `drop_date` <= DATE_ADD('$actual_date',  INTERVAL 1 YEAR) 
GROUP BY Player
ORDER BY SUM(sa_points) LIMIT 0,5";
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)){
echo $row['player'];
echo $row['score']; }

} /* end foreach loop */

现在我只想在这个结果表中添加另一个查询,我已经尝试了create temporary table但是根据foreach循环不知道在哪里放置它并且不断得到解析错误或最后$actual_date个结果。

1 个答案:

答案 0 :(得分:2)

这是你想要达到的目标吗?

$date['"01.06.2012"'] = '2012-06-01'; 
$date['"01.05.2012"'] = '2012-05-01'; 
$date['"01.04.2012"'] = '2012-04-01';
$date['"01.03.2012"'] = '2012-03-01';
$date['"01.02.2012"'] = '2012-02-01';
$date['"01.01.2012"'] = '2012-01-01';     

mysql_query('CREATE TEMPORARY TABLE results (player varchar(100), score int)');

foreach($date as $month => $actual_date)
{  /* start foreach loop */

    $query = "insert into results (player, score) 
    select Player, SUM(points) AS score from rankings WHERE
    `drop_date` > '$actual_date' 
    AND `drop_date` <= DATE_ADD('$actual_date',  INTERVAL 1 YEAR) 
    GROUP BY Player
    ORDER BY SUM(sa_points) LIMIT 0,5";
    mysql_query($query) or die(mysql_error());
} /* end foreach loop */

$result = mysql_query('select * from results') or die(mysql_error());
while($row = mysql_fetch_array($result)){
    echo $row['player'];
    echo $row['score']; 
}