2010-11-23 28 views
1

Je veux faire un diagramme à barres sur mon site Web qui montre quels jours de la semaine et les moments de la journée ont le plus d'activités/connexions.Comment puis-je montrer quels jours et heures a le plus d'activité sur un site Web en utilisant PHP et MySQL?

Donc, je me demande si quelqu'un pourrait me donner quelques conseils sur la façon dont ils feraient cela? Comment organiser la ou les tables de base de données, quelles sont les données à collecter et comment je peux présenter les données enregistrées sous forme de graphique à barres en utilisant PHP.

+3

Commencez par nous dire quelles données vous avez déjà? Connais-tu les visiteurs du site? Utilisez-vous des packs d'analyse (google analytics, par exemple)? Etc. –

+0

Mon principal problème est de savoir comment ma ou mes tables de base de données devraient être organisées.Je vais ensuite enregistrer à quel jour et heure de la journée une connexion/visite a eu lieu avec PHP, et utiliser ces données pour présenter un graphique à barres sur le site, afin que mes visiteurs puissent voir à quel moment mon site a le plus d'activité (c'est un page de chat). Je ne suis pas sûr de ce que vous voulez dire par quelles données j'ai déjà. – Kanonskall

Répondre

0

La meilleure façon de procéder est probablement de stocker un horodatage pour chaque visite ou connexion. Ensuite, vous pouvez utiliser des requêtes SQL astucieuses pour regrouper les informations comme vous le souhaitez (jours de la semaine, heures de la journée ou toute autre chose.)

Ainsi, la table de base de données n'a probablement besoin que d'une clé primaire et de l'horodatage du visite, bien que vous puissiez certainement stocker des informations sur l'utilisateur ou l'action ainsi. Pour la présentation, essayez Google Charts (http://code.google.com/apis/chart/) ou une bibliothèque de graphiques basée sur javascript (il y en a plusieurs, j'ai eu une bonne expérience avec Highcharts http://www.highcharts.com/ Ps: Étant donné que vous avez signalé ce post comme MySQL, je suppose que c'est votre base de données de choix.

ps Voici une déclaration de création de table que vous pouvez utiliser.

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 ; 
+0

IP pour des visites uniques? – Robimp

+0

Bien sûr. Il a mentionné, cependant, qu'il est intéressé par les connexions - celles-ci peuvent être traitées un peu plus précisément que les visites de pages sans avoir besoin de s'assurer que la propriété intellectuelle est unique. – Chase

+0

Pas vu les graphiques avant, cela ressemble à une bonne option @Kanonskall – Robimp

0

Si vous devez le faire vous-même et ne pas utiliser un progiciel préexistant. Commencer petit. Créez simplement une table qui enregistre chaque requête, qui l'a fait, l'heure, le referer, quelle que soit l'information que vous voulez.

Une fois les données enregistrées, si vous ne souhaitez toujours pas utiliser Google Maps, vous pouvez créer vos propres graphiques PHP simples avec css et html.

Les diagrammes à barres peuvent être assez faciles, mais nécessitent des maths pour être corrects. Le plus simple est de les retourner de leur côté. Vous les voyez normalement comme des bâtiments, mais vous voulez dans ce cas les voir comme des tubes ressemblant à des vers. La longueur du tube peut alors représenter le nombre de hits, de pages vues, de visites, etc.

Je voudrais définir une largeur fixe pour l'ensemble du graphique et modifier la largeur des barres pour représenter un pourcentage de la valeur maximale. Donc, si la valeur maximale est de 1000, et que cette barre est de 500, vous devriez faire de la barre 50% de la largeur de votre graphique. J'espère que cela vous indique la bonne direction. Faire quelque chose comme ça peut être génial pour apprendre de nouveaux concepts.

1

Faciliter la visualisation à l'aide de vos journaux de serveur. Le traitement (http://www.processing.org/) est bon pour les choses comme ça, ou essayez http://processingjs.org/ pour une version non Java. Pour répondre à votre question, comme cela a été mentionné, stockez le temps de données pour chaque visite (et peut-être IP aussi si vous êtes après des visites uniques) puis écrivez un script pour tirer les enregistrements et faire un total pour chaque heure. Vous pouvez utiliser des divs colorés, avec la hauteur définie sur le nombre (ou une fraction) des hits. En fait, il s'agit essentiellement d'un compteur de succès n'est-ce pas. Oui, mon conseil serait de vérifier le traitement si, il est facile à ramasser et produit des résultats attrayants.

+0

Sérieusement? En utilisant le traitement pour un tableau de var simple? – c0rnh0li0

+1

Eh oui, ce sera un bon graphique de var. – Robimp