※ ChatGPTを利用し、要約された質問です(原文:URLパラメータで表示するページのアクセスカウンタ)
URLパラメータで表示するページのアクセスカウンタ
このQ&Aのポイント
PHPで誰でも投稿できる記事サイトの制作を勉強中です。pdoでMySQLデータベースに接続しています。
記事を表示するページの仕組みとして、URLパラメータに各記事のコードを含ませ、データベースからコードで照合したレコードのデータを取得し、取得したデータ(タイトル・内容・作成者の名前)を表示するという形でページを作成しています。
アクセスランキングの作成のために、各記事ごとにアクセス数を集計したく、データベースにアクセスカウント用のカラムを作成し、ページに人が訪問したらカウンタを更新するという形で試しに実装してみました。また、日別のアクセス数もカウントしたいため、毎日、日ごとのアクセスカウント用のカラムを1つずつ増やすのは少し手間がかかる気がします。テキストファイルでカウントする仕組みを見つけたのですが、1つのテキストファイルに複数ページのカウントを書き込むことは可能でしょうか?また、GETでページ分けされている場合のアクセスカウンタの処理方法を教えてください。
URLパラメータで表示するページのアクセスカウンタ
phpで誰でも投稿できる記事サイトの制作を勉強中です。
pdoでmysqlデータベースに接続しています。
記事を表示するページの仕組みとして、
URLパラメータに各記事のコードを含ませ、
データベースからコードで照合したレコードのデータを取得し、
取得したデータ(タイトル・内容・作成者の名前)を表示する
という形でページを作成しています。
アクセスランキングの作成の為に、各記事ごとにアクセス数を集計したく、
データベースにアクセスカウント用のカラムを作成し、
ページに人が訪問したらカウンタをUPDATEで1増やすという形で試しに実装してみました。
今のところ、問題なく動いてはいるのですが、
全ての記事ページで上記の動作をするとしたら
データベースに負荷がかからないか心配です。
また、アクセス総数は取得できますが、
日別のアクセス数もカウントしたいので、
毎日、日ごとのアクセスカウント用のカラムを1つずつ増やすのは
少し手間がかかる気がします。
ネットで調べたところ、
テキストファイルでカウントする仕組みを見かけたのですが、
1つのテキストファイルに複数ページのカウントを書き込むことは可能なのでしょうか?
もしも、1つのテキストファイルにつき、1つのページのカウントを書き込む場合は、
URLパラメータでページ分岐しているので、
新規記事作成の際、データベースにレコードを追加するのと一緒に
touch()関数などでアクセスログ用のファイルを作成した方が良いでしょうか?
GETでページ分けされている場合のアクセスカウンタの処理方法をネットで探しても
見つからなかった(探し方が悪いかもしれませんが・・・)ため質問させて頂きました。
当方、データベースでの処理ばかり使用していて、
phpでファイル関数は使用したことがありません。
(プログラミングのスクールに通っていた頃、perlで使用したことはあります。)
参考になるURL等もありましたら教えていただけると有難いです。
ご回答、よろしくお願いします。
お礼
ご回答ありがとうございます! なるほど、それぞれ一長一短あるので、 自分に向いた方法を取るべきということですね。 大変、参考になりました。