2012-07-17 51 views
0

我想顯示他們的月和年分組,像這樣的MySQL條目:用PHP組,顯示由周

<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(); 
       }   
      } 

會如何我去分組他們,然後循環顯示如上?

任何幫助將不勝感激。

+0

什麼是你的表結構?什麼是你的「入門」? – Naltharial 2012-07-18 07:17:59

+0

你好@Naltharial,這是我的桌面屏幕http://i.imgur.com/yUBOP.png – user1405674 2012-07-18 12:34:24

回答

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並顯示分組數據。

讓我知道你是否想要別的東西。