Gå til innhold

Antall hits per måned


Anbefalte innlegg

Videoannonse
Annonse

hvis du lagrer dato for treffet som et timestamp, kan du bare ta dagens timestamp minus så mange sekunder du ønsker, og hente ut alle oppføringene som har en høyere datoverdi enn det.

 

Dette gjelder dog bare for den siste måneden, ikke hvilken som helst måned.

 

Funksjoner du muligens for bruk for kan være mktime, date/time og strtotime.

Lenke til kommentar

Bruk denne fir å hente ut for angitt måned:

SELECT SUM(hits) as totalhits FROM links WHERE MONTH(dato) = $month

Forutsatt at datofeltet heter dato, hits feltet hits og tabellen links... og $month er mellom 1 og 12, kan f.eks hentes fra url.. (f.eks $_GET["month"])

 

Du får da antall hits på den måneden vha f.eks. $row["totalhits"]

 

EDIT: Skal du ha inneværende måned:

SELECT SUM(hits) as totalhits FROM links WHERE MONTH(dato) = MONTH(NOW())

Endret av kakkle
Lenke til kommentar

Jeg får det ikke til å funke. Mysql tabellen jeg bruker inneholder 'count' som er hits totalt, og 'date' som er dato den ble opprettet. Det hjelper ikke å hente ut alle verdier som er en måned gamle da 'count' fortsatt vil være av samme verdi.

 

Jeg tenkte på å lage en 'count' tabell med rader fra 1-12 som representerer hits per måned. Men da vet jeg ikke hvordan jeg skal nullstille disse når ett år er gått.

Lenke til kommentar

Okey, da lager jeg en hits tabell og lagrer hits etter måned/år. Når en link klikkes plusses det på et hit for denne måneden. Deretter kan de bare sortes ut på vanlig måte etter måned. Blir litt mye info i tabellen, men en genial måte å sortere etter popularitet.

Lenke til kommentar

Kan jeg spørre hvor mange treff siden drar inn om dagen, ca? Hvis det ikke er tusentalls kan du vel lagre hvert treff som en egen oppføring i databasen i tillegg til å plusse på en total (hvis du måtte ønske det). På den måten kan du gå tilbake til hvilken som helst måned, dag, eller klokkeslett om du måtte ønske.

 

En MySQL tabell blir ikke så veldig sei av å inneholde noen ti-/hundre tusen oppføringer. :-)

Lenke til kommentar

Nei det er ikke snakk om noe voldsom trafikk til å starte med, men det blir fort uoversiktelig. Om hits hadde vært i en egen tabell går det bedre. Føler problemet ligger i spørringen uansett. Fordi det skal gå an å søke etter oppføringer og få dem sortert etter antall hits siste måneden. Dette kan fort bli vrient.

Lenke til kommentar

Det trenger ikke bli så vrient det her. Hvis du ikke vil kjøre en spørring på hele tabellen hver gang du vil ha ut totalt antall treff, lager du en egen tabell der du kun har en oppføring som du øker totalen på.

 

I den "uoversiktelige" tabellen, smeller du inn en linje for hvert treff. Her dytter du inn så mye info som du ønsker, men jeg synes du i allefall bør ha med <id>, <timestamp>, <fullstendig url>, <referende url>.

 

Ønsker du da å hente ut antall besøkende for en gitt måned, teller du bare antall oppføringer med passende timestamp.

 

:)

Lenke til kommentar

Vel, hvis du i én spørring ønsker å hente ut resultatene fra alle måneder, kan det bli litt stress, men kakle gav deg en ålreit løsning på å hente ut en og en måned.

 

Nå er jeg litt rusten i SQL, men dette bør hente ut antall oppføringer for en gitt måned

SELECT COUNT(*) FROM <tabellnavn> where ´timestamp´ >= <starten på måned> AND ´timestamp´ <= <slutten på måned>

 

Evt, hvis du vil bruke alle oppføringene videre i utregninger av noe slag, kan du kjøre samme spørring men bytte ut COUNT(*) med *. Deretter looper du gjennom svaret som normalt via PHP, og putter det pent i et array. Herifra kan du gjøre det meste.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...