Datum min een uur

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jer Tie

Jer Tie

11/01/2009 10:27:00
Quote Anchor link
OPGELOST: DATE_SUB(NOW(), INTERVAL 30 Minute) gebruikt

Ik ben een script aan het schrijven voor een gasten teller, waarbij ik wil dat het script controleert of een gast het laatste uur de site bezocht heeft. In dat geval wil ik niet dat de teller er een gast bij op telt.

Maar nu is mijn probleem dat ik niet weet hoe ik de SQl opdracht geef dat hij alle records moet selecteren uit mijn tabel waarin IP het ip-adres ( $_SERVER['REMOTE_ADDR'] ) van de klant is, en de datum en tijd tussen nu en een uur geleden ligt.
Het probleem zit m in het feit dat ik niet weet hoe ik dat met die tijd moet formuleren...

Does anybody know?

Heb de volgende script gemaakt van wat ik gevonden heb in de zoekmachine, maar nu wordt er nooit een record weg geschreven.. wat doe ik verkeerd?

[script]
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php

    include("db_connect.php");
    
        //controleer of deze gast het afgelopen uur de website niet al gezocht heeft
        $SQL="SELECT
                *
             FROM
                 gastenteller
            WHERE
                ip = '"
.$_SERVER['REMOTE_ADDR']."'
            AND  
                datum > 'NOW() - INTERVAL 30 MINUTE'"
;
        $query=mysql_query($SQL);
        $aantal=mysql_num_rows($query);
        
        if($aantal > 0) {
        
                $SQL="INSERT INTO gastenteller (ip, datum) VALUES ('".$_SERVER['REMOTE_ADDR']."', NOW())";
                $query=mysql_query($SQL);
                
            };

        
?>

[/script]

ik weet overigens dat if($aantal > 0) { eigenlijk == 0 moet zijn, maar anders moet ik steeds 30 minuten wachten om het uit te proberen :P

gebruik gemaakt van: http://phphulp.nl/forum/showtopic.php?id=49431&cat=1
Gewijzigd op 01/01/1970 01:00:00 door Jer Tie
 
PHP hulp

PHP hulp

21/06/2024 19:37:03
 
Frank -

Frank -

11/01/2009 14:08:00
Quote Anchor link
Jouw originele query was bijna goed, je ging de mist in met de quotes:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
                datum > 'NOW() - INTERVAL 30 MINUTE'

Het berekenen doe je niet tussen quotes, dan wordt het een string.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
                datum > NOW() - INTERVAL 30 MINUTE

En dat is een heel stuk fraaier dan de idiote functie DATE_SUB(). Een + of - gebruiken ligt een stuk meer voor de hand wanneer je wilt optellen of aftrekken.
 



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.