0

次のような投稿を保存するテーブルの例があります

id|title|content|

今、私は次のように数えview postたい

ここに画像の説明を入力

その方法は何ですか ありがとう

4

5 に答える 5

1

ビュー数を格納するためのフィールドがテーブルにある必要があるため、次のようなものでビューアー数を更新できます。

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

非常にシンプルで安価な方法でスパムの問題を解決する必要があります。

于 2013-09-02T06:31:09.773 に答える
0

開いたページIPを使用しているビューアーのアドレスを保存し、それを保存する必要がある場合があり、一意のアドレスを維持しているかどうかを確認する必要があるたびに.$_SERVER['REMOTE_ADDR']DBpage idIP

単一のIP アドレスpage view countに対しての増分を有効にする必要があることを意味します。

1)まず、現在のIPアドレスでページビューが表示されているかどうかを DB で確認します ( $_SERVER['REMOTE_ADDR'])。

2)が既に存在する場合は、何もしません。

3)存在しない場合は、現在のページ ID と IP アドレスを使用して DB に行を追加します。

4)次に、そのページ ID を持つ DB からの行をカウントして、ビューの数を抽出/カウントします。

これらのことを繰り返す必要があるたびにLOGIN、システムを使用してページ数を維持することもできます。

于 2013-09-02T06:12:38.397 に答える
0

そのためには、テーブルに列を 1 つ追加する必要があります。

たとえば、

列名がありますViews

updateこのようにページの上部にクエリを配置する必要があります

 UPDATE table SET Views= Views+1 WHERE ID= 'current page id'
于 2013-09-02T06:14:54.063 に答える
0

テーブルに含まれる例として、Counter という名前の新しいテーブルを作成できます。

 post_id|views

ユーザーがページにアクセスするたびに、このカウンターをインクリメントします

または、同じ posts テーブルに views というフィールドを追加することもできます

一意のビューをカウントしたい場合は、IP ADDRESS を自由に保存し、IP が存在するかどうかを確認して、そのビューをインクリメントしないでください。

次のようにphpでIPアドレスを取得できます。

 $_SERVER['REMOTE_ADDR'];
于 2013-09-02T06:15:07.963 に答える
0

これを行う最善の方法は、これを参照できる Cookie を使用することです。

于 2013-09-02T06:15:13.550 に答える