次のような投稿を保存するテーブルの例があります
id|title|content|
今、私は次のように数えview post
たい
その方法は何ですか ありがとう
ビュー数を格納するためのフィールドがテーブルにある必要があるため、次のようなものでビューアー数を更新できます。
UPDATE `table` SET `views` = `views` + 1 WHERE `id`= $post_id
ページを更新するか、独自のビューアーであることを確認して、スパムを回避することをお勧めします。いくつかの方法があります。
真剣に取り組みたい場合は、テーブルを使用してIPアドレスを保存し、それらを閲覧した投稿に関連付けて、Gautam3164が提案したように、再度カウントしないようにする必要があります.
ただし、クライアントが投稿を表示するたびに新しいレコードを作成すると、計算コストがかかりすぎる可能性があるため、ケースで厳密に必要でない限り、避ける必要があります。
$_SESSION
代わりに、最近閲覧した投稿の ID を保存するために を悪用して、同じクライアントがそれらを再度閲覧した場合にカウンターをインクリメントしないようにすることができます。
例えば:
if (!isset($_SESSION['recent_posts'][$post_id])) {
mysql_query("UPDATE `table` SET `views` = `views` + 1 WHERE `id`= $post_id");
$_SESSION['recent_posts'][$post_id] = 1;
}
非常にシンプルで安価な方法でスパムの問題を解決する必要があります。
開いたページIP
を使用しているビューアーのアドレスを保存し、それを保存する必要がある場合があり、一意のアドレスを維持しているかどうかを確認する必要があるたびに.$_SERVER['REMOTE_ADDR']
DB
page id
IP
単一のIP アドレスpage view count
に対しての増分を有効にする必要があることを意味します。
1)まず、現在のIP
アドレスでページビューが表示されているかどうかを DB で確認します ( $_SERVER['REMOTE_ADDR']
)。
2)が既に存在する場合は、何もしません。
3)存在しない場合は、現在のページ ID と IP アドレスを使用して DB に行を追加します。
4)次に、そのページ ID を持つ DB からの行をカウントして、ビューの数を抽出/カウントします。
これらのことを繰り返す必要があるたびにLOGIN
、システムを使用してページ数を維持することもできます。
そのためには、テーブルに列を 1 つ追加する必要があります。
たとえば、
列名がありますViews
update
このようにページの上部にクエリを配置する必要があります
UPDATE table SET Views= Views+1 WHERE ID= 'current page id'
テーブルに含まれる例として、Counter という名前の新しいテーブルを作成できます。
post_id|views
ユーザーがページにアクセスするたびに、このカウンターをインクリメントします
または、同じ posts テーブルに views というフィールドを追加することもできます
一意のビューをカウントしたい場合は、IP ADDRESS を自由に保存し、IP が存在するかどうかを確認して、そのビューをインクリメントしないでください。
次のようにphpでIPアドレスを取得できます。
$_SERVER['REMOTE_ADDR'];
これを行う最善の方法は、これを参照できる Cookie を使用することです。