Query met datetime loopt ergens fout?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

OldDylan England

OldDylan England

28/01/2011 14:15:54
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
SELECT
    users.login,
    UNIX_TIMESTAMP(users.online) AS `online`,
    UNIX_TIMESTAMP(users.start) AS `start`
FROM
    `users`
LEFT JOIN `temp`
    ON (temp.login = users.login)
WHERE
    temp.login IS NULL
    AND `online` + 777600 < NOW()
    AND `start` + 777600 < NOW()

de velden online en start zijn datetime 0000-00-00 00:00:00 in mysql. Wat ik probeer is, pak alle members die langer dan 9 dagen niet online zijn geweest & langer dan 9 dagen bestaan (sinds start).. Maar het werkt niet, hij pakt leden die pas sinds gisteren zijn aangemeld.. Ergens gaat het fout.. Iemand die mij wilt helpen?
 
PHP hulp

PHP hulp

05/11/2024 07:45:48
 
Th van

Th van

28/01/2011 14:26:35
Quote Anchor link
Je kunt geen aliassen gebruiken in je WHERE, die je in je SELECT hebt gemaakt. (Heb het net getest..) Dus zou je dit kunnen proberen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
SELECT
    users.login,
    UNIX_TIMESTAMP(users.online) AS `online`,
    UNIX_TIMESTAMP(users.start) AS `start`
FROM
    `users`
LEFT JOIN `temp`
    ON (temp.login = users.login)
WHERE
    temp.login IS NULL
    AND UNIX_TIMESTAMP(users.online) + 777600 < NOW()
    AND UNIX_TIMESTAMP(users.start) + 777600 < NOW()
 
OldDylan England

OldDylan England

28/01/2011 14:35:54
Quote Anchor link
Bedankt voor je reactie!
Gek genoeg werkt de tijd nog steeds niet, krijg resultaten terug die niet kloppen. Wat zou een andere mogelijkheid zijn om te controleren of de start en online tijd langer dan 9 dagen geleden is..
Gewijzigd op 28/01/2011 14:36:24 door OldDylan England
 
Th van

Th van

28/01/2011 15:32:32
Quote Anchor link
Je kunt met INTERVAL + 9 DAYS proberen.
Dus: (voorbeeld van hoe het zou moeten werken(ongeveer dan..))

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
WHERE users.online + INTERVAL 9 DAYS < NOW()


Owja, misschien zou je wat extra haakjes "()" kunnen toevoegen?
Gewijzigd op 28/01/2011 15:33:16 door Th van
 
Obelix Idefix

Obelix Idefix

28/01/2011 17:53:12
Quote Anchor link
OldDylan England op 28/01/2011 14:15:54:
pak alle members die langer dan 9 dagen niet online zijn geweest & langer dan 9 dagen bestaan (sinds start)..


Begrijp het niet. Je kunt alleen langer dan 9 dagen 'niet online' zijn geweest, als je minimaal dan 9 dagen bestaat. Met andere woorden: maak je het jezelf niet moeilijker dan nodig?
 
OldDylan England

OldDylan England

28/01/2011 19:35:03
Quote Anchor link
@Theodoor, bedankt zal er morgen naar kijken :D

@Obelix, nee want als je niet online bent geweest is je tijd 0000-00-00 00:00:00 en dan gaan we dus helemaal de fout in :)
 



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.