Créer un compte
Connexion

Statistique dans unsite

Pour créer et répondre aux sujets, vous devez être connecté.
Ce sujet est résolu.
Pages: 1
Auteur Message
bruno
31/07/2010 à 21:57:52
bruno
Membre
Bonjour à tous!j'ai un problème!!!!!!!!
Je voulais mettre dans mon site des statistiques par jour, par mois; par année.Mais j'ai certais érreurs pour sur mes codes!!pou les statistiques
pour les statistiques par jour j'ai ce code<html>
<head>
<title>Statistiques</title>
</head>
<body>
<?php
// connexion à la base de donnée
$base = mysql_connect('localhost', 'root', '');
mysql_select_db('statistique', $base);
// on écrit des liens permettant de naviguer entre les différentes pages de notre partie
//administration
echo '<a href="./stat_jour.php">Les stats du jour</a><br />';
echo '<a href="./stat_mois.php">Les stats du mois</a><br />';
echo '<a href="./stat_annee.php">Les stats de l\'année</a><br /><br />';
echo 'Voir les statistiques d\'un autre jour :<br /><br />';
// formulaire permettant de choisir une date afin de voir les statistiques de cette date
echo '<form action="./stat_jour.php" method="post">';
echo '<select name="jour">';
// on boucle sur 31 jours
for($i = 1; $i <= 31; $i++) {
if ($i < "10") {
echo '<option>0'.$i.'</option>';
}
else {
echo '<option>'.$i.'</option>';
}
}
echo '</select>';
echo '&nbsp;&nbsp;';
echo '<select name="mois">';
// on boucle sur 12 mois
for($i = 1; $i <= 12; $i++) {
if ($i < "10") {
echo '<option>0'.$i.'</option>';
}
else {
echo '<option>'.$i.'</option>';
}
}
echo '</select>';
echo '&nbsp;&nbsp;';
echo '<select name="annee">';
// on boucle sur 7 ans (à modifier à souhait)
for($i = 2003; $i <= 2010; $i++) {
echo '<option>'.$i.'</option>';
}
echo '</select>';
echo '<br /><br />';
echo '<input type="submit" value="Voir">';
echo '</form>';
// on cherche le nombre de pages visitées depuis le début (création du site)
$select = 'SELECT id FROM statistiques';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total_pages_visitees_depuis_creation = mysql_num_rows($result);
mysql_free_result($result);
// on cherche le nombre de visiteurs depuis le début (création du site)
$sql = 'SELECT DISTINCT(ip) FROM statistiques';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$total_visiteur_depuis_debut = mysql_num_rows ($result);
mysql_free_result($result);
echo 'Depuis la création du site, '.$total_pages_visitees_depuis_creation.' pages ont
//été visitées par '.$total_visiteur_depuis_debut.' visiteurs.<br /><br /><hr>';
// on teste si $_POST['jour'], $_POST['mois'], $_POST['annee'] sont vides et déclarées :
//si oui, c'est que l'on veut voir les statistiques de la date du jour, sinon (elles ne
//sont pas vides), c'est que l'on a remplit le formulaire qui suit afin de voir les
//statistiques d'un autre jour précis
if (!isset($_POST['jour']) || !isset($_POST['mois']) || !isset($_POST['annee'])) {
$date_jour = date("Y-m-d");
}
else {
if (empty($_POST['jour']) && empty($_POST['mois']) && empty($_POST['annee'])) {
$date_jour = date("Y-m-d");
}
else {
$date_jour = $_POST['annee'].'-'.$_POST['mois'].'-'.$_POST['jour'];
}
}
// on déclare un tableau ($visite_par_heure) qui aura 24 clés : de 0 à 23, chaque
//élément du tableau contiendra le nombre de pages vues pendant une tranche horaire (à la
//clé 0, on aura le nombre de pages vues entre 00:00 et 00:59:59)
$visite_par_heure = array();
$sql = 'SELECT date FROM statistiques WHERE date LIKE "'.$date_jour.'%" ORDER BY date
ASC';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($result)) {
$date=$data['date'];
sscanf($date, "%4s-%2s-%2s %2s:%2s:%2s", $date_Y, $date_m, $date_d, $date_H, $date_i,
$date_s);
if ($date_H < "10"){
$date_H = substr($date_H, -1);
}
$visite_par_heure[$date_H]=$visite_par_heure[$date_H]+1;
}
$total_pages_vu = mysql_num_rows($result);
mysql_free_result($result);
sscanf($date_jour, "%4s-%2s-%2s %2s:%2s:%2s", $date_Y, $date_m, $date_d, $date_H,
$date_i, $date_s);
// on affiche le nombre de pages vues en fonction des tranches horaires
echo '<br />Les statistiques du '.$date_d.''.$date_m.''.$date_Y.' : <br /><br />';
for($i = 1; $i <= 24; $i++) {
$j = $i-1;
if (!isset($visite_par_heure[$j])) {
echo $j.'H - '.$i.'H : 0 page vue<br />';
}
else {
echo $j.'H - '.$i.'H : '.$visite_par_heure[$j].' pages vues<br />';
}
}
// on calcule le nombre de visiteurs de la journée
$sql = 'SELECT DISTINCT(ip) FROM statistiques WHERE date LIKE "'.$date_jour.'%" ORDER BY
date ASC';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$total_visiteur = mysql_num_rows ($result);
mysql_free_result($result);
echo '<br />Soit un total de '.$total_pages_vu.' pages vues par '.$total_visiteur.'
visiteurs.<br /><br />';
// on recherche les pages qui ont été les plus vues sur la journée (on calcule au
//passage le nombre de fois qu'elles ont été vu)
echo '<br />Les pages les plus vues :<br /><br />';
$sql = 'SELECT distinct(page), count(page) as nb_page FROM statistiques WHERE date LIKE
"'.$date_jour.'%" GROUP BY page ORDER BY nb_page DESC LIMIT 0,15';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($result)) {
$nb_page = $data['nb_page'];
$page = $data['page'];
echo $nb_page.' '.$page.'<br />';
}
mysql_free_result($result);
// on recherche les visiteurs qui ont été les plus connectes au site sur la journée (on
//calcule au passage le nombre de page qu'ils ont chargé)
echo '<br />Les visiteurs les plus connectés :<br /><br />';
$sql = 'SELECT distinct(host), count(host) as nb_host FROM statistiques WHERE date LIKE
"'.$date_jour.'%" GROUP BY host ORDER BY nb_host DESC LIMIT 0,15';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($result)) {
$nb_host = $data['nb_host'];
$host = $data['host'];
echo $nb_host.' '.$host.'<br />';
}
mysql_free_result($result);
// on recherche les meilleurs referer sur la journée
echo '<br />Les meilleurs referer :<br /><br />';
$sql = 'SELECT distinct(referer), count(referer) as nb_referer FROM statistiques WHERE
date LIKE "'.$date_jour.'%" AND referer!="" GROUP BY referer ORDER BY nb_referer DESC
LIMIT 0,15';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($result)) {
$nb_referer = $data['nb_referer'];
$referer = $data['referer'];
echo $nb_referer.' <a href="'.$referer.'" target="_blank">'.$referer.'</a><br />';
}
mysql_free_result($result);
// on recherche les navigateurs et les OS utilisés par les visiteurs (on calcule au
//passage le nombre de page qui ont été chargés avec ces systèmes)
echo '<br />Les navigateurs et OS :<br /><br />';
$sql = 'SELECT distinct(navigateur), count(navigateur) as nb_navigateur FROM
statistiques WHERE date LIKE "'.$date_jour.'%" GROUP BY navigateur ORDER BY
nb_navigateur DESC LIMIT 0,15';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($result)) {
$nb_navigateur = $data['nb_navigateur'];
$navigateur = $data['navigateur'];
echo $nb_navigateur.' '.$navigateur.'<br />';
}
mysql_free_result($result);
mysql_close();
?>
</body>
</html>
et j'ailes érreurs suivants
Voir les statistiques d'un autre jour :


01020304050607080910111213141516171819202122232425262728293031  010203040506070809101112  20032004200520062007200820092010


Depuis la création du site, 10 pages ont //été visitées par 1 visiteurs.


--------------------------------------------------------------------------------

Notice: Undefined index: 2 in C:\wamp\www\administration\stat_jour.php on line 92

Notice: Undefined index: 12 in C:\wamp\www\administration\stat_jour.php on line 92

Les statistiques du 31/07/2010 :

0H - 1H : 0 page vue
1H - 2H : 0 page vue
2H - 3H : 1 pages vues
3H - 4H : 0 page vue
4H - 5H : 0 page vue
5H - 6H : 0 page vue
6H - 7H : 0 page vue
7H - 8H : 0 page vue
8H - 9H : 0 page vue
9H - 10H : 0 page vue
10H - 11H : 0 page vue
11H - 12H : 0 page vue
12H - 13H : 1 pages vues
13H - 14H : 0 page vue
14H - 15H : 0 page vue
15H - 16H : 0 page vue
16H - 17H : 0 page vue
17H - 18H : 0 page vue
18H - 19H : 0 page vue
19H - 20H : 0 page vue
20H - 21H : 0 page vue
21H - 22H : 0 page vue
22H - 23H : 0 page vue
23H - 24H : 0 page vue

Soit un total de 2 pages vues par 1 visiteurs.


Les pages les plus vues :

2 /administration/record_stat.php

Les visiteurs les plus connectés :

2 localhost

Les meilleurs referer :


Les navigateurs et OS :

2 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2; AskTB5.6)
mon navigateur cèst IE et ça me donne mozila et sa n'affiche meme pas le système d'exploitation;je ne comprend plus rien
pour le code du mois j'ai ceci<html>
<head>
<title>Statistiques</title>
</head>
<body>
<?php
// connexion à la base de donnée
$base = mysql_connect('localhost', 'root', '');
mysql_select_db('statistique', $base);
// on écrit des liens permettant de naviguer entre les différentes pages de notre partie
//administration
echo '<a href="./stat_jour.php">Les stats du jour</a><br />';
echo '<a href="./stat_mois.php">Les stats du mois</a><br />';
echo '<a href="./stat_annee.php">Les stats de l\'année</a><br /><br />';
echo 'Voir les statistiques d\'un autre mois :<br /><br />';
// formulaire permettant de choisir une date afin de voir les statistiques de cette date
echo '<form action="./stat_mois.php" method="post">';
echo '<select name="mois">';
// on boucle sur 12 mois
for($i = 1; $i <= 12; $i++) {
if ($i < "10") {
echo '<option>0'.$i.'</option>';
}
else {
echo '<option>'.$i.'</option>';
}
}
echo '</select>';
echo '&nbsp;&nbsp;';
echo '<select name="annee">';
// on boucle sur 7 ans (à modifier à souhait)
for($i = 2003; $i <= 2010; $i++) {
echo '<option>'.$i.'</option>';
}
echo '</select>';
echo '<br /><br />';
echo '<input type="submit" value="Voir">';
echo '</form>';
// on cherche le nombre de pages visitées depuis le début (création du site)
$select = 'SELECT id FROM statistiques';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total_pages_visitees_depuis_creation = mysql_num_rows($result);
mysql_free_result($result);
// on cherche le nombre de visiteurs depuis le début (création du site)
$sql = 'SELECT DISTINCT(ip) FROM statistiques';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$total_visiteur_depuis_debut = mysql_num_rows ($result);
mysql_free_result($result);
echo 'Depuis la création du site, '.$total_pages_visitees_depuis_creation.' pages ont
été visitées par '.$total_visiteur_depuis_debut.' visiteurs.<br /><br /><hr>';
// on teste si $_POST['mois'], $_POST['annee'] sont vides et déclarées : si oui, c'est
//que l'on veut voir les statistiques du mois en cours, sinon (elles ne sont pas vides),
//c'est que l'on a remplit le formulaire qui suit afin de voir les statistiques d'un autre
//mois
if (!isset($_POST['mois']) || !isset($_POST['annee'])) {
$date_mois = date("Y-m");
}
else {
if (empty($_POST['mois']) && empty($_POST['annee'])) {
$date_mois = date("Y-m");
}
else {
$date_mois = $_POST['annee'].'-'.$_POST['mois'];
}
}
// on déclare un tableau ($visite_par_jour) qui aura 31 clés : de 0 à 30, chaque élément
//du tableau contiendra le nombre de pages vues pendant un jour (à la clé 0, on aura le
//nombre de pages vues le 1 er du mois)
$visite_par_jour = array();
$sql = 'SELECT date FROM statistiques WHERE date LIKE "'.$date_mois.'%" ORDER BY date
ASC';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($result)) {
$date=$data['date'];
sscanf($date, "%4s-%2s-%2s %2s:%2s:%2s", $date_Y, $date_m, $date_d, $date_H, $date_i,
$date_s);
if ($date_d < "10"){
$date_d = substr($date_d, -1);
}
$visite_par_jour[$date_d]=$visite_par_jour[$date_d]+1;
}
$total_pages_vu = mysql_num_rows($result);
mysql_free_result($result);
sscanf($date_mois, "%4s-%2s-%2s %2s:%2s:%2s", $date_Y, $date_m, $date_d, $date_H,
$date_i, $date_s);
// on affiche le nombre de pages vues en fonction des jours
echo '<br />Les statistiques du '.$date_m.''.$date_Y.' : <br /><br />';
for($i = 1; $i <= 31; $i++) {
if (!isset($visite_par_jour[$i])) {
echo 'le '.$i.' : 0 page vue<br />';
}
else {
echo 'le '.$i.' : '.$visite_par_jour[$i].' pages vues<br />';
}
}
// on calcule le nombre de visiteurs du mois
$sql = 'SELECT DISTINCT(ip) FROM statistiques WHERE date LIKE "'.$date_mois.'%" ORDER BY
date ASC';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$total_visiteur = mysql_num_rows ($result);
mysql_free_result($result);
echo '<br />Soit un total de '.$total_pages_vu.' pages vues par '.$total_visiteur.'
visiteurs.<br /><br />';
// on recherche les pages qui ont été les plus vues sur le mois (on calcule au passage
//le nombre de fois qu'elles ont été vu)
echo '<br />Les pages les plus vues :<br /><br />';
$sql = 'SELECT distinct(page), count(page) as nb_page FROM statistiques WHERE date LIKE
"'.$date_mois.'%" GROUP BY page ORDER BY nb_page DESC LIMIT 0,15';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($result)) {
$nb_page = $data['nb_page'];
$page = $data['page'];
echo $nb_page.' '.$page.'<br />';
}
mysql_free_result($result);
// on recherche les visiteurs qui ont été les plus connectes au site sur le mois (on
//calcule au passage le nombre de page qu'ils ont chargé)
echo '<br />Les visiteurs les plus connectés :<br /><br />';
$sql = 'SELECT distinct(host), count(host) as nb_host FROM statistiques WHERE date LIKE
"'.$date_mois.'%" GROUP BY host ORDER BY nb_host DESC LIMIT 0,15';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($result)) {
$nb_host = $data['nb_host'];
$host = $data['host'];
echo $nb_host.' '.$host.'<br />';
}
mysql_free_result($result);
// on recherche les meilleurs referer sur le mois
echo '<br />Les meilleurs referer :<br /><br />';
$sql = 'SELECT distinct(referer), count(referer) as nb_referer FROM statistiques WHERE
date LIKE "'.$date_mois.'%" AND referer!="" GROUP BY referer ORDER BY nb_referer DESC
LIMIT 0,15';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($result)) {
$nb_referer = $data['nb_referer'];
$referer = $data['referer'];
echo $nb_referer.' <a href="'.$referer.'" target="_blank">'.$referer.'</a><br />';
}
mysql_free_result($result);
// on recherche les navigateurs et les OS utilisés par les visiteurs (on calcule au
//passage le nombre de page qui ont été chargés avec ces systèmes)
echo '<br />Les navigateurs et OS :<br /><br />';
$sql = 'SELECT distinct(navigateur), count(navigateur) as nb_navigateur FROM
statistiques WHERE date LIKE "'.$date_mois.'%" GROUP BY navigateur ORDER BY
nb_navigateur DESC LIMIT 0,15';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($result)) {
$nb_navigateur = $data['nb_navigateur'];
$navigateur = $data['navigateur'];
echo $nb_navigateur.' '.$navigateur.'<br />';
}
mysql_free_result($result);
mysql_close();
?>
</body>
</html>
et les érreurs sont
Voir les statistiques d'un autre mois :


010203040506070809101112  20032004200520062007200820092010


Depuis la création du site, 10 pages ont été visitées par 1 visiteurs.


--------------------------------------------------------------------------------

Notice: Undefined index: 29 in C:\wamp\www\administration\stat_mois.php on line 80

Notice: Undefined index: 30 in C:\wamp\www\administration\stat_mois.php on line 80

Notice: Undefined index: 31 in C:\wamp\www\administration\stat_mois.php on line 80

Les statistiques du 07/2010 :

le 1 : 0 page vue
le 2 : 0 page vue
le 3 : 0 page vue
le 4 : 0 page vue
le 5 : 0 page vue
le 6 : 0 page vue
le 7 : 0 page vue
le 8 : 0 page vue
le 9 : 0 page vue
le 10 : 0 page vue
le 11 : 0 page vue
le 12 : 0 page vue
le 13 : 0 page vue
le 14 : 0 page vue
le 15 : 0 page vue
le 16 : 0 page vue
le 17 : 0 page vue
le 18 : 0 page vue
le 19 : 0 page vue
le 20 : 0 page vue
le 21 : 0 page vue
le 22 : 0 page vue
le 23 : 0 page vue
le 24 : 0 page vue
le 25 : 0 page vue
le 26 : 0 page vue
le 27 : 0 page vue
le 28 : 0 page vue
le 29 : 6 pages vues
le 30 : 2 pages vues
le 31 : 2 pages vues

Soit un total de 10 pages vues par 1 visiteurs.


Les pages les plus vues :

10 /administration/record_stat.php

Les visiteurs les plus connectés :

10 localhost

Les meilleurs referer :


Les navigateurs et OS :

10 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2; AskTB5.6)
meme chose pour l'année quelqu'un pourait- il m'aider Merci<couleur valeur="bleu"/>

ybouane
31/07/2010 à 23:59:10
ybouane
Admin
bonjour,
Essaye ça pour ton premier code:
<html>
<head>
<title>Statistiques</title>
</head>
<body>
<?php
// connexion à la base de donnée
$base = mysql_connect('localhost', 'root', '');
mysql_select_db('statistique', $base);
// on écrit des liens permettant de naviguer entre les différentes pages de notre partie
//administration
echo '<a href="./stat_jour.php">Les stats du jour</a><br />';
echo '<a href="./stat_mois.php">Les stats du mois</a><br />';
echo '<a href="./stat_annee.php">Les stats de l\'année</a><br /><br />';
echo 'Voir les statistiques d\'un autre jour :<br /><br />';
// formulaire permettant de choisir une date afin de voir les statistiques de cette date
echo '<form action="./stat_jour.php" method="post">';
echo '<select name="jour">';
// on boucle sur 31 jours
for($i = 1; $i <= 31; $i++) {
if ($i < "10") {
echo '<option>0'.$i.'</option>';
}
else {
echo '<option>'.$i.'</option>';
}
}
echo '</select>';
echo '&nbsp;&nbsp;';
echo '<select name="mois">';
// on boucle sur 12 mois
for($i = 1; $i <= 12; $i++) {
if ($i < "10") {
echo '<option>0'.$i.'</option>';
}
else {
echo '<option>'.$i.'</option>';
}
}
echo '</select>';
echo '&nbsp;&nbsp;';
echo '<select name="annee">';
// on boucle sur 7 ans (à modifier à souhait)
for($i = 2003; $i <= 2010; $i++) {
echo '<option>'.$i.'</option>';
}
echo '</select>';
echo '<br /><br />';
echo '<input type="submit" value="Voir">';
echo '</form>';
// on cherche le nombre de pages visitées depuis le début (création du site)
$select = 'SELECT id FROM statistiques';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total_pages_visitees_depuis_creation = mysql_num_rows($result);
mysql_free_result($result);
// on cherche le nombre de visiteurs depuis le début (création du site)
$sql = 'SELECT DISTINCT(ip) FROM statistiques';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$total_visiteur_depuis_debut = mysql_num_rows ($result);
mysql_free_result($result);
echo 'Depuis la création du site, '.$total_pages_visitees_depuis_creation.' pages ont
//été visitées par '.$total_visiteur_depuis_debut.' visiteurs.<br /><br /><hr>';
// on teste si $_POST['jour'], $_POST['mois'], $_POST['annee'] sont vides et déclarées :
//si oui, c'est que l'on veut voir les statistiques de la date du jour, sinon (elles ne
//sont pas vides), c'est que l'on a remplit le formulaire qui suit afin de voir les
//statistiques d'un autre jour précis
if (!isset($_POST['jour']) || !isset($_POST['mois']) || !isset($_POST['annee'])) {
$date_jour = date("Y-m-d");
}
else {
if (empty($_POST['jour']) && empty($_POST['mois']) && empty($_POST['annee'])) {
$date_jour = date("Y-m-d");
}
else {
$date_jour = $_POST['annee'].'-'.$_POST['mois'].'-'.$_POST['jour'];
}
}
// on déclare un tableau ($visite_par_heure) qui aura 24 clés : de 0 à 23, chaque
//élément du tableau contiendra le nombre de pages vues pendant une tranche horaire (à la
//clé 0, on aura le nombre de pages vues entre 00:00 et 00:59:59)
$visite_par_heure = array();
$sql = 'SELECT date FROM statistiques WHERE date LIKE "'.$date_jour.'%" ORDER BY date
ASC';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($result)) {
$date=$data['date'];
sscanf($date, "%4s-%2s-%2s %2s:%2s:%2s", $date_Y, $date_m, $date_d, $date_H, $date_i,
$date_s);
if ($date_H < "10"){
$date_H = substr($date_H, -1);
}
if(!isset($visite_par_heure[$date_H]))
{
        $visite_par_heure[$date_H] = 0;
}
$visite_par_heure[$date_H]=$visite_par_heure[$date_H]+1;
}
$total_pages_vu = mysql_num_rows($result);
mysql_free_result($result);
sscanf($date_jour, "%4s-%2s-%2s %2s:%2s:%2s", $date_Y, $date_m, $date_d, $date_H,
$date_i, $date_s);
// on affiche le nombre de pages vues en fonction des tranches horaires
echo '<br />Les statistiques du '.$date_d.''.$date_m.''.$date_Y.' : <br /><br />';
for($i = 1; $i <= 24; $i++) {
$j = $i-1;
if (!isset($visite_par_heure[$j])) {
echo $j.'H - '.$i.'H : 0 page vue<br />';
}
else {
echo $j.'H - '.$i.'H : '.$visite_par_heure[$j].' pages vues<br />';
}
}
// on calcule le nombre de visiteurs de la journée
$sql = 'SELECT DISTINCT(ip) FROM statistiques WHERE date LIKE "'.$date_jour.'%" ORDER BY
date ASC';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$total_visiteur = mysql_num_rows ($result);
mysql_free_result($result);
echo '<br />Soit un total de '.$total_pages_vu.' pages vues par '.$total_visiteur.'
visiteurs.<br /><br />';
// on recherche les pages qui ont été les plus vues sur la journée (on calcule au
//passage le nombre de fois qu'elles ont été vu)
echo '<br />Les pages les plus vues :<br /><br />';
$sql = 'SELECT distinct(page), count(page) as nb_page FROM statistiques WHERE date LIKE
"'.$date_jour.'%" GROUP BY page ORDER BY nb_page DESC LIMIT 0,15';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($result)) {
$nb_page = $data['nb_page'];
$page = $data['page'];
echo $nb_page.' '.$page.'<br />';
}
mysql_free_result($result);
// on recherche les visiteurs qui ont été les plus connectes au site sur la journée (on
//calcule au passage le nombre de page qu'ils ont chargé)
echo '<br />Les visiteurs les plus connectés :<br /><br />';
$sql = 'SELECT distinct(host), count(host) as nb_host FROM statistiques WHERE date LIKE
"'.$date_jour.'%" GROUP BY host ORDER BY nb_host DESC LIMIT 0,15';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($result)) {
$nb_host = $data['nb_host'];
$host = $data['host'];
echo $nb_host.' '.$host.'<br />';
}
mysql_free_result($result);
// on recherche les meilleurs referer sur la journée
echo '<br />Les meilleurs referer :<br /><br />';
$sql = 'SELECT distinct(referer), count(referer) as nb_referer FROM statistiques WHERE
date LIKE "'.$date_jour.'%" AND referer!="" GROUP BY referer ORDER BY nb_referer DESC
LIMIT 0,15';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($result)) {
$nb_referer = $data['nb_referer'];
$referer = $data['referer'];
echo $nb_referer.' <a href="'.$referer.'" target="_blank">'.$referer.'</a><br />';
}
mysql_free_result($result);
// on recherche les navigateurs et les OS utilisés par les visiteurs (on calcule au
//passage le nombre de page qui ont été chargés avec ces systèmes)
echo '<br />Les navigateurs et OS :<br /><br />';
$sql = 'SELECT distinct(navigateur), count(navigateur) as nb_navigateur FROM
statistiques WHERE date LIKE "'.$date_jour.'%" GROUP BY navigateur ORDER BY
nb_navigateur DESC LIMIT 0,15';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($result)) {
$nb_navigateur = $data['nb_navigateur'];
$navigateur = $data['navigateur'];
echo $nb_navigateur.' '.$navigateur.'<br />';
}
mysql_free_result($result);
mysql_close();
?>
</body>
</html>

Et ça pour ton deuxième:
<html>
<head>
<title>Statistiques</title>
</head>
<body>
<?php
// connexion à la base de donnée
$base = mysql_connect('localhost', 'root', '');
mysql_select_db('statistique', $base);
// on écrit des liens permettant de naviguer entre les différentes pages de notre partie
//administration
echo '<a href="./stat_jour.php">Les stats du jour</a><br />';
echo '<a href="./stat_mois.php">Les stats du mois</a><br />';
echo '<a href="./stat_annee.php">Les stats de l\'année</a><br /><br />';
echo 'Voir les statistiques d\'un autre mois :<br /><br />';
// formulaire permettant de choisir une date afin de voir les statistiques de cette date
echo '<form action="./stat_mois.php" method="post">';
echo '<select name="mois">';
// on boucle sur 12 mois
for($i = 1; $i <= 12; $i++) {
if ($i < "10") {
echo '<option>0'.$i.'</option>';
}
else {
echo '<option>'.$i.'</option>';
}
}
echo '</select>';
echo '&nbsp;&nbsp;';
echo '<select name="annee">';
// on boucle sur 7 ans (à modifier à souhait)
for($i = 2003; $i <= 2010; $i++) {
echo '<option>'.$i.'</option>';
}
echo '</select>';
echo '<br /><br />';
echo '<input type="submit" value="Voir">';
echo '</form>';
// on cherche le nombre de pages visitées depuis le début (création du site)
$select = 'SELECT id FROM statistiques';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total_pages_visitees_depuis_creation = mysql_num_rows($result);
mysql_free_result($result);
// on cherche le nombre de visiteurs depuis le début (création du site)
$sql = 'SELECT DISTINCT(ip) FROM statistiques';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$total_visiteur_depuis_debut = mysql_num_rows ($result);
mysql_free_result($result);
echo 'Depuis la création du site, '.$total_pages_visitees_depuis_creation.' pages ont
été visitées par '.$total_visiteur_depuis_debut.' visiteurs.<br /><br /><hr>';
// on teste si $_POST['mois'], $_POST['annee'] sont vides et déclarées : si oui, c'est
//que l'on veut voir les statistiques du mois en cours, sinon (elles ne sont pas vides),
//c'est que l'on a remplit le formulaire qui suit afin de voir les statistiques d'un autre
//mois
if (!isset($_POST['mois']) || !isset($_POST['annee'])) {
$date_mois = date("Y-m");
}
else {
if (empty($_POST['mois']) && empty($_POST['annee'])) {
$date_mois = date("Y-m");
}
else {
$date_mois = $_POST['annee'].'-'.$_POST['mois'];
}
}
// on déclare un tableau ($visite_par_jour) qui aura 31 clés : de 0 à 30, chaque élément
//du tableau contiendra le nombre de pages vues pendant un jour (à la clé 0, on aura le
//nombre de pages vues le 1 er du mois)
$visite_par_jour = array();
$sql = 'SELECT date FROM statistiques WHERE date LIKE "'.$date_mois.'%" ORDER BY date
ASC';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($result)) {
$date=$data['date'];
sscanf($date, "%4s-%2s-%2s %2s:%2s:%2s", $date_Y, $date_m, $date_d, $date_H, $date_i,
$date_s);
if ($date_d < "10"){
$date_d = substr($date_d, -1);
}
if(!isset($visite_par_jour[$date_d]))
{
        $visite_par_jour[$date_d] = 0;
}
$visite_par_jour[$date_d]=$visite_par_jour[$date_d]+1;
}
$total_pages_vu = mysql_num_rows($result);
mysql_free_result($result);
sscanf($date_mois, "%4s-%2s-%2s %2s:%2s:%2s", $date_Y, $date_m, $date_d, $date_H,
$date_i, $date_s);
// on affiche le nombre de pages vues en fonction des jours
echo '<br />Les statistiques du '.$date_m.''.$date_Y.' : <br /><br />';
for($i = 1; $i <= 31; $i++) {
if (!isset($visite_par_jour[$i])) {
echo 'le '.$i.' : 0 page vue<br />';
}
else {
echo 'le '.$i.' : '.$visite_par_jour[$i].' pages vues<br />';
}
}
// on calcule le nombre de visiteurs du mois
$sql = 'SELECT DISTINCT(ip) FROM statistiques WHERE date LIKE "'.$date_mois.'%" ORDER BY
date ASC';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$total_visiteur = mysql_num_rows ($result);
mysql_free_result($result);
echo '<br />Soit un total de '.$total_pages_vu.' pages vues par '.$total_visiteur.'
visiteurs.<br /><br />';
// on recherche les pages qui ont été les plus vues sur le mois (on calcule au passage
//le nombre de fois qu'elles ont été vu)
echo '<br />Les pages les plus vues :<br /><br />';
$sql = 'SELECT distinct(page), count(page) as nb_page FROM statistiques WHERE date LIKE
"'.$date_mois.'%" GROUP BY page ORDER BY nb_page DESC LIMIT 0,15';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($result)) {
$nb_page = $data['nb_page'];
$page = $data['page'];
echo $nb_page.' '.$page.'<br />';
}
mysql_free_result($result);
// on recherche les visiteurs qui ont été les plus connectes au site sur le mois (on
//calcule au passage le nombre de page qu'ils ont chargé)
echo '<br />Les visiteurs les plus connectés :<br /><br />';
$sql = 'SELECT distinct(host), count(host) as nb_host FROM statistiques WHERE date LIKE
"'.$date_mois.'%" GROUP BY host ORDER BY nb_host DESC LIMIT 0,15';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($result)) {
$nb_host = $data['nb_host'];
$host = $data['host'];
echo $nb_host.' '.$host.'<br />';
}
mysql_free_result($result);
// on recherche les meilleurs referer sur le mois
echo '<br />Les meilleurs referer :<br /><br />';
$sql = 'SELECT distinct(referer), count(referer) as nb_referer FROM statistiques WHERE
date LIKE "'.$date_mois.'%" AND referer!="" GROUP BY referer ORDER BY nb_referer DESC
LIMIT 0,15';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($result)) {
$nb_referer = $data['nb_referer'];
$referer = $data['referer'];
echo $nb_referer.' <a href="'.$referer.'" target="_blank">'.$referer.'</a><br />';
}
mysql_free_result($result);
// on recherche les navigateurs et les OS utilisés par les visiteurs (on calcule au
//passage le nombre de page qui ont été chargés avec ces systèmes)
echo '<br />Les navigateurs et OS :<br /><br />';
$sql = 'SELECT distinct(navigateur), count(navigateur) as nb_navigateur FROM
statistiques WHERE date LIKE "'.$date_mois.'%" GROUP BY navigateur ORDER BY
nb_navigateur DESC LIMIT 0,15';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($result)) {
$nb_navigateur = $data['nb_navigateur'];
$navigateur = $data['navigateur'];
echo $nb_navigateur.' '.$navigateur.'<br />';
}
mysql_free_result($result);
mysql_close();
?>
</body>
</html>

Cordialement

Image
bruno
01/08/2010 à 22:04:08
bruno
Membre
Grang merci IBOUANE je vais le faire a la maison et te rendre compte plus tard .

bruno
08/08/2010 à 16:16:51
bruno
Membre
Bonjour IBOUANE; c'est pour lr problème du code des statistiques de la fois passé.actuèlement aucune érreur mais égalment aucune réponse comme avant il y avait quelque reponses et quelque érreurs Voici donc les reponses actuelles:
statistiques Mois
Les statistiques du 08/2010 :

le 1 : 1 pages vues
le 2 : 0 page vue
le 3 : 0 page vue
le 4 : 0 page vue
le 5 : 0 page vue
le 6 : 0 page vue
le 7 : 0 page vue
le 8 : 0 page vue
le 9 : 0 page vue
le 10 : 0 page vue
le 11 : 0 page vue
le 12 : 0 page vue
le 13 : 0 page vue
le 14 : 0 page vue
le 15 : 0 page vue
le 16 : 0 page vue
le 17 : 0 page vue
le 18 : 0 page vue
le 19 : 0 page vue
le 20 : 0 page vue
le 21 : 0 page vue
le 22 : 0 page vue
le 23 : 0 page vue
le 24 : 0 page vue
le 25 : 0 page vue
le 26 : 0 page vue
le 27 : 0 page vue
le 28 : 0 page vue
le 29 : 0 page vue
le 30 : 0 page vue
le 31 : 0 page vue

Soit un total de 1 pages vues par 1 visiteurs.


Les pages les plus vues :

1 /administration/record_stat.php

Les visiteurs les plus connectés :

1 localhost

Les meilleurs referer :


Les navigateurs et OS :

1 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2; AskTB5.6)
 
statistiques jours
Les statistiques du 03/08/2010 :

0H - 1H : 0 page vue
1H - 2H : 0 page vue
2H - 3H : 0 page vue
3H - 4H : 0 page vue
4H - 5H : 0 page vue
5H - 6H : 0 page vue
6H - 7H : 0 page vue
7H - 8H : 0 page vue
8H - 9H : 0 page vue
9H - 10H : 0 page vue
10H - 11H : 0 page vue
11H - 12H : 0 page vue
12H - 13H : 0 page vue
13H - 14H : 0 page vue
14H - 15H : 0 page vue
15H - 16H : 0 page vue
16H - 17H : 0 page vue
17H - 18H : 0 page vue
18H - 19H : 0 page vue
19H - 20H : 0 page vue
20H - 21H : 0 page vue
21H - 22H : 0 page vue
22H - 23H : 0 page vue
23H - 24H : 0 page vue

Soit un total de 0 pages vues par 0 visiteurs.


Les pages les plus vues :


Les visiteurs les plus connectés :


Les meilleurs referer :


Les navigateurs et OS :
 
dont aucun resultats pour avant il y avait quelque résultats Mreci De M'aider encore<couleur valeur="bleu"/>


ybouane
08/08/2010 à 18:50:32
ybouane
Admin
Bonjour,
si j'ai bien compris, les données ne sont pas récupérées.
As-tu un script pour récupérer les données?

Cordialement

Image
bruno
10/08/2010 à 22:11:17
bruno
Membre
bonjour!!!!IBOUANE le premier code fait objet de tout cela Seule certain donnée s'affichait et d'autre présentait les érreurs.je ne sais de quoi vous parlé

ybouane
11/08/2010 à 07:05:49
ybouane
Admin
Bonjour,
Normalement dans un système de statistiques, il y a une page pour afficher les données.(C'est le code que vous m'avez donné)

Mais ces données doivent provenir de quelque part.

Donc il doit y avoir une autre page(code) que vous devez inclure sur toutes les pages de votre site pour enregistrer les données. Ou est ce code?

Cordialement

Image
bruno
21/08/2010 à 22:26:17
bruno
Membre
bonjour IBOUANE!!! J'etait un peu malade .Mais pour le moment je vais reprendre mon projet .surtout le script de statistiques. concernant le code que vous demandiez je vais vous l'envoyer demain , car c'est maintenant que je comprend de quel code il s'agissait. Merci à la prochaine

bruno
26/08/2010 à 22:13:08
bruno
Membre
bonjour IBOUANE!! Voici le code que vous avez demandé<?php
// récupération de l'heure courante
$date_courante = date("Y-m-d H:i:s");
// récupération de l'adresse IP du client (on cherche d'abord à savoir si il est
//derrière un proxy)
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif(isset($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
else {
$ip = $_SERVER['REMOTE_ADDR'];
}
// récupération du domaine du client
$host = gethostbyaddr($ip);
// récupération du navigateur et de l'OS du client
$navigateur = $_SERVER['HTTP_USER_AGENT'];
// récupération du REFERER
if (isset($_SERVER['HTTP_REFERER'])) {
if (eregi($_SERVER['HTTP_HOST'], $_SERVER['HTTP_REFERER'])) {
$referer ='';
}
else {
$referer = $_SERVER['HTTP_REFERER'];
}
}
else {
$referer ='';
}
// récupération du nom de la page courante ainsi que ses arguments
if ($_SERVER['QUERY_STRING'] == "") {
$page_courante = $_SERVER['PHP_SELF'];
}
else {
$page_courante = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
}
// connexion à la base de données
$base = mysql_connect('localhost', 'root', '');
mysql_select_db('statistique', $base);
// insertion des éléments dans la base de données
$sql = 'INSERT INTO statistiques VALUES("", "'.$date_courante.'", "'.$page_courante.'",
"'.$ip.'", "'.$host.'", "'.$navigateur.'", "'.$referer.'")';
mysql_query($sql) or die('Erreur : '.$sql.'<br />'.mysql_error());
// fermeture de la connexion à la base de données
mysql_close();
?>
Merci de m'aider<couleur valeur="bleu"/>

ybouane
27/08/2010 à 01:10:18
ybouane
Admin
Bonjour,
Alors tu dois ajouter ce code dans toutes les pages php de ton site.

Cordialement

Image
bruno
08/09/2010 à 19:56:13
bruno
Membre
merci IBOUANE ca fonctionne parfaitement un grand merci pour tous vos éfforts a
l'endroit des débutants que nous sommes.

Pages: 1