Gegen Bilderklau - Das Original (https://www.gegen-bilderklau.net/index.php)
- Design, Website, Copyright (https://www.gegen-bilderklau.net/board.php?boardid=80)
--- Homepagehilfe (https://www.gegen-bilderklau.net/board.php?boardid=27)
---- Homepagehilfe - Archiv (https://www.gegen-bilderklau.net/board.php?boardid=139)
----- [PHP & MySQL] Onlineanzeige, falsch berechnet? (https://www.gegen-bilderklau.net/thread.php?threadid=114123)


Geschrieben von janinchen am 27.07.2007 um 14:40:

  Onlineanzeige, falsch berechnet?

Und schon wieder ich smile

Diesmal aber eig. kein großes Denkthema Augenzwinkern
Um anzuzeigen, wer online ist, werden die "LogIn-Zeiten" per Timestamp in meiner Datenbank gespeichert. Soweit kein Problem.

Das Script, das die aktuellen online-User anzeigen soll sieht momentan so aus:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
<?php

$timestamp time();
$berechnet $timestamp 360;
$zeit date("Y-m-d H:i:s",$berechnet);

   include('...');

   $sql "SELECT Name FROM sessions WHERE Zeit <= '$zeit'";
   $result mysql_query($sql);

   while ($row mysql_fetch_assoc($result)) {

      echo "

$row[Name],

";
   }
   mysql_close();
?> 


Das Berechnen der "neuen" Zeit bereitet mir Probleme. Momentan werden alle Einträge in der Datenbank angezeigt Augen rollen

Was is denn falsch?



Geschrieben von janinchen am 27.07.2007 um 15:08:

 

Mir ist grad aufgefallen, dass das ein ziemlicher Schwachsinn war, was ich da gemacht hab. Es ist klar, dass alle angezeigt wurden, da ich ja das jeweils aktuelle Datum + 360 gerechnet hab.
Ich muss eig. das eingetragene datum + 360 mit der jetzigen Zeit vergleichen.

Somit hab ich folgenden Code, der mir jetzt aber gar nichts anzeigt:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
include('db.php');

   $sql "SELECT Name FROM sessions WHERE Zeit <= '$zeit'";
   $result mysql_query($sql);

   while ($row mysql_fetch_assoc($result)) {
       
$timestamp $row[Zeit];
$berechnet $timestamp 360;


$now time();
$now date("Y-m-d H:i:s",$now);

if ($berechnet>= $now) {
      echo "

<a href="Mitglieder/index.php?name=$row[Name]" onClick="MyWindow=window.open('Mitglieder/index.php?name=$row[Name]','MyWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=800,height=590'); return false;">$row[Name]</a>,

";}

else {echo "Momentan ist kein Mitglied online.";}
   }
   mysql_close();



Ich hab allgemein Probleme damit, das Datum, das ja in folgendem Format in der Datenbank liegt: YYYY-mm-dd HH:ii:ss zu berechnen.
Mir wird ja nicht mal das else angezeigt.



Geschrieben von janinchen am 27.07.2007 um 22:28:

 

I love you smile

Achja, ich weiß jetzt auch wieso s mit dem Rechnen Probleme gab:
Das Feld in der Datenbank namens "Timestamp" speichert den Zeitstempel nicht wie gewöhnlich ab sondern in folgendem Format: YYYY-mm-dd HH:ii:ss

Wieso gibt es denn dieses Feld namens "timestamp" überhaupt, wenn nicht wirklich der Zeitstempel gespeichert wird? Ich habs jetzt in nem varchar Feld drin großes Grinsen

Dankööö

-kann geschlossen werden-


Forensoftware: Burning Board, entwickelt von WoltLab GmbH