Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
mmhh, wie soll ich es erklären [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
mmhh, wie soll ich es erklären


 
manuelakersten
18-01-2003, 18:12 
 
Hallo PHP-Profies,

ich habe ein Problem und hoffe auf Eure Hilfestellung.

Meine MySQL Datenbank ist folgendermaßen aufgebaut :

logid = BenutzerID
hostname = Hostname
time = Zeit des Log-Eintrages im Unix-Timestamp
z.B. 1042223803 Datum / Uhrzeit

So nun möchte ich gerne zwei Werte generieren.

1.) Am welchen Tag ware die meisten Besucher ?!

Sollte eigentlich einfach sein, denn z.B. der Hostname wird ja immer geloggt, bzw. ist das Feld Hostname nie leer, nun müsste nur verglichen werden am welchen Tag die meisten 'Hostname' Einträge waren, diese
zusammen zählen und ausgeben, dann hätte ich die Hits und das Datum.


2.) Wann war der erste und letzte Logeintrag ?!

Nur ich weis nicht wie ich es anstellen soll,
auch in meinem Buch habe ich kein Beispiel gefunden,
wie ich die Zeiten vergleichen kann.

Danke im voraus Gruß Manuela

 
TobiaZ
18-01-2003, 20:25 
 
1) GROUP BY (wenn ichs richtig verstanden hab).
2) Timestamps vergleichst du mit <,>,=,!=,...

 
manuelakersten
18-01-2003, 20:45 
 
Hallo,

danke für Deine Antwort,
jedoch ist genau das was ich nicht hinbekomme.

Gruß Manuela

 
TobiaZ
18-01-2003, 21:00 
 
Dann mach dich unter dem Begriff mal schlau (1) und die Vergleichsparameter werden ähnlich wie bei if() benutzt.

Man kann ja nicht immer alles vorsagen. Ihr müsst ja auch was lernen.:D

 
manuelakersten
19-01-2003, 13:49 
 
Hallo Leute,

so ich habe nun folgenden Code benutzt um den ersten Eintrag aus zu geben :

<?php
$sql = "SELECT time FROM ".$tbl_logs." ORDER BY time ASC";
$res = mysql_query($sql);
$leintrag = mysql_result($res, 0);
echo date("d.m.Y, H:m",$leintrag);
?>


Jedoch habe ich einen Zeitunterschied, denn laut Ausgabe
wäre der erste Logeintrag der '22.11.2002, 22:11'
und laut Statistik ist es der 'Nov 22, 23:02:17'

Das gleiche gilt für den letzten Eintrag, laut Ausgabe mit 'DESC'
wäre dieses der '19.01.2003, 12:01'
und laut Statistik 'Jan 19, 13:00:44'

an was könnte dieses liegen an der GMT-Zeit, aber dann hätte ich eine Differenz von genau einer Stunde ! Oder ?

Gruß Manuela

 
TobiaZ
19-01-2003, 13:58 
 
Mit GMT sollte das eigentlich nichts zu tun haben.

Bau mal in dein Query ein "LIMIT 0,1" ein!!!

 
manuelakersten
19-01-2003, 14:04 
 
Danke für Deine schnelle Antwort,

ich habe das Limit nun eingebaut


<?php
$sql = "SELECT time FROM ".$tbl_logs." ORDER BY time DESC LIMIT 0,1";
$res = mysql_query($sql);
$leintrag = mysql_result($res, 0);
echo 'Am&nbsp;',date("d.m.Y, H:m",$leintrag),'&nbsp;Uhr';
?>


jedoch bekomme ich die selbe Ausgabe !

Gruß Manuela

 
manuelakersten
19-01-2003, 14:10 
 
Ich habe gerade bemerkt,
daß sich zwei Besucher auf meiner Page befinden,
was zwar vom Counter geloggt wurde, jedoch blieb
die Uhrzeit für den letzten geloggten Eintrag der selbe
also irgenwas stimmt mit meiner Abfrage nicht.

Die aktuelle Zeit im Unix-Timestamp ist nun '1037998937'
und wird wie gesagt unter 'time' geloggt.

Gruß Manuela

 
TobiaZ
19-01-2003, 14:46 
 
Das LIMIT war auch nur ein Schönheitsfehler... ;)

Wie ist das? In der DB steht der aktuelle Wert, aber bei der Ausgabe nicht, oder wie?

Werden die Besucher irgendwie identifiziert?

 
manuelakersten
19-01-2003, 15:04 
 
Ja die Besucher werden identifiziert,
jedoch ist der Zugriff auf diese Statistik mit einer Sitzung
gekoppelt, die sich nach einer gewissen Zeit ausloggt
oder der User loggt sich selber aus.

Nun ist die Angabe des letzten Logs auf eine
Stunde später 'Am 19.01.2003, 13:01 Uhr' gesprungen
ohne das ich was zugetan habe.

Aber auch diese Logzeit stimmt nicht überein,
sehr merkwürdig.

Gruß Manuela

 
TobiaZ
19-01-2003, 15:09 
 
Welchen Sinn erfüllt diese Logzeit?

Brauche immer ein reales beispiel, damit ich versteh wo das Prob ist. :D
Und irgendwo checke ich jetzt grade nicht mehr wo wir dran sind...:confused:

 
manuelakersten
19-01-2003, 15:54 
 
In wie fern, Du möchtest wissen wozu ich diese Abfrage benötige ?

L I N K (http://www.alfscounter.de/modul_index.php?usr=webmaster)

Wenn Du Zugang zur Datenbank brauchst, schicke mir eine kurze E-Mail

manuelakersten@web.de

Danke, daß Du so viel Zeit für mich investierst.

Gruß Manuela

 
manuelakersten
20-01-2003, 07:32 
 
Ich habe nun doch noch die GMT-Zeit hinzu gefügt,
dann stimmt die Stunde wenigstens, aber warum wird immer
um eine Stunde erhöht und dann immer mit der x:01 ?????

Aktueller Script :


<?php
$sql = "SELECT time FROM ".$tbl_logs." ORDER BY time DESC LIMIT 0,1";
$res = mysql_query($sql);
$leintrag = mysql_result($res, 0);
echo 'Am&nbsp;',date("d.m.Y, H:m",GMTtoUser($leintrag)),'&nbsp;Uhr';
?>


Gruß Manuela

 
manuelakersten
22-01-2003, 19:35 
 
So, Leute danke für Eure Hilfe,
habe es durch Zufall geschaft.


<?php
$sql = "SELECT time FROM ".$tbl_logs." ORDER BY time DESC LIMIT 0,1";
$res = mysql_query($sql);
$leintrag = @mysql_fetch_array($res);
echo 'Am&nbsp;', date("d.m.Y, H:i",GMTtoUser($leintrag['time'])),'&nbsp;Uhr';
?>

Und das war wirklich Zufall, denn ich hatte noch
was im Copy & Paste Speicher ----> Und es klappte !!

Trotzdem vielen Dank
Für Eure Hilfe

Jetzt fehlt mir nur noch eines, wenn ich nicht nervent erscheine,
hoffe ich das mir dabei jemand einen Tipp geben kann,
denn auf Arbeit ( Einzelhandel ) habe ich inzwischen alle Bücher gewälzt jedoch ohne ein Ergebnis ---> und das waren einige.

Wie kann ich eine Abfrage machen, die den Timestamp für einen kompletten Tag ergleicht, und mir dann den Tag ausgibt, der die meisten Hits hat.

Ich lese die Hits mit der Spalte 'mp' raus und muß nun diese 'mp' zusammenzählen und gleichzeitig die Timestamps vergleichen, die den gleichen Wert haben, aber ich kann ja keine Selct-Anfrage mit if
$time = $time machen.

Gruß Manuela

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:13 Uhr.