Web サイトで、活動/ログインが最も多い曜日と時間帯を示す棒グラフを作成したいと考えています。
それで、誰かがこれをどのように行うかについてのヒントを教えてもらえないだろうかと思っています。データベース テーブルを整理する方法、収集するデータ、PHP を使用して棒グラフとして記録されたデータを表示する方法。
Web サイトで、活動/ログインが最も多い曜日と時間帯を示す棒グラフを作成したいと考えています。
それで、誰かがこれをどのように行うかについてのヒントを教えてもらえないだろうかと思っています。データベース テーブルを整理する方法、収集するデータ、PHP を使用して棒グラフとして記録されたデータを表示する方法。
サーバーログを使用して視覚化する方が簡単かもしれません。Processing ( http://www.processing.org/ ) はそのようなことを得意としています。または、Java 以外のバージョンについてはhttp://processingjs.org/を試してください。
ただし、前述のように、質問に対処するには、各訪問のデータ時間を保存し (一意の訪問の場合は IP も同様に)、スクリプトを記述してレコードを取得し、時間ごとに合計します。高さをヒット数 (または分数) に設定して、色付きの div を使用できます。実はこれ、基本的にヒットカウンターですよね。
ええ、私のアドバイスは、処理を確認することですが、簡単に取得でき、見栄えの良い結果が得られます。
おそらくこれを行うための最良の方法は、訪問またはログインごとに日時スタンプを保存することです。次に、巧妙なSQLクエリを使用して、必要に応じて情報をグループ化できます(曜日、時刻など)。
したがって、データベーステーブルには、主キーと訪問のタイムスタンプのみが必要になる可能性がありますが、ユーザーやアクションに関する情報も確実に保存できます。
プレゼンテーションには、Google Charts(http://code.google.com/apis/chart/)またはjavascriptベースのチャートライブラリ(いくつかありますが、Highcharts http://wwwで良い経験をしました)を試してください。 .highcharts.com /)
ps:この投稿にMySQLのフラグを付けたので、それが選択したデータベースだと思います。使用できるテーブル作成ステートメントは次のとおりです。
CREATE TABLE `visits` (
`id` int(11) unsigned NOT NULL auto_increment,
`created` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
自分で行う必要があり、既存のパッケージを使用しない場合。小さく始めましょう。各リクエストを記録する 1 つのテーブルを作成するだけで、誰がそれを作成したか、時間、リファラーなど、必要な情報をすべて記録できます。
データをログに記録した後も、Google チャートなどを使用したくない場合は、css と html を使用して独自の単純な PHP チャートを作成してみてください。
棒グラフは非常に簡単ですが、正しく理解するには数学が必要です。最も簡単な方法は、それらを横向きにすることです。通常は建物のように見えますが、この場合は虫のようなチューブとして見たいと思います。チューブの長さは、ヒット数、ページビュー数、訪問数などを表すことができます。
グラフ全体に固定幅を定義し、バーの幅を変更して最大値のパーセンテージを表します。したがって、最大値が 1000 で、この棒が 500 の場合、棒をグラフの幅の 50% にします。
これがあなたを正しい方向に向けてくれることを願っています。このようなことをすることは、新しい概念を学ぶのに最適です。