om 24:00 uur database legen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Roy

Roy

10/06/2008 17:57:00
Quote Anchor link
Hi all,
ik zoek een script dat hij automatich om 24:00 uur de database leegt.
ik heb het zelf proberen te scripten maar dat lukte niet heeft iemand toevallig dat script liggen ?


Grtz,
 
PHP hulp

PHP hulp

19/04/2024 23:01:56
 
Erwin Nieuwenhuis

Erwin Nieuwenhuis

10/06/2008 17:58:00
Quote Anchor link
datum opslaan, en enkel data van vandaag selecteren??

je hoeft nooit je data te wissen, misschien dat je het later nog nodig hebt?
 
GaMer B

GaMer B

10/06/2008 18:00:00
Quote Anchor link
Sla de laatste leeg datum op en vervolgens met data functies het verschil uitrekenen (PHP based, of MySQL based, mag je kiezen). Vervolgens kijken of het verschil > 24:00, als dat zo is, database legen.

Natuurlijk kun je dit alles ook met cronjobs doen, maar ik durf te wedden dat de eerste optie veel beter is.
 
Jurgen assaasas

Jurgen assaasas

10/06/2008 18:00:00
Quote Anchor link
Ik zou het doen zoals Erwin al zegt, wil je het echt doorzetten is het niet zo ingewikkeld, gewoon droppen en weer opnieuw aanmaken.
 
Roy

Roy

10/06/2008 18:02:00
Quote Anchor link
nee echt nodig kijk bijv mensen stemmen 12 keer op iets en dan ze de volgende dag (dus na 24:00) weer kunnen stemmen maar dan moet er wel een
kijk om 24:00 uur moet deze uitgevoerd worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
mysql_query("UPDATE leden SET gestemt=0");
?>
 
- -

- -

10/06/2008 18:02:00
Quote Anchor link
1 24:00 :P bestaat niet xD

2 Ik denk toch echt dat je cronjobs moet gebruiken...
 
Jurgen assaasas

Jurgen assaasas

10/06/2008 18:06:00
Quote Anchor link
elke keer op precies 00:00 dus? dan kun je toch gewoon kijken of de laatst gestemde datum gisteren niet vandaag was? Zoja dan kun je stemmen, zo nee melding oid geven.

Ik snap je verwoording ook niet helemaal. Is het de bedoeling dat je 24 uur moet wachten met stemmen? Voorbeeld:

ik stem om 23:59, mag ik dan om 00:00 weer stemmen of moet ik dan 24 uur wachten?
Gewijzigd op 01/01/1970 01:00:00 door Jurgen assaasas
 
Roy

Roy

10/06/2008 18:08:00
Quote Anchor link
als je 23:59 stemt dat je om 00:00 weer mag stemmen 24:00 was een foutje :P
 
Hipska BE

Hipska BE

10/06/2008 18:10:00
Quote Anchor link
Roy schreef op 10.06.2008 18:02:
nee echt nodig kijk bijv mensen stemmen 12 keer op iets en dan ze de volgende dag (dus na 24:00) weer kunnen stemmen maar dan moet er wel een
kijk om 24:00 uur moet deze uitgevoerd worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
mysql_query("UPDATE leden SET gestemt=0");
?>


Dan sla je de stemmen op samen met de datetime wanneer ze stemden..

SELECT COUNT(*) AS aantal FROM stemmen WHERE user = :id AND tijd < INTERVAL(NOW(), 1 DAY)
als hier aantal meer dan 12 is, dan geef je melding dat ze maar 12 keer per 24u mogen stemmen...

(de SQL kan fouten bevatten, is even uit het hoofd gemaakt en niet getest)
 
Erwin Nieuwenhuis

Erwin Nieuwenhuis

10/06/2008 18:10:00
Quote Anchor link
ik denk 1x per dag, maar als je de data verwijderd, kun je later niet kijken hoevaak iemand gestemd heeft ofzo..

dus gewoon selecteren van vandaag, of selecteren waar langer als 24 uur geleden gestemd is.
 
Jurgen assaasas

Jurgen assaasas

10/06/2008 18:13:00
Quote Anchor link
Dan gooi je er een datum tijd stempel in. en dan:

SELECT datum FROM votes WHERE DATE(datum) = CURRENT_DATE AND user_id =1;


Als het resultaat 0 is, mag er dus gestemd worden, als het 1 of meer is(wat ik me niet kan voorstellen) dan is er al gestemd (er is dus een rij getroffen met de SELECT) en geef je een melding

Het voordeel hiervan is dat je ook nog statistieken kan opvragen indien (ooit) nodig.
 
Roy

Roy

10/06/2008 18:57:00
Quote Anchor link
is het zoiets als
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if date("H/s/a") = "00/00/00"
{
//positieblok
}else(
//anders
)
?>
 
Joren de Wit

Joren de Wit

10/06/2008 19:05:00
Quote Anchor link
Quote:
is het zoiets als
Niet als je het over een database hebt. Het enige geldige formaat voor een datum is dan 'yyyy-mm-dd' dat je uiteraard in een DATE veld opslaat.

Maar goed, volgens mij is het antwoord op je vraag al meerdere malen gegeven. Nu is het nog een kwestie van de gegeven advieze toepassen...
 
Roy

Roy

10/06/2008 19:31:00
Quote Anchor link
maar dat zijn allemaal codes die niet werken op dat systeem
je kan toch ook zo doen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if time("H/s/a") = "00/00/00"
{
mysql_query("UPDATE leden SET gestemt=0");
}
else(
//anders
)
?>

of ben ik nou gek
 
Joren de Wit

Joren de Wit

10/06/2008 19:41:00
Quote Anchor link
Ten eerste kent time() geen parameters, dus dat slaat nergens op. Als je date() bedoelt, kijk dan even in de handleiding op php.net. Daar zul je zien dat het formaat 'H/s/a' ook niet echt logisch is...

Als je toevallig het formaat 'H:i:s' bedoelde, bedenk dan even hoe groot de kans is dat iemand op precies dat tijdstip jouw website bezoekt. Dat is namelijk het enige moment waarop het if-statement uitgevoerd zal worden. Dat is precies 1/86400, dus die kans in ontzettend klein.

Tenslotte snap ik niet ik niet dat je nog niets met de gegeven antwoorden gedaan hebt. Ik zal er even een paar quoten:
Quote:
elke keer op precies 00:00 dus? dan kun je toch gewoon kijken of de laatst gestemde datum gisteren niet vandaag was? Zoja dan kun je stemmen, zo nee melding oid geven.

Quote:
Dan sla je de stemmen op samen met de datetime wanneer ze stemden..

Quote:
Dan gooi je er een datum tijd stempel in. en dan:

SELECT datum FROM votes WHERE DATE(datum) = CURRENT_DATE AND user_id =1;

Als het resultaat 0 is, mag er dus gestemd worden

Dit zijn stuk voor stuk verwijzingen naar een goede oplossing, maar daar wil je blijkbaar niets mee doen...
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Roy

Roy

10/06/2008 19:50:00
Quote Anchor link
nee jullie snappen mij niet -.-
het gaat niet per persoon maar elke dag 1 keer dan heeft dus user_id =1; geen definitie
ver vraag ik wat en krijg een vaage code terug
ik ben ook maar een beginner
 
Erwin Nieuwenhuis

Erwin Nieuwenhuis

10/06/2008 19:55:00
Quote Anchor link
dan haal je dat toch weg?? zo moeilijk is dat niet, selecteren en daarna DELETE...
 
Klaasjan Boven

Klaasjan Boven

10/06/2008 20:03:00
Quote Anchor link
Roy schreef op 10.06.2008 19:50:
nee jullie snappen mij niet -.-
het gaat niet per persoon maar elke dag 1 keer dan heeft dus user_id =1; geen definitie
ver vraag ik wat en krijg een vaage code terug
ik ben ook maar een beginner


Dit komt omdat iedereen hier jou probeert te helpen op de juiste manier.Het weggooien van data is bijna nooit de juiste manier en in jou voorbeeld wil je geen data weggooien
 
Roy

Roy

10/06/2008 20:06:00
Quote Anchor link
snap ik ook wel -.-
wat moet er bij WHERE DATE(datum) dit ?
WHERE DATE(00/00/00)
en dan moet er nog een ding zijn die de datum add
en moet de query er dan alsvolgt uitzien ?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
tdatum DATE 00/00/00
 
Jurgen assaasas

Jurgen assaasas

10/06/2008 20:27:00
Quote Anchor link
Je moet wel een datumveld hebben in je database. en dat 00/00/00 kun je vergeten een datum is YYYY-MM-DD formaat en tijd HH:II:SS. Je moet de query die ik je gaf een aantal posts hierboven even aanpassen aan je eigen datamodel.

Ik gaf je enkel een voorbeeld in mijn voorbeeld had ik dit in gedachte als datamodel.

votes
-----------
vote_id
user_id
datum
vote (aantal of wat dan ook)

Hoe ziet jou database er uit?
Gewijzigd op 01/01/1970 01:00:00 door Jurgen assaasas
 
Joren de Wit

Joren de Wit

10/06/2008 22:17:00
Quote Anchor link
PHP Beginnershandleiding
SQL Beginnershandleiding

Ik krijg het idee dat je eigenlijk geen idee hebt hoe je dit nu aan zou moeten pakken. Ook de adviezen die je gegeven worden klinken je blijkbaar heel vaag in de oren, terwijl ze toch echt vrij duidelijk zijn (mits je een klein beetje weet waar je mee bezig bent).

Lees dus bovenstaande tutorials eens door, dan heb je al wat meer van de basiskennis van PHP en SQL te pakken...
 



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.