08. august 2005 - 09:18Der 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 ?
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 :)
Synes godt om
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);
Synes godt om
Slettet bruger
08. august 2005 - 10:36#3
Der mangler lige semikolon på min første linie..
Synes godt om
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.
Kan jeg ikke få MySQL selv til at slette det UDEN at sku ha et script til det ? :D
Synes godt om
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).
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 ? :)
Synes godt om
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.
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 :)
neonman - der vil jo alligevel blive mange loads/kald til db. Det kald er jo bare en lille ting
Synes godt om
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)
$mintid = time() - (60*60*12) mysql_query("DELETE FROM COUNTER WHERE tid<=". $mintid);
Du skal bare på en rigtigt server.
Synes godt om
Slettet bruger
08. august 2005 - 20:21#20
Det har jeg jo også sagt..
Synes godt om
Ny brugerNybegynder
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.