Hulp bij query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

ToySoldier ZegIkNiet

ToySoldier ZegIkNiet

11/07/2008 14:54:00
Quote Anchor link
Ik ben bezig met een script wat logs opslaat, maar nu heb ik een query nodig die logs verwijderd die van 2 dagen terug of ouder zijn. Ik gebruik in SQL het datetime veld, genaamd 'datum'. Welke query moet ik hiervoor gebruiken?
 
PHP hulp

PHP hulp

27/11/2024 05:24:21
 
- wes  -

- wes -

11/07/2008 14:56:00
Quote Anchor link
waarom verwijderen als ik vragen mag? zit het je in de weg?

op nonactief zetten is vaak beter
 
Terence Hersbach

Terence Hersbach

11/07/2008 14:56:00
Quote Anchor link
offtopic:
wat is het nut van verwijderen? De database zit niet zo heel snel vol, tenzij je echt een halve gigabyte aan tekst per dag logt..

of wat is het nu van loggen in zo'n korte tijd? Als je iets zo snel weggooit, heeft het loggen toch geen zin?
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
 
ToySoldier ZegIkNiet

ToySoldier ZegIkNiet

11/07/2008 14:58:00
Quote Anchor link
Ik log elk bezoek maar bezoek aan 'standaard' paginas (zoals een gebruikerslijst of een pagina waar je geen dingen echt kunt veranderen) zijn na een tijdje niet meer nuttig. Die wil ik dan eruit gooien maar ik weet niet hoe je ze van een bepaalde periode pakt.
 
Klaasjan Boven

Klaasjan Boven

11/07/2008 15:17:00
Quote Anchor link
Kijk hier eens, overigens is weggooien bijna nooit nodig

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
 
Jelmer -

Jelmer -

11/07/2008 15:21:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
DELETE FROM blaat WHERE veld < CURDATE() - INTERVAL 2 DAY


En hier een pagina vol met andere leuke datetime functies van MySQL: http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html

Ik zou de gegevens overigens bewaren. Is het niet om achteraf misbruik op te sporen, dan is het wel om in de toekomst statistieken uit te halen. Als je het gebruikers-id, de pagina en de datum en tijd van het moment van opvragen opslaat kan je al een redelijk goed overzicht krijgen van de paden die mensen op je website doorlopen. Kan je later weer gebruiken om knelpunten te vinden en je site te verbeteren. En het is gewoon interessant :)
 
ToySoldier ZegIkNiet

ToySoldier ZegIkNiet

11/07/2008 15:23:00
Quote Anchor link
Via Klaasjans link gevonden, DATE_SUB moest ik hebben :)

Bedankt!


@ Jelmar: Ja maar je moet de logs ook kunnen bekijken. Na een tijdje vreet dat erg veel aan mijn database ben ik bang.. :o
Gewijzigd op 01/01/1970 01:00:00 door ToySoldier ZegIkNiet
 
Terence Hersbach

Terence Hersbach

11/07/2008 15:25:00
Quote Anchor link
@ToySoldier, geloof me, jouw database zal nooit vollopen. Ook niet als je hem voor de rest van je leven niet leeggooit.
 
ToySoldier ZegIkNiet

ToySoldier ZegIkNiet

11/07/2008 15:27:00
Quote Anchor link
Het zal wel een stuk langzamer worden..
 
Terence Hersbach

Terence Hersbach

11/07/2008 15:28:00
Quote Anchor link
zelfs dat niet..
 
ToySoldier ZegIkNiet

ToySoldier ZegIkNiet

11/07/2008 15:46:00
Quote Anchor link
Nu krijg ik een MySQL fout..
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM ht_logs ORDER BY datum DESC WHERE DATE_SUB(CURDATE(),INTERVAL 14 DAY) <= datum LIMIT 0,15


Ik krijg een mysql syntax error (#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE DATE_SUB(CURDATE(),INTERVAL 14 DAY) <= datum LIMIT 0,15' at line 1 )

(Ik ben nu de code die hier eerder gepost werd aan het proberen)
Gewijzigd op 01/01/1970 01:00:00 door ToySoldier ZegIkNiet
 
ToySoldier ZegIkNiet

ToySoldier ZegIkNiet

11/07/2008 16:07:00
Quote Anchor link
Weet iemand hoe ik dit oplos? Ik heb een variable $wk die ik vermenigvuldig met 7, wat het aantal dagen oplevert. Ik wil de resultaten van die afgelopen X dagen ophalen.. Hoe? (De variable heet $days )
 
Terence Hersbach

Terence Hersbach

11/07/2008 16:10:00
Quote Anchor link
WHERE ORDER LIMIT OFFSET

die volgorde moet je aanhouden
Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.
 
Jelmer -

Jelmer -

11/07/2008 16:11:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
SELECT
    *
FROM
    ht_logs
WHERE
   DATE_SUB(CURDATE(),INTERVAL $days DAY) <= datum
ORDER BY
   datum DESC
LIMIT 0,15

Order by komt na where ;)

edit: Woeps, Terence was me weer voor
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
 
ToySoldier ZegIkNiet

ToySoldier ZegIkNiet

11/07/2008 16:17:00
Quote Anchor link
Sorry voor 't bumpen & bedankt voor het antwoord ;)
 
Joren de Wit

Joren de Wit

11/07/2008 19:25:00
Quote Anchor link
En dan mag je DATE_SUB() ook nog even vervangen door een simpele -. Veel eenvoudiger, veel duidelijker:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
WHERE
   CURRENT_DATE - INTERVAL $days DAY <= datum
 
ToySoldier ZegIkNiet

ToySoldier ZegIkNiet

12/07/2008 16:12:00
Quote Anchor link
Nieuw probleem, nieuwe post.

Ik heb bij de dev.mysql.com link gezocht, maar ik kwam er echt niet meer uit hoe dit kan:

Ik moet het verschil in dagen hebben van 2 datetime velden in MySQL. Veld 1 (verbannen_op) is de startdatum. Veld 2 (verbannen_tot) is de einddatum. Nu ben ik er wel al uit dat veld 2 - veld 1 of iets dergelijks is maar ik ken de MySQL codes hiervoor niet.. Iemand?
 
Joren de Wit

Joren de Wit

12/07/2008 16:17:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
SELECT
  DATEDIFF(verbannen_tot, verbannen_op) AS verschil
FROM
  tabel

En de relevante pagina uit de handleiding: klik
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
ToySoldier ZegIkNiet

ToySoldier ZegIkNiet

12/07/2008 16:19:00
Quote Anchor link
Love MySQL :D

Thx Blanche :)
 
Joren de Wit

Joren de Wit

12/07/2008 16:25:00
Quote Anchor link
ToySoldier schreef op 12.07.2008 16:19:
Love MySQL :D
Zeg dat maar niet te snel. In elke andere goede database is het namelijk wel gewoon mogelijk om 2 data van elkaar af te trekken met behulp van het - teken. Daar hoef je geen gebruik te maken van zo'n functie als DATEDIFF(), sterker nog zo'n functie bestaat niet eens!
 



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.