0

我想按月份和年份分组显示它们,如下所示:

<p>
    <div>August 2009</div>
     <div class="fav">title 1</div>
     <div class="fav">title 5</div>
     <div class="fav">title 6</div> 
    etc...
</p>

 <p>
    <div>July 2009</div>
     <div class="fav">title 3</div>
     <div class="fav">title 8</div>
     <div class="fav">title 9</div> 
    etc...
</p>

这是我的查询...

 $fav = mysql_query("SELECT * FROM links WHERE user_id='{$row['id']}' GROUP BY post_id ORDER BY id DESC");
    $TMPL = array (); $skin = new skin('mylinks/my'); $profile = '';

    while($myfav = mysql_fetch_array($fav))
    {
        $favs = mysql_query("SELECT * FROM imdb WHERE id='{$myfav['post_id']}' LIMIT 100");
            while($myfavs = mysql_fetch_array($favs))
            {   
                $TMPL['profiles'] = '<div class="fav"><a href="/movie/'.$myfavs['id'].'"><img src="/'.$myfavs['poster'].'" title="Posted '.$myfavs['date'].'" /></a></div>';
                $profile .= $skin->make();
                }           
            }

我将如何对它们进行分组,然后循环显示如上?

任何帮助将不胜感激。

4

1 回答 1

0

如果我没看错,您可以合并这两个选择并告诉 SQL 让您知道它们属于哪个组。

SELECT *, YEAR(`date`) AS dy, MONTH(`date`) AS dm
FROM links
LEFT JOIN imdb WHERE imdb.id = links.post_id
WHERE links.user_id='{$row['id']}'
GROUP BY links.post_id
ORDER BY links.id DESC

之后,您可以构建自己的条目组。

$entries = array();

while($entry = mysql_fetch_array($result))
{   
    $entries[$entry['dy']][$entry['dm']] = $entry;
}

这应该给你一个条目的三维数组,按年和月分组。之后,您只需遍历$entries并显示分组的数据。

如果你想要别的东西,请告诉我。

于 2012-07-18T12:58:44.260 回答