Compteur du nombre de visite sur chaque page (enregistrees dans BDD)

payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 - 5 oct. 2009 à 17:50
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 - 12 oct. 2009 à 10:37
Bonjour,

J'ai un site php, il y a un traceur sur chacune de mes pages, qui sont enregistrées dans ma BDD à la seconde près; avec le nom de la page associée, et je voudrais faire un pitit programme vite fait qui me compterais le nom de fois où un visiteur est allé sur la page en tout. (pour le tri /jour ou /mois je me débrouille j'ai déjà tout fait)

en gros j'ai ma colonne des pages vues, et ma colonnes des adresse IP qui ont vues ces pages, et je ne sais pas comment adapter ma requete SQL pour faire un ptit compteur de visite par page


du style :

/index.php : 255 visites
/html/produits.php : 203 visites
etc...


merci bcp.

4 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
5 oct. 2009 à 20:13
Salut,

Tout simplement avec un truc comme ça, non ?
$sql = "SELECT COUNT(*) FROM taTable 
WHERE ip = '".$_SERVER['REMOTE_ADDR']."' AND
page = '".$page."'";


... à savoir que c'est à mon avis une mauvaise idée de se baser uniquement sur l'ip, car tout le monde n'est pas en IP fixe. Au pire, si il n'y a pas de système d'authentification, utilise un couple cookie / IP.
Par ailleurs il serait préférable d'avoir une table qui regroupe, par exemple, le nombre de visites par jour/IP (ou semaine) Sans cela ça risque d'être rapidement très lourd pour une plus value souvent nulle.

Cordialement,

Kohntark -
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
12 oct. 2009 à 09:56
Hello !

Arf bah disons que j'imaginais un truc où il n'y a pas de code en dur.
Bah oui la requete c'est à peu près ça, mais ce que je me demandais c'est comme avoir $âge dynamiquement
Car dans ton exemple je suis obligé de rentré $page manuellement si ne je ne me trompe pas.

Et merci pour la remarque sur la BDD, je songerais peut etre effectivement à la modifier complètement plus tard, mais pour le moment je dois faire avec ce que j'ai :(

Bon, je vais me creuser encore un peu.
Merci :)
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
12 oct. 2009 à 10:34
en fait, j'aimerais placer ceci, mais ça ne marche pas :

$sql = "select PAGE from journaux where TIMESTAMP >= '".$datemini."' AND TIMESTAMP < '".$datemaxi."' ";
$sql.= "AND IPV4 NOT LIKE '192.168.100%' AND FQDN NOT LIKE '%societe0%' AND FQDN NOT LIKE '%societe1%' order by PAGE LIMIT1";


ça me mets :
Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Syntaxe incorrecte vers 'LIMIT1'., SQL state 37000 in SQLExecDirect in C:\Programmes\wampserver2.0c\page.php on line 216


alors que quand je mets
$sql = "select PAGE from journaux LIMIT1";

ça ne râle pas !

D'où vient mon pb ?

Je voudrais prendre toutes les pages visitées de talle date à telle date si l'IP et le FQDN ne provient de de chez nous.

Je rajoute limit 1 pour qu'il ne prenne qu'une fois chacune des pages enrengistrées. (tu me dis si je me trompe...)

Et ensuite je n'ai plus qu'à faire une autre requete dans cette requete pour compter le nombre de fois où cette page apparait. (je verrais bien quand j'en erais là lol)

Merci.

Ju'
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
12 oct. 2009 à 10:37
ma premiere requete n'est pas compelte désolé :

$sql = "select PAGE from journaux where TIMESTAMP >= '".$datemini."' AND TIMESTAMP < '".$datemaxi."' ";
$sql.= "AND IPV4 NOT LIKE '192.168.100%' AND FQDN NOT LIKE '%carri%' AND FQDN NOT LIKE '%digitechnic%' order by PAGE LIMIT1";
$res = odbc_exec($connect,$sql);
while (odbc_fetch_row($res))
{
  $page = odbc_result( $res, "PAGE" );
  echo "PAGE : ".$page."
";
}
0
Rejoignez-nous