記事クリック週間ランキングと月間ランキング関数の開発の概要 予備知識: group by、MYSQL関数week()、month() 以下では、週間ランキングと月間ランキングの関数を開発する方法を分析します。記事のランキング機能。
データベースを設計するときに、通常、記事のクリック率を記録するフィールドがありますが、1 週間または 1 か月のクリック率ランキングを計算することは絶対に不可能です。このフィールドのみに依存してそれを達成します。この時点で、各記事の毎日のクリックスルー率を記録する新しいテーブルが作成されます。このテーブルにrankingという名前が付けられており、rid (テーブルID)、contentid (記事IDに関連付けられている)、hits (毎日のクリック率を記録)、date (時刻、重要度、クエリ中の比較)の4つのフィールドが定義されているとします。 >
ランキングの一般構造id contentid ヒット日1 2 12 2010-12-18
2 2 23 2010-12-19<p>$date = date("Y-m-d",time());</p>$contentid = $_GET[id];//当前文章ID<br />$query = mysql_query("select * from ranking where contentid='$contentid' and date='$date'); //查询数据库<br />if($value = mysql_fetch_array($query)){<br /> mysql_query("update ranking set hits = hits+1 where id='$value[id]' ");//如果有记录,只需点击率+1<br />}else{<br /> mysql_query("insert into ranking (`contentid`,`hits`,`date`) values('$contentid','1','$date')");//如果是第一次浏览,插入一条数据,点击率为1<br /><p>}</p>2. クエリ この時点で、統計作業が完了しました。次に、クリック数を計算する必要があります。これらの記事の 1 週間または 1 か月のスルー率を調べるのは困難です。 1. まず記事をグループ化し、合計クリック率を計算します:
select *,sum(hits) from ranking group by contentid order by sum(hits) desc2. 今週のデータをフィルターします:
select *,sum(hits) from ranking where week(date)=week(now()) group by contentid order by sum(hits) descこれは、週間ランキングのクエリ文です。クエリを実行した後、それを配列に入れて順番に表示します。完全なPHPコードを書かないでください。