ホームページ  >  記事  >  バックエンド開発  >  記事クリック週間ランキングと月間ランキング機能開発の概要

記事クリック週間ランキングと月間ランキング機能開発の概要

WBOY
WBOYオリジナル
2016-06-20 13:00:282178ブラウズ

記事クリック週間ランキングと月間ランキング関数の開発の概要 予備知識: 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
3 1 15 2010-12-19

4 2 21 2010-12-20

1. 統計

最初のステップは、毎日の記事のクリックスルー率を記録することです。ユーザーが記事を閲覧すると、PHP プログラムはデータベース クエリを実行してレコードが存在するかどうかを確認します。存在しない場合は、その記事がその日初めて閲覧されたことを意味します。以降の訪問者がこの記事を再度読むときは、クリックスルー率を更新するだけで済みます。これは、その日の特定の記事のクリック率を記録するものです。

<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) desc

2. 今週のデータをフィルターします:

select *,sum(hits) from ranking where week(date)=week(now()) group by contentid order by sum(hits) desc

これは、週間ランキングのクエリ文です。クエリを実行した後、それを配列に入れて順番に表示します。完全なPHPコードを書かないでください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。