Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/04/2006, 19h13   #1
Invité régulier
 
Inscription : mars 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 23
Points : 7
Points : 7
Envoyer un message via MSN à Ronan.f Envoyer un message via Skype™ à Ronan.f
Par défaut [Conception] Gerer les dates et archives avec php

Bonjour,

Je me développe un petit script de stats de robots en php , pour gerer les visites des principaux robots, je procède comme cela :

Si le user-agent commence par 66.249., alors c'est un robot google , je fait une nouvelle entrée dans la table avec :

-- id_bot
-- bot_user_agent
-- bot_name
-- bot_url
-- bot_date (date)
-- bot_heure (heure)

Voila je voudrais repartir a zero chaque mois , comment archiver pour que les données soit encore consultables ?

Comment trier avec selon le mois ? ( Faire une entrée MOIS ? )

Merci de m'eclairer , j'espere avoir été clair , c'est mon deuxieme message !

Cordialement Ronan

PS : si vous avez des conseils
Ronan.f est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2006, 19h18   #2
Membre actif
 
Avatar de wdionysos
 
Frederic
Consultant informatique
Inscription : novembre 2003
Messages : 222
Détails du profil
Informations personnelles :
Nom : Frederic
Âge : 36
Localisation : Luxembourg

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : novembre 2003
Messages : 222
Points : 154
Points : 154
Envoyer un message via MSN à wdionysos Envoyer un message via Yahoo à wdionysos
salut,

ou stocke tu tezs information sur les bot ?

dans un fichier une base de données ??
__________________
Je ne voudrais pas faire partie d'un club qui voudrait m'avoir moi pour membre.... [Grouchot Marx]
Mais en tant que Marxiste, je playdoye pour le travail communautaire. C'est un paradoxe olympien ! Comprend qui peut !!!
wdionysos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2006, 19h40   #3
Invité régulier
 
Inscription : mars 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 23
Points : 7
Points : 7
Envoyer un message via MSN à Ronan.f Envoyer un message via Skype™ à Ronan.f
Je pense une base SQL
Ronan.f est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2006, 20h36   #4
Membre actif
 
Avatar de wdionysos
 
Frederic
Consultant informatique
Inscription : novembre 2003
Messages : 222
Détails du profil
Informations personnelles :
Nom : Frederic
Âge : 36
Localisation : Luxembourg

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : novembre 2003
Messages : 222
Points : 154
Points : 154
Envoyer un message via MSN à wdionysos Envoyer un message via Yahoo à wdionysos
salut

Dans ce cas je ne comprends pas trop tes difficultés,

1 solution:
tu peux implementer un systeme de calendrier et ajouter a ta clause where de ta requete un select sur ton champs date qui dans php est toujour le mois en cour du calendrier ou les 30 derniers jours...

2 solution:
tu peux créer une table visite_archive et dans ce cas il te faut une routine soit un script php declencher sur une date soit une procedure stockée sur ta base ( ca depent des possibilité de tonn sgbd.

3solution : la plus economique en memoire, tu peux lorsque le mois est passé ecrire dans un fichier le contenu de ta table, et le recharger juste a la demande, je ne sais plus la syntaxe exacte mais il existe aussi une fonction php pour charger une table de bd a partir d'un fichier...


WD
__________________
Je ne voudrais pas faire partie d'un club qui voudrait m'avoir moi pour membre.... [Grouchot Marx]
Mais en tant que Marxiste, je playdoye pour le travail communautaire. C'est un paradoxe olympien ! Comprend qui peut !!!
wdionysos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2006, 20h42   #5
Invité régulier
 
Inscription : mars 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 23
Points : 7
Points : 7
Envoyer un message via MSN à Ronan.f Envoyer un message via Skype™ à Ronan.f
Merci beaucoup

Deuxieme petite question , je sais que google a des ip commencant par 66.249

Comment tester si une ip commence par 66.249 ?

Merci d'avance , Ronan
Ronan.f est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2006, 22h57   #6
Membre actif
 
Avatar de wdionysos
 
Frederic
Consultant informatique
Inscription : novembre 2003
Messages : 222
Détails du profil
Informations personnelles :
Nom : Frederic
Âge : 36
Localisation : Luxembourg

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : novembre 2003
Messages : 222
Points : 154
Points : 154
Envoyer un message via MSN à wdionysos Envoyer un message via Yahoo à wdionysos
je n'ai jamais travaillé sur cette problematique des robot mais la question vaut pour toute recherche de sous chaine dans une chaine.

si tu recupere un string contenant l'IP dans une variable $ipbot par ex

tu peux faire un :
Code :
1
2
 
$identip = substring ($ipbot, 0,6);
avec cela tu lui dit de prendre le contenu de $ipbot à partir du caractère 0 sur une longeur de 6 caractères et de mettre ce resultat dans $identip.

apres tu test :
Code :
1
2
3
4
 
if ($identip == "66.249"){
      $botname = 'google';
}
etc ...

WD

sinon sait tu qu'il existe de tres bon outils libres a integrer dans ton site et qui font le travail de statistique pour toi, la plupart des libre propose leur code source, tu peux l'utiliser tel quel ou le modifier si tu t'en sens capable pour l'adapter exactement a tes besoins... pourquoi réinventer la roue ?
__________________
Je ne voudrais pas faire partie d'un club qui voudrait m'avoir moi pour membre.... [Grouchot Marx]
Mais en tant que Marxiste, je playdoye pour le travail communautaire. C'est un paradoxe olympien ! Comprend qui peut !!!
wdionysos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2006, 23h20   #7
Invité régulier
 
Inscription : mars 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 23
Points : 7
Points : 7
Envoyer un message via MSN à Ronan.f Envoyer un message via Skype™ à Ronan.f
Je m'entraine au php , moi j'ai fait comme ca


Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
//ip google
$google1 = "66.249";
 
if (preg_match("/$google1/", "$ip")) 
{
$google = true;
} 
else 
{
$google = "false";
}
Ca marche niquel
Ronan.f est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2006, 23h39   #8
Membre actif
 
Avatar de wdionysos
 
Frederic
Consultant informatique
Inscription : novembre 2003
Messages : 222
Détails du profil
Informations personnelles :
Nom : Frederic
Âge : 36
Localisation : Luxembourg

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : novembre 2003
Messages : 222
Points : 154
Points : 154
Envoyer un message via MSN à wdionysos Envoyer un message via Yahoo à wdionysos
oui bien sur ca marche aussi, bravo !

tu utilise une autre des nombreuses fonctions de manipulation de chaines de caracteres qui sont tous tres puissante et nombreuse.

mais juste comme cela comme tu debutes, prends tout de suite les bonne habitude avec la gestion de ta memoire

quand tu fais un preg_match() l'interpreteur recherche le motif en parametre 1 dans le string en parametre deux mais ca veut dire aussi que si ton string est tres long il va aller jusqu'au bourt de la chaine pour trover le motif meme s'il est au debut de celle ci..

avec substring, il va aller au point indiquer en param deux et sur la longueur en param 3, ce qui est plus rapide et coute moins de memoire...

utilise plutot match() si tu ne connais pas la forme de ta chaine ce qui n'est pas ton cas, tu sais que c'est une ip et comment une adresse ip est normalisé, bien sur dans l'absolu t'est chaine sont courte et tu ne verra sans doute pas de différence, mais quand meme...

travaillons intelligement ne coutes pas plus cher !

WD

ps/ edit : SI TU ES CONTENT? FRAPPES DANS TES MAINS !!!
ET MET TON POST RESOLU ENSUITE !!!
__________________
Je ne voudrais pas faire partie d'un club qui voudrait m'avoir moi pour membre.... [Grouchot Marx]
Mais en tant que Marxiste, je playdoye pour le travail communautaire. C'est un paradoxe olympien ! Comprend qui peut !!!
wdionysos est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h57.


 
 
 
 
Partenaires

Hébergement Web