0

私はソーシャル ネットワークを持っているので、ブログはユーザーにとってサイトのウィジェットとしか言えません。したがって、すべてのユーザーがブログを持つことができるので、このブログをできる限り素晴らしいものにしたいと考えています。ユーザーのブログ ページに移動すると、当月のすべてのブログが表示されます。

私の質問は、このように横に列を表示するにはどうすればよいですか?

問題は、ユーザーがサイトに参加してから現在までの月数のみをリストする必要があるため、2 年前に参加したユーザーにはこれらのリンクが 24 個あり、1 か月またはそれ以降のユーザーには 1 個しか表示されないということです。

システムは php/mysql を使用します

4

2 に答える 2

2

あなたを想定して:

  • ユーザーからのブログ投稿がある月のみを考慮したい
  • あなたのDBはMySQLです

あなたはこのようなことを試すことができます:

select concat(YEAR(date), '-', MONTH(date)) as month, count(*) as num 
from ab_post 
where user_id = 1 
group by YEAR(date), MONTH(date) 
order by YEAR(date) desc, MONTH(date) desc;

そうなる :

  • ユーザー「1」からの投稿があった年/月をリストします(もちろん、これは動的である必要があります)
  • 毎月、投稿の数を教えてください

つまり、次のようなものが得られます:

+--------+-----+
| month  | num |
+--------+-----+
| 2008-6 |   1 |
| 2008-5 |   1 |
| 2008-4 |   3 |
| 2008-3 |   1 |
+--------+-----+

注意すべきこと:

  • 年/月によるグループ化
  • 日付による注文説明

ちなみに、これは1月から9月までの月を1桁にします:MySQLのヘルプで正しい形式を見つけるのはあなた次第です;-)

楽しむ !

于 2009-07-27T17:30:02.863 に答える
1

これは、データベースの構造によって異なります。通常、ブログ投稿には日付が関連付けられています。通常、データベースにクエリを実行して、各ユーザーの一意の月のリストを取得できます。Wordpress のような OSS システムを使用していますか、それとも独自のものを使用していますか? あなたのスキーマについて何か洞察を与えることができますか?

于 2009-07-27T17:18:43.760 に答える