Ik ben bezig met een website te maken, deze website heeft een kleine nieuws sectie. Om te zorgen dat er een nieuw ander icoon te zien is voor de gebruiker heb ik het volgende bedacht(eerst in mondjesmatige uitleg, daarna in code).
De user_table heeft 2 extra waardes gekregen, visit_prev en visit_active.
Zodra een gebruiker iets bekijkt, dan wordt in de user_table gekeken of de visit_prev X seconden verschilt met de visit_active. Als de visit_prev b.v. niet 10 minuten verschil heeft dan zet hij de visit_active op de timestamp( php-> time(); ).
Als de visit_prev en visit_active een groter verschil dan 10 minuten heeft dan wordt eerst de visit_prev overschreven door visit_active, en DAARNA de timestamp in visit_active geschreven.
Ik blijf hangen bij deze code:
Eerst had ik het tekentje < als een > staan, toen update hij het bij iedere visit. Nou zou hij het na 10 minuten niet actief moetten updaten door je laatste active visit. Alleen dit doet hij niet.
Dus ik maak een echo van alle data:
Dan zie je dat de nu-tussen groter is dan db-prev.
Maar hij blijft hem foutief updaten.
Dus ik heb ook nog deze 2 codes geprobeerd.
Iemand enig idee hoe dat ik de berenkening zo in php kan krijgen dat hij wel werkt? Het zit hem ergens in die ene if regel (denk ik).
De user_table heeft 2 extra waardes gekregen, visit_prev en visit_active.
Zodra een gebruiker iets bekijkt, dan wordt in de user_table gekeken of de visit_prev X seconden verschilt met de visit_active. Als de visit_prev b.v. niet 10 minuten verschil heeft dan zet hij de visit_active op de timestamp( php-> time(); ).
Als de visit_prev en visit_active een groter verschil dan 10 minuten heeft dan wordt eerst de visit_prev overschreven door visit_active, en DAARNA de timestamp in visit_active geschreven.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| function UdUsrVstTime($id) { global $dbp,$config; $tmp1 = mysql_fetch_array(mysql_query("SELECT visit_active, visit_prev FROM {$dbp}_users WHERE id='$id';")); $timestamp = time(); //secondes * minuten uit config $tussentijd = 60*$config["timebeforevisitprevupdate"]; // 10 is de waarde @ config //kijken of tijd geupdate moet worden(visit_prev). if ($timestamp-$tussentijd<=$tmp1["visit_prev"]) { mysql_query("UPDATE {$dbp}_users SET visit_prev=visit_active WHERE id='$id';"); } //Active timestamp updaten mysql_query("UPDATE {$dbp}_users SET visit_active='$timestamp' WHERE id='$id';"); } |
Ik blijf hangen bij deze code:
PHP:
1
| if ($timestamp-$tussentijd<=$tmp1["visit_prev"]) { |
Eerst had ik het tekentje < als een > staan, toen update hij het bij iedere visit. Nou zou hij het na 10 minuten niet actief moetten updaten door je laatste active visit. Alleen dit doet hij niet.
Dus ik maak een echo van alle data:
code:
1
2
3
4
| nu-> 1058359151 tussen-> 600 nu-tussen-> 1058358551 (nu minus tussen is nu-tussen) db-prev-> 1058352952 |
Dan zie je dat de nu-tussen groter is dan db-prev.
Maar hij blijft hem foutief updaten.
Dus ik heb ook nog deze 2 codes geprobeerd.
PHP:
1
2
3
4
5
6
7
8
| //iedere hit = bijde update. if ($timestamp>=$tmp1["visit_prev"]-$tussentijd) { //en deze //helemaal GEEN updates(niet na 10 //minuten, niet na 30, gewoon NIET) if ($timestamp<=$tmp1["visit_prev"]-$tussentijd) { |
Iemand enig idee hoe dat ik de berenkening zo in php kan krijgen dat hij wel werkt? Het zit hem ergens in die ene if regel (denk ik).
[ Voor 5% gewijzigd door Verwijderd op 16-07-2003 17:18 . Reden: typo @ script ]