Iets opslaan dmv de tijd/datum

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sjoerdje Visser

sjoerdje Visser

21/04/2013 08:49:45
Quote Anchor link
Ik weet niet of het mogelijk is .
misschien is het ook wel een domme vraag ;)

Maar ik wil graag een Counter maken die na de einde van de maand ( daar maak ik dan even uitgebreid script voor dit heb ik al uitgevogeld)
maar is het mogelijk om op een bepaalde tijd en dag de gegevens op te slaan?

want ik weet dat een php script pas uitgevoerd word als het bestand geladen word.

Ik weet niet of jullie tips hebben? hoe ik dit beste kan aanpakken?
 
PHP hulp

PHP hulp

17/11/2024 22:51:11
 
Obelix Idefix

Obelix Idefix

21/04/2013 09:22:43
Quote Anchor link
Zoek eens op Cronjob
 
Sjoerdje Visser

sjoerdje Visser

22/04/2013 09:39:06
Quote Anchor link
Obelix en Idefix op 21/04/2013 09:22:43:
Zoek eens op Cronjob


Bedankt! ik denk inderdaad dat ik hier erg ver mee kom bedankt!
 
Kris Peeters

Kris Peeters

22/04/2013 10:07:48
Quote Anchor link
Meestal wanneer mensen cronjob voorstellen ... kijk eerst eens of het echt nodig is.
(e-mails sturen op een specifiek moment, is zowat het enige waarbij ik een meerwaarde zie voor cronjob. Meestal kan je perfect alles zo instellen dat de volgende gebruiker die op de site komt, de aangepaste situatie ziet)

Wat moet er precies gebeuren op dat specifieke moment?
 
Sjoerdje Visser

sjoerdje Visser

22/04/2013 11:53:28
Quote Anchor link
Kris Peeters op 22/04/2013 10:07:48:
Meestal wanneer mensen cronjob voorstellen ... kijk eerst eens of het echt nodig is.
(e-mails sturen op een specifiek moment, is zowat het enige waarbij ik een meerwaarde zie voor cronjob. Meestal kan je perfect alles zo instellen dat de volgende gebruiker die op de site komt, de aangepaste situatie ziet)

Wat moet er precies gebeuren op dat specifieke moment?


Ik een de bezoeker van de website per maand opslaan in de database.
dus om 23:59 van laatste dag van de maand opslaan in de database.

normaal zou je zou ik dan gewoon de datum controleren en de tijd en dan opslaan als het die tijd is. maar dan zou er precies op dat moment iemand online moeten zijn om het script te laden...
 
Bas IJzelendoorn

Bas IJzelendoorn

22/04/2013 12:22:52
Quote Anchor link
Maar wat ik van je begrijp is dat je wilt weten dmv van een counter hoeveel bezoekers je hebt gehad in een bepaalde maand.

Dit kan prima door enkel in de database een ID, IP en date/time op te slaan. En vervolgens kan je in je query sorteren en groeperen per maand.
 
Willem vp

Willem vp

22/04/2013 12:25:20
Quote Anchor link
Sjoerdje Visser op 22/04/2013 11:53:28:
Ik een de bezoeker van de website per maand opslaan in de database.

Probeer je probleem stelling eerst eens in het Nederlands te formuleren, want ik begrijp werkelijk niet wat je hier zegt. Geldt ook voor je eerste bericht, trouwens...

Een heldere probleemstelling is het halve werk. Een probleemstelling als deze is het dubbele. En aangezien ik niet van werken hou... ;-)
 
Sjoerdje Visser

sjoerdje Visser

22/04/2013 13:12:28
Quote Anchor link
Bas IJzelendoorn op 22/04/2013 12:22:52:
Maar wat ik van je begrijp is dat je wilt weten dmv van een counter hoeveel bezoekers je hebt gehad in een bepaalde maand.

Dit kan prima door enkel in de database een ID, IP en date/time op te slaan. En vervolgens kan je in je query sorteren en groeperen per maand.


mmm ja inderdaad thanks! :)

Toevoeging op 22/04/2013 13:32:40:

Willem vp op 22/04/2013 12:25:20:
Sjoerdje Visser op 22/04/2013 11:53:28:
Ik een de bezoeker van de website per maand opslaan in de database.

Probeer je probleem stelling eerst eens in het Nederlands te formuleren, want ik begrijp werkelijk niet wat je hier zegt. Geldt ook voor je eerste bericht, trouwens...

Een heldere probleemstelling is het halve werk. Een probleemstelling als deze is het dubbele. En aangezien ik niet van werken hou... ;-)


nja de rest snapt me gelukkig wel...
maar ik wil de bezoekers aantal per maand opslaan...
dus laatste dag van de maand om 23:59 opslaan in database.
 
Bas IJzelendoorn

Bas IJzelendoorn

22/04/2013 13:48:19
Quote Anchor link
Met de functies COUNT en BETWEEN in SQL kan je makkelijk uitrekenen hoeveel waardes er tussen twee datums en tijden zijn
 
Kris Peeters

Kris Peeters

22/04/2013 13:54:39
Quote Anchor link
Hoogs waarschijnlijk zal blijken dat cronjob niet nodig is, wanneer dit topic als "opgelost" komt.

Nu, er moeten wel nog een aantal dingen verduidelijkt worden.

Wat is die counter? Ik veronderstel een database tabel met HITS.
Hoe zit dat precies?
(Geef eventueel de kolommen/velden van die tabel)

En dus ... jouw plan was om net op de overgang naar een nieuwe maand die counter te lezen; het aantal HITS te kopiëren naar een andere tabel. En die tabel wordt dan verder gebruikt om te weten hoeveel gebruikers er waren, de afgelopen maanden.

We zullen (waarschijnlijk) tonen hoe dat op een andere manier hoort te gebeuren.
 
G P

G P

22/04/2013 14:19:47
Quote Anchor link
Ik heb het ooit gedaan gehad zonder database, voor zover ik het mij herinner had ik het gedaan met een txt-document waarin steeds IP werd opgeslagen. Dan door middel van functies de IP's uitlezen en optellen.
Elke IP was is hit.
Bijv:
127.0.0.1
127.0.0.1
127.0.0.0

Bij het uitlezen werd dan getoond dat er 3 paginahits en 2 unieke bezoekers waren.
Elke maand werd dit txt-document geledigd.
Het is ook mogelijk om elke maand een nieuwe txt-document aan te maken 'bezoeker'.date('m-Y').'.txt';
 
Willem vp

Willem vp

22/04/2013 22:05:07
Quote Anchor link
Sjoerdje Visser op 22/04/2013 13:12:28:
Willem vp op 22/04/2013 12:25:20:
Sjoerdje Visser op 22/04/2013 11:53:28:
Ik een de bezoeker van de website per maand opslaan in de database.
Probeer je probleemstelling eerst eens in het Nederlands te formuleren, want ik begrijp werkelijk niet wat je hier zegt.

nja de rest snapt me gelukkig wel...

Dat verbaast me oprecht, want ik vraag me af of je voor jezelf wel helemaal helder voor ogen hebt wat je wilt. Daarover later meer. Eerst wil ik even uitweiden over je taalgebruik. Dat is overigens niet om je af te zeiken, want dan zou mijn tekst een heel stuk korter zijn. ;-)

Taal is de basis van programmeren. We hebben het niet voor niets over een programmeertaal. In een natuurlijke taal kom je nog wel weg met onduidelijke formuleringen omdat daar meer factoren een rol spelen dan je formulering alleen, maar in een computertaal is het essentieel om zeer zorgvuldig te formuleren wat je bedoelt. Ik ben in de bijna 30 jaar dat ik programmeer dan ook nog geen enkele goede programmeur tegengekomen die een slechte taalbeheersing heeft. (En in mijn vorige baan werkte ik in een bedrijf met zo'n 1200 programmeurs, dus ik heb aardig wat vergelijkingsmateriaal.)

In mijn vorige bericht zei ik dat een goede formulering het halve werk is. Dat is misschien nog een beetje onderschat. Wanneer de probleemstelling vaag is, is het aantal mogelijke oplossingen groot. De kans dat je een verkeerde oplossing kiest dus ook. Als aan het eind van je codeerwerk blijkt dat je een verkeerde oplossing hebt gekozen, moet je weer een aantal stappen terug en een deel van je werk (of als je pech hebt alles) overnieuw doen. En dat proces kan zich daarna nog een paar keer herhalen.

Als je aan het begin, dus bij het beschrijven van je wens of probleem, meteen goed formuleert, is de kans dat je de juiste oplossing kiest veel groter. En aan de hand van een goede beschrijving kun je zelfs bijna meteen de juiste programmacode opschrijven.

Laten we eens kijken naar wat je in je eerste bericht schreef:
Quote:
ik wil graag een Counter maken die na de einde van de maand ( daar maak ik dan even uitgebreid script voor dit heb ik al uitgevogeld)

Okay. Je wil een counter maken. Punt. Je beschrijft niet wát je wilt counten. Het aantal kilowattuur dat je computer heeft verbruikt? Het aantal CPU-seconden? Het aantal geüploade bestanden? Ik heb wer-ke-lijk geen idee wat je hier bedoelt. (En nee, in de rest van je bericht staat het ook niet.)

Het enige wat je zegt is dat hij na het einde van de maand iets moet doen. Op de eerste dag van de volgende maand dus. En dat klopt dan weer niet met wat je in een later bericht schrijft, namelijk dat het aan het eind van de laatste dag van de maand uitgevoerd moet worden.

Twee berichten later schrijf je:
Quote:
Ik een de bezoeker van de website per maand opslaan in de database.
dus om 23:59 van laatste dag van de maand opslaan in de database.

"Ik een de bezoeker van de website per maand opslaan." Het zou uit een liedje van John Ewbank kunnen komen. ;-) Maar goed, laten we aannemen dat je "wil" bedoelde in plaats van "een", dan nog snap ik niet helemaal wat je wilt. Dat maak je iets duidelijker in je laatste bericht:
Quote:
maar ik wil de bezoekers aantal per maand opslaan...

Nu begin ik het een klein beetje te begrijpen. Je wilt een teller maken die het aantal bezoekers per maand telt (en dat opslaan in de database). Duidelijk.

Nou ja, toch niet helemaal. Want wat versta je onder een bezoeker?

Je zou elke pageview kunnen tellen als een bezoeker. Maar als iemand vijf keer achter elkaar de pagina herlaadt, telt dat dan als vijf bezoekers? En wat als hij achter elkaar vijf verschillende pagina's bezoekt? Vijf bezoekers of slechts één? Of telt het pas als een nieuwe bezoeker als hij na minimaal een bepaalde tijd (bijvoorbeeld een uur) opnieuw je site bezoekt? Of wil je het aantal unieke bezoekers per dag tellen, ongeacht hoeveel pagina's ze hebben bekeken?

Als je iets anders kiest dan het aantal pageviews, hoe ga je dan bepalen of iemand dezelfde bezoeker is? Ga je kijken naar het IP-adres? Dat kan wisselen. Als ik de trein van Vlissingen naar Groningen pak, krijgt mijn telefoon in de paar uur die mijn reis duurt een stuk of 300 verschillende IP-adressen. En de andere kant op kan het ook: twee hits van hetzelfde IP-adres kunnen best van twee verschillende bezoekers zijn. Je laptop, desktop, smartphone, tablet, Playstation en TV met internet-aansluiting gebruiken naar het internet toe allemaal hetzelfde IP-adres (van je router). En binnen bedrijven wordt vaak ook gebruik gemaakt van een proxy server waardoor alle medewerkers hetzelfde externe adres hebben. Een IP-adres is dus volledig onbetrouwbaar voor dit soort statistieken.

Voor meer nauwkeurigheid zou je dus met sessies of cookies moeten gaan werken. Maar als iemand dan met een laptop, smartphone en tablet naar je site gaat, telt dat als drie bezoekers, terwijl je dat misschien als één bezoeker zou willen tellen. In dat geval zou je dus juist wél naar het IP-adres moeten kijken.

En als je aan het eind van de maand je statistieken hebt gegenereerd, wat wil je dan doen met de ruwe gegevens? Weggooien? Dan had je beter gewoon een tellertje kunnen maken dat je bij elke hit ophoogt. Bewaren? Dan hoef je de totalen niet op te slaan in je database, want die zijn te genereren.

Allemaal keuzes die je moet maken en die niet alleen bepalen hoe je je code moet schrijven, maar zelfs hoe je je gegevens moet opslaan in de database. En dan heb ik het niet eens gehad over het doel waarom je die getallen wilt hebben. Is het om een derde partij een factuur te sturen? Dan kan het heel veel verschil maken hoe die totalen tot stand zijn gekomen. Of is het alleen maar om een globale indruk te krijgen hoe populair je site is? Of ga je op basis van die getallen bepalen hoeveel capaciteit je moet inkopen bij je provider?

Uit je probleemstelling wordt dit alles niet duidelijk. En toch zijn het noodzakelijke gegevens om te bepalen wat je gaat schrijven en hoe. En dan hebben we het nu alleen nog maar over iets simpels zoals een gebruikerstellertje. Dus ja, ik ben echt verbaasd dat er mensen zijn die denken te weten wat jij wilt hebben.
Gewijzigd op 22/04/2013 23:09:57 door Willem vp
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.