Ik zou maandelijks een reset moeten uitvoeren van iets in mijn database. Alleen heeft mijn host geen 'cronjob dingie'. Zijn er ook andere manieren van een maandelijkse reset te houden?
Mvg, Jonathan
?Onbekende gebruiker
07-12-2010 23:54
Jonathan Plas op 07/12/2010 23:51:52
Maar toch moet hij gereset worden ook al vind jij van niet Karl :p Dat is net men vraag, hoe ik dit het best zou doen.
Greetz Jonathan
Door het niet te doen.
Waarom moet die dan per se gereset worden?
Omdat ik iedere maand een top 10 moet selecteren hieruit. Na dat deze top 10 opgeslagen is wil ik de 'in' terug naar 0 zetten, zodat iedereen weer gelijke kansen heeft om op het einde van volgende maand in de top 10 te staan ;-)
Neem me dit nu niet kwalijk Karl, maar je bent niet een echt een grote hulp, je stuurt me gewoon een link naar functies in mysql, is niet echt helpen.
Toch bedankt om tijd vrij te maken voor me ;-)
Mvg Jonathan
?Onbekende gebruiker
08-12-2010 00:04
Ik ga je natuurlijk niet voorzeggen hoe je die query moet schrijven, ik geef je alleen maar de tools om het te schrijven...
Als scripter zou je dan zelf moeten kunnen uitvinden hoe je dat zou moeten doen.
Als ik het zou weten dan zou ik het niet vragen he Karl :D
Je hebt verschillende soorten mensen.
- Mensen die leren op jou manier
- Tamme mensen
- Mensen die leren door voorbeelden te zien
Ik ben die laatste. Maar ik kan je gerust begrijpen dat hier veel 'leechers' (het 2de) zitten die enkel van jouw kennis misbruik willen maken.
Uit je vrij vage omschrijving maak ik op dat je een tabel hebt met 1 rij, waar een getalletje in staat die het aantal bezoeken per maand bijhoudt?
Zoiets dus:
+-------+
| tabel |
+-------+
|id |
|in |
+-------+
Als dat zo is, is de simpelste oplossing een kolom erbij zetten:
+-------+
| tabel |
+-------+
|id |
|maand |
|in |
+-------+
In maand vul je dat het getalletje van de maand in (in php date("m") dacht ik, kan ook in sql met date/time-functions).
In plaats van die ene rij updaten, update je gewoon de rij met de huidige maand. Als er niets wordt bewerkt (ofwel; als mysql_affected_rows() een waarde 0 teruggeeft), betekent het dat je in een nieuwe maand zit, en dan voeg je even een rij toe.
Overigens is dit alles ervan uitgaande dat je het systeem gebruikt zoals ik het interpreteer. Al zou je het aantal bezoeken per gebruiker willen bijhouden kan dat ook makkelijk, is gewoon nog een kolom erbij, en 2 voorwaarden in je query (WHERE ... AND ...).
Hopelijk geeft dit je genoeg goede info om verder te kunnen.
?Onbekende gebruiker
08-12-2010 08:45
Marco van Oort op 08/12/2010 07:27:24
Uit je vrij vage omschrijving maak ik op dat je een tabel hebt met 1 rij, waar een getalletje in staat die het aantal bezoeken per maand bijhoudt?
Zoiets dus:
+-------+
| tabel |
+-------+
|id |
|in |
+-------+
Als dat zo is, is de simpelste oplossing een kolom erbij zetten:
+-------+
| tabel |
+-------+
|id |
|maand |
|in |
+-------+
In maand vul je dat het getalletje van de maand in (in php date("m") dacht ik, kan ook in sql met date/time-functions).
In plaats van die ene rij updaten, update je gewoon de rij met de huidige maand. Als er niets wordt bewerkt (ofwel; als mysql_affected_rows() een waarde 0 teruggeeft), betekent het dat je in een nieuwe maand zit, en dan voeg je even een rij toe.
Overigens is dit alles ervan uitgaande dat je het systeem gebruikt zoals ik het interpreteer. Al zou je het aantal bezoeken per gebruiker willen bijhouden kan dat ook makkelijk, is gewoon nog een kolom erbij, en 2 voorwaarden in je query (WHERE ... AND ...).
Hopelijk geeft dit je genoeg goede info om verder te kunnen.
Nee, doe het niet op deze manier. Dit is niet correct.
Doe gewoon zoals ik het zei.
Om een top tien te krijgen moet je dan iets doen als SELECT COUNT(id) AS aantal, andere, velden FROM tabel WHERE MONTH(datumkolom) = MONTH(CURDATE()) GROUP BY waarop,je,wilt,groeperen ORDER BY aantal DESC LIMIT 10
Ik zei dat het de simpelste oplossing is, en daarnaast is het wel correct. Of het de beste oplossing is, laat ik terzijde ;) .
?Onbekende gebruiker
08-12-2010 09:30
Marco van Oort op 08/12/2010 09:21:50
Ik zei dat het de simpelste oplossing is, en daarnaast is het wel correct. Of het de beste oplossing is, laat ik terzijde ;) .
Nee, je hoort altijd een datum op te slaan als datum. Dingen onafhankelijk van elkaar opslaan klopt niet. En het klopt niet. Wat gebeurd er als hij bij volgend jaar december aan komt? Ja, dan is die 'maand' weer vol.
Datums horen altijd als DATEs opgeslagen te worden.