【发布时间】:2011-08-30 13:15:48
【问题描述】:
问题来了... 我有一个看起来像这样从我的数据库中选择东西的循环。
$query = "SELECT * FROM table WHERE publish <= CURDATE() AND active = 'Yes' AND (YEAR(begin) = YEAR(CURDATE()) OR YEAR(begin) = YEAR(CURDATE()) + 1) ORDER BY begin ASC";
$resultSet = mysql_query($query);
if (mysql_num_rows($resultSet))
{
$newsArray = array();
while ($newsResult = mysql_fetch_array($resultSet))
{
$newDate = $newsResult['begin'] ;
$timePeriod = date('F Y ',strtotime($newDate));
$timePeriodY = date('Y',strtotime($timePeriod));
$timePeriodM = date('F',strtotime($timePeriod));
if (!isset($newsArray[$timePeriod]))
{
$newsArray[$timePeriod] = array();
}
$newsArray[$timePeriod][] = $newsResult;
}
foreach ($newsArray as $timePeriod => $newsItems)
{
$timePeriodY = date('Y',strtotime($timePeriod));
if ($timePeriodY == $thisYear){
}
else if ($timePeriodY == $nextYear){
}
echo '<h2 class="year>'.$timePeriodY.'</h2>';
echo '<ul class="column">';
foreach ($newsArray as $timePeriod => $newsItems)
{
$timePeriodMonth = date('Y',strtotime($timePeriod));
if ($timePeriodY == $timePeriodMonth) {
$moSe = strftime('%B',strtotime($timePeriod));
$MonthSe = ucfirst($moSe);
$seMonth = str_replace($dateSearch,$dateReplace,date('F',strtotime($timePeriod)));
echo $seMonth;
foreach ($newsItems as $item)
{
$ad_event = date("Y-m-d",strtotime($item['event_end']));
$today = date("Y-m-d");
$dayMod = strftime('%e',strtotime($item['event_begin']));
$seDay = str_replace($dateSearch,$dateReplace,date('D',strtotime($item['event_begin'])));
echo '<a href="javascript:gotoDotBottom('.$item['event_id'].',\''.$item['event_url'].'\');" id="e'.$item['event_id'].'" class="eventLink '.$markedEvent.'" overhead="'.$item['event_title'].'" overdate="'.date("Y-m-d",strtotime($item['event_begin'])).'" overtext="'. strip_tags($showSum) .'">'.$seDay.' '.$dayMod.' - '.$item['event_title'].'</a>';
echo '</div>';
}
}
}
}
}
else
{
echo '';
}
此代码输出每一行的数据并将其分隔为年月日等。但是有些数据在同一天。很好,但是当数据在同一天时,我想要一个仅包含同一天最后一个项目的变量。
EX.
数据库
PUBLISH ID NAME
2011-05-05 1 test 1
2011-05-05 2 test 2
2011-05-06 3 test 3
我想要的结果是这样的
结果
test 1 ID 1 PUBLISH 2011-05-05 VARIABLE 2 <<-- see the variable that comes from test 2 row
test 2 ID 2 PUBLISH 2011-05-05 VARIABLE 2
test 3 ID 3 PUBLISH 2011-05-06 VARIABLE 3
在这种情况下,意思是测试 1 包含有关测试 2 的信息,因为测试 2 在测试 1 之后,并且它们都具有相同的日期。如果在特定日期只有一个作为测试 2 和 3,则回显与变量相同的 id。
有什么想法吗?请告诉我是否需要更多解释:)
非常感谢您的帮助!
【问题讨论】: