Avatar billede neonman Nybegynder
08. august 2005 - 09:18 Der er 19 kommentarer og
1 løsning

Statestik problemer

Hvis jeg nu sider og er ved at lave et statestik system og gerne sku ha fat i hvilken nogen sider folk kommer fra... så skal den jo updatere MEN surfer de vider rundt på den side der kommer til som benytter det her statestik system så skal den ikke updater igen hvordan får jeg fat i URL'en og tjecker hvor vidt den indholder min adresse eller ej ?...


hvordan tjecker jeg hvilken nogen sider der bliver loadet flest gange ? er det med phpself eller ?
Avatar billede neonman Nybegynder
08. august 2005 - 09:20 #1
Og hvordan er det nuy man bruger i SQL sådan den selv sletter data efter fx. 24 timer sådan alt data ikke er mere end 24timer gamelt :)
Avatar billede Slettet bruger
08. august 2005 - 10:35 #2
Du laver en kolonne i din tabel der hedder "tid", hvori du laver et unix timestamp (time()). I toppen af din side kan du så lave en:


$mintid = time() - (60*60*24)
mysql_query("DELETE FROM COUNTER WHERE tid<=". $mintid);
Avatar billede Slettet bruger
08. august 2005 - 10:36 #3
Der mangler lige semikolon på min første linie..
Avatar billede Slettet bruger
08. august 2005 - 10:37 #4
Og det med hvilke sider der er blevet loadet flest gange.. Hvis du bruger variabler (index.php?side=forside eller index.php?side=24), kan du jo bare indsætte $_GET['side'].  Hvis du, derimod, bruger forskellige sider (index.php, login.php osv..), kan du med fordel bruge $_SERVER['PHP_SELF'] - eller $_SERVER['REQUEST_URI'], der også tager variabler med.
Avatar billede neonman Nybegynder
08. august 2005 - 10:38 #5
Kan jeg ikke få MySQL selv til at slette det UDEN at sku ha et script til det ? :D
Avatar billede Slettet bruger
08. august 2005 - 10:41 #6
Nej. Så skal du have lavet nogle cronjobs e.l., men det her er _langt_ hurtigere - og sikrer at der med jævne mellemrum bliver slettet (når der er brugere på siden).
Avatar billede neonman Nybegynder
08. august 2005 - 10:44 #7
hmmm... ja men den skal jo selv del. hele tiden ca hvært 12 time skal des unikke ip daffe of fra databasen
Avatar billede Slettet bruger
08. august 2005 - 10:53 #8
Det forstår jeg ikke helt.
Avatar billede neonman Nybegynder
08. august 2005 - 10:54 #9
altås hvis jeg har noget data der er mere end 12 timer gammelt skal det bare forsvine.... og ikke når et script køre...
Avatar billede Slettet bruger
08. august 2005 - 11:04 #10
Det kan ikke lade sig gøre.. Men det her "script" gør, at når det køres, sletter det alle rækker der er mere end 24 timer gamle..


$mintid = time() - (60*60*12)
mysql_query("DELETE FROM COUNTER WHERE tid<=". $mintid);

Den sletter alle der er over 12 timer gamle..

Det kan godt laves i ren MySQL, men det skal stadig køres fra et script.
Avatar billede neonman Nybegynder
08. august 2005 - 11:08 #11
arrr :( skod nok... kan laves som .bat fil så ? sådan at den sender en sql command til sql serveren hver uge måske ? og ryder op efter sig selv ? :)
Avatar billede Slettet bruger
08. august 2005 - 11:10 #12
Det ved jeg ikke, Så er du jo ikke rigtigt i php-kategorien mere ;o)

Men det kan godt lade sig gøre at lave et cronjob der gør det - jeg fik bare et indtryk af, at du ville have gjort det jævnligt - hvilket mit "script" gør.
Avatar billede neonman Nybegynder
08. august 2005 - 11:17 #13
jeps... men problemert at vi har måske 200 sites der skal bruge det statestik program så bliver der jo monster mange loads hvis vi har måske en små 5.000 til 10.000 visninger pr dag eller måske mere.... :) mere for at skåne serveren bare en lille smule nu :)
Avatar billede mysli Nybegynder
08. august 2005 - 11:28 #14
neonman - der vil jo alligevel blive mange loads/kald til db. Det kald er jo bare en lille ting
Avatar billede Slettet bruger
08. august 2005 - 11:36 #15
Det kan ikke gøres på andre måder, hvis du vil holde den jævnligt opdateret. Du kan sagtes sørge for, at den kun kører scriptet én gang om ugen, men hvad hjælper det så, at den sletter alle der er over 12 timer gamle? ;o)
Avatar billede neonman Nybegynder
08. august 2005 - 12:02 #16
hæhæ fordi folk ikke må være unik besøgen hvis de har besøgt siden inde for 12 timer :p.... hæhæ derfor :D
Avatar billede Slettet bruger
08. august 2005 - 12:32 #17
oki ;o)  Tak for point.
Avatar billede neonman Nybegynder
08. august 2005 - 13:41 #18
np :D
Avatar billede rasmus-madsen Nybegynder
08. august 2005 - 16:00 #19
Du kan da godt lave et cronjob med

$mintid = time() - (60*60*12)
mysql_query("DELETE FROM COUNTER WHERE tid<=". $mintid);

Du skal bare på en rigtigt server.
Avatar billede Slettet bruger
08. august 2005 - 20:21 #20
Det har jeg jo også sagt..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester