[php/sql]Statistique +record
Yuushi_Sato
Messages postés
107
Statut
Membre
-
Siluni -
Siluni -
Bonjour,
voila j'aimerais savoir comment faire pour afficher :
-le nombre de visiteurs par jour.
-le record par mois.
voici ma table:
Mon enregistrement dans ma bdd:
Ma page de visualisation:
Comment faire?
J'ai besoin de votre aide, merci d'avance.
voila j'aimerais savoir comment faire pour afficher :
-le nombre de visiteurs par jour.
-le record par mois.
voici ma table:
CREATE TABLE 'statistiques' (
'id' int(11) NOT NULL auto_increment,
'date' datetime NOT NULL default '0000-00-00 00:00:00',
'ip' varchar(15) collate latin1_german2_ci NOT NULL default '',
PRIMARY KEY ('id')
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci AUTO_INCREMENT=1 ;
Mon enregistrement dans ma bdd:
$date = date("Y-m-d H:i:s");
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"];
}
include("database.php");
mysql_connect($hosting, $login, $pass) OR die("Erreur de connexion");
mysql_select_db($base) OR die("Erreur de sélection de la base");
$sql = mysql_query("INSERT INTO statistiques VALUES ('', '.$date.', '.$ip.')")or die("Erreur : ".$sql."<br />".mysql_error());
mysql_close();
Ma page de visualisation:
include("database.php");
mysql_connect($hosting, $login, $pass) OR die("Erreur de connexion");
mysql_select_db($base) OR die("Erreur de sélection de la base");
// on cherche le nombre de pages visitées depuis le début (création du site)
$select = mysql_query("SELECT id FROM statistiques")or die ("Erreur : ".mysql_error() );
$total_visitees = mysql_num_rows($select);
mysql_free_result($select);
// on cherche le nombre de visiteurs depuis le début (création du site)
$sql0 = mysql_query("SELECT DISTINCT ip FROM statistiques")or die("Erreur SQL !<br />".$sql0."<br />".mysql_error());
$total_visiteur = mysql_num_rows ($sql0);
mysql_free_result($sql0);
echo "<tr><td align=\"center\">Nbre(s) de Visiteur(s) : <font color=#FF0000><b>".$total_visiteur."</b></font></td></tr>
<tr><td align=\"center\">Nbre(s) Page(s) Vue(s) : <font color=#FF0000><b>".$total_visitees."</b></font></td></tr>";
Comment faire?
J'ai besoin de votre aide, merci d'avance.
A voir également:
- [php/sql]Statistique +record
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Logiciel sql - Télécharger - Bases de données
- Record du monde de personne dans un groupe whatsapp - Guide
- Comment record son ecran pc - Guide
6 réponses
-le nombre de visiteurs par jour.
-le record par mois.
plus trop sur de la seconde mais quelque chose comme ça
SELECT COUNT(*) FROM 'statistiques' WHERE 'date' BETWEEN SUBDATE(NOW(), INTERVAL 1 DAY) AND NOW();
-le record par mois.
SELECT date, MAX(nb) FROM (SELECT COUNT(*) AS nb, date FROM 'statistiques' WHERE 'date' BETWEEN SUBDATE(NOW(), INTERVAL 1 MOUNTH) AND NOW() GROUP BY DATE(date, "%Y-%m-%d"));
plus trop sur de la seconde mais quelque chose comme ça
merci de ta réponse j'ai enfin trouvé
-le nombre de visiteurs par jour.
-le record par mois.
la seconde requete je ne suis pas encore sur on verras dans 1 mois si c'est bon
-le nombre de visiteurs par jour.
$sql1 = mysql_query("SELECT MONTH(date) ip,COUNT(*) FROM statistiques GROUP by ip ;");
$total_visiteur_jour = mysql_num_rows ($sql1);
mysql_free_result($sql1);
-le record par mois.
$sql2 = mysql_query("SELECT date,COUNT(distinct ip),count(ip) FROM statistiques WHERE MONTH(date)=MONTH(CURRENT_DATE() ) GROUP BY DATE(date)");
$total_record = mysql_num_rows ($sql2);
mysql_free_result($sql2);
la seconde requete je ne suis pas encore sur on verras dans 1 mois si c'est bon
-le nombre de visiteurs par jour.
$sql1 = mysql_query("SELECT MONTH(date) ip,COUNT(*) FROM statistiques GROUP by ip ;");
$total_visiteur_jour = mysql_num_rows ($sql1);
mysql_free_result($sql1);
avec ça tu n'as pas le nombre d'utilisateur à la journée, enfin bon, tu vas t'en rendre compte demain
$sql1 = mysql_query("SELECT MONTH(date) ip,COUNT(*) FROM statistiques GROUP by ip ;");
$total_visiteur_jour = mysql_num_rows ($sql1);
mysql_free_result($sql1);
avec ça tu n'as pas le nombre d'utilisateur à la journée, enfin bon, tu vas t'en rendre compte demain
si j'ai vue mon erreur j'ai corriger mais j'ai un probleme avec ta requete sql sur le nbre de visiteur par jour
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour,
voila j'ai un problème sur ma table:
sa rajoute la même ip a chaque page vue, avec la date(h:m:s) différente, totale pour 22 visiteurs déja 385 entrée dans la table, comment y remédier?
Niveaux de comptage par visiteur par jour voici ma requête modifier et opérationnel:
Niveaux record par mois restant a tester debut du mois pour voir:
voila j'ai un problème sur ma table:
CREATE TABLE 'statistiques' (
'id' int(11) NOT NULL auto_increment,
'date' datetime NOT NULL default '0000-00-00 00:00:00',
'ip' varchar(15) collate latin1_german2_ci NOT NULL default '',
PRIMARY KEY ('id'),
KEY 'date' ('date'),
KEY 'ip' ('ip'(10))
) ENGINE=MyISAM AUTO_INCREMENT=385 DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci AUTO_INCREMENT=385 ;
sa rajoute la même ip a chaque page vue, avec la date(h:m:s) différente, totale pour 22 visiteurs déja 385 entrée dans la table, comment y remédier?
Niveaux de comptage par visiteur par jour voici ma requête modifier et opérationnel:
$sql1 = mysql_query("SELECT date,COUNT(distinct ip),count(ip) FROM statistiques WHERE DAY(date)=DAY(CURRENT_DATE()) GROUP BY ip");
$total_visiteur_jour = mysql_num_rows ($sql1);
mysql_free_result($sql1);
Niveaux record par mois restant a tester debut du mois pour voir:
$sql2 = mysql_query("SELECT ip,COUNT(DISTINCT date),COUNT(date) FROM statistiques WHERE MONTH(date)=MONTH(CURRENT_DATE()) GROUP BY ip");
$total_record = mysql_num_rows ($sql2);
mysql_free_result($sql2);
$sql1 = mysql_query("SELECT COUNT(*) FROM 'statistiques' WHERE 'date' > SUBDATE(NOW(), INTERVAL 1 DAY)");
list($total_visiteur_jour) = mysql_fetch_rows ($sql1);
echo $total_visiteur_jour;
modification pour utilisateur different
SELECT COUNT(*) FROM 'statistiques' WHERE 'date' > SUBDATE(NOW(), INTERVAL 1 DAY) GROUP BY ip
pour éviter d'avoir toujours les même IP qui s'insère, insère l'ip 1 seule fois par jour, ou instaure une session
ou modifie la structure comme ceci
CREATE TABLE 'statistiques' (
'id' int(11) NOT NULL auto_increment,
'date_deb' datetime NOT NULL default NOW(),
'date_fin' datetime NOT NULL default NOW(),
'ip' varchar(15) collate latin1_german2_ci NOT NULL default '',
'recurrence' int(11) NOR NULL default 1;
PRIMARY KEY ('id'),
)