Record d'IP par mois

Résolu/Fermé
prositef - 2 févr. 2013 à 16:04
 prositef - 5 févr. 2013 à 18:55
Bonjour à tous.

J'ai une base de données mysql dont une table (stats) comporte 5 champs:
1 "ID" 1 "IP" 1 "MOIS" en 2 chiffres 1 "MS" mois en lettres 1 "AN" année.

Ma demande est la suivante, je cherche à faire un script de record d'IP par mois et afficher le mois du record.

J'ai fouillé sur le net mais je n'est rien trouvé qui corresponde.

Je vous remercie pour votre réponse.

2 réponses

Panoramix. Messages postés 2655 Date d'inscription mardi 13 avril 2010 Statut Membre Dernière intervention 28 décembre 2016 1 096
4 févr. 2013 à 14:57
Salut,

Premièrement, ta table est mal conçue ; pourquoi mettre un champs "mois en lettre" et un champs "mois en chiffre" ? Un simple champs mois suffit.

Ensuite, enregistrer les visites par mois constitue une perte d'informations. Comment tu fais après si tu veux faire des statistiques par jours ?

En résumé, tu crées une table avec les champs :

--> ID (numérique, PK, auto inc.)
--> DateJour (date, UK, non null)
--> NB_Visites (numérique, default 0)

Dans ton script (PHP je suppose ?), tu fais un test pour voir si le jour actuel est présent dans la base de données. Si c'est le cas, tu incrémentes le champs NB_Visites, le cas échéant, tu crées le jour et tu incrémentes NB_Visites.

Pour l'affichage, c'est un simple SELECT de NB_Visites avec une fonction de conversion sur DateJour pour tirer le mois/jour/année.

Après, tu peux améliorer le système avec une gestion des IP (par exemples pour logguer les adresses IP). Dans ce cas, je partirais plutôt sur la structure suivante :

--> ID (numérique, PK, auto inc.)
--> DateJour (date, non null)
--> AdresseIP (varchar, non null)

Chaque IP connectée est enregistrée dans la BDD avec sa date. Après, si tu aimerais qu'une IP ne puisse être enregistrées qu'une seule fois par jour, il faut mettre un index multichamps unique sur DateJour et AdresseIP.

Pour l'affichage, c'est un SELECT COUNT avec une fonction de conversions et un petit test pour tirer tirer le mois/jour/année.
0
Bonjour à tous.
Merci pour ces renseignements, je vais tester les deux options et vous tiens informé du résultat.
Bonne journée.
J.Secret
0
RE:
Bonjour.
La personne qui m'a demandé le script vient de me dire de laisser tomber.
Bien la peine de faire des recherches mais bon !
Ceci dit, je garde vos idées sous le coude, elle me serviront certainement d'ici peu.
Encore merci pour tout.
J.Secret
0