| |
Boardmenü |
| Ihnen fehlen die Rechte dazu um den Inhalt dieser Box zu sehen. |
Guckloch |
Hier kann man sich über die letzten Beiträge im Board live informieren, das kleine Fenster welches sich durch einen Klick öffnet aktualisiert sich von alleine alle 60 Sekunden.
Guckloch öffnen |
Rechner-Support Toolbar |
|
Team |
| Ihnen fehlen die Rechte dazu um den Inhalt dieser Box zu sehen. |
Boardsuche |
| Ihnen fehlen die Rechte dazu um den Inhalt dieser Box zu sehen. |
Forenliste |
| Ihnen fehlen die Rechte dazu um den Inhalt dieser Box zu sehen. |
|
counter |
|
sile
Programmierer
Dabei seit: 18.07.2006
Beiträge: 90
Dieser User hat sich mal bedankt
 |
|
hallo,
ich gehe mal davon aus das du eine mysql-datenbank benutzt, oder?
welchen datentyp hast du für das counter-feld gewählt?
mfg
sile
|
|
22.08.2006 20:19 |
|
|
| |
|
neubau-city
Tripel-As

Dabei seit: 09.05.2006
Beiträge: 157
Dieser User hat sich mal bedankt
CPU: AMD Athlon(tm) 64 Processor 3000+
Themenstarter
 |
|
hi also ich habe eine mysql db und hier mal der ganze code für den counter
SQL
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
CREATE TABLE `counter` (
`id` tinyint(3) unsigned NOT NULL auto_increment,
`ip` varchar(255) default NULL,
`zeit` int(11) default NULL,
`total` tinyint(4) default NULL,
PRIMARY KEY (`id`)
) AUTO_INCREMENT=2 ;
INSERT INTO `counter` (`id`, `ip`, `zeit`, `total`) VALUES (1, '0', 0, 0);
|
|
counter.php
| 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:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
|
<?php
//Verbindung zur Datenbank
class config {
const host = 'localhost';
const user = 'dbuser';
const pass = 'dbpass';
const data = 'counter';
}
mysql_connect(config::host,config::user,config::pass) || die(mysql_error());
mysql_select_db(config::data) || die(mysql_error());
//Jetzt
$jetzt = time();
//Total auslesen
$getcount = mysql_fetch_object(mysql_query("SELECT total FROM counter WHERE id = '1' LIMIT 1"));
//IP speichern, falls noch nicht vorhanden
$query = mysql_query("SELECT ip, zeit, total FROM counter WHERE ip = '".$_SERVER['REMOTE_ADDR']."' LIMIT 1");
if(mysql_num_rows($query) == 0) {
$newcount = $getcount->total+1;
$update = mysql_query("UPDATE counter SET total = '".$newcount."' WHERE id = '1' ") || die(mysql_error());
$insert = mysql_query("INSERT INTO counter (ip, zeit) VALUES ('".$_SERVER['REMOTE_ADDR']."', '".$jetzt."')") || die(mysql_error());
} else {
$newcount = $getcount->total;
}
//Einträge älter als 2 Tage löschen
$alt = $jetzt - (3600*48);
mysql_query("DELETE FROM counter WHERE zeit < '".$alt."' && id != '1'");
//Besucher online auslesen
$cnt_online = mysql_query("SELECT COUNT(*) FROM counter WHERE zeit + 300 > '".$jetzt."'"); //300 entspricht 300 Sekunden, also 5 Minuten
$online = mysql_result($cnt_online, 0, 0);
//Besucher gestern auslesen
$cnt_gestern = mysql_query("SELECT COUNT(*) FROM counter WHERE zeit >= '".mktime(-24, 0, 0)."' && zeit <= '".mktime(-1, 59, 59)."'");
$gestern = mysql_result($cnt_gestern, 0, 0);
//Besucher heute auslesen
$cnt_heute = mysql_query("SELECT COUNT(*) FROM counter WHERE zeit >= '".mktime(0, 0, 0)."' && zeit <= '".mktime(23, 59, 59)."'");
$heute = mysql_result($cnt_heute, 0, 0);
//Ausgabe
echo "Heute: ".$heute."<br/>";
echo "Gestern: ".$gestern."<br/>";
echo "Total: ".$newcount."<br/>";
echo "Online: ".$online."<br/>";
?>
|
|
__________________
|
|
22.08.2006 21:23 |
|
|
| |
|
sile
Programmierer
Dabei seit: 18.07.2006
Beiträge: 90
Dieser User hat sich mal bedankt
 |
|
jup, klar das er ab 255 rumtickt
du kannst doch nicht das feld "id" auf tinyint(3) setzen!
ein unsigned tinyint(3) kann nur werte von 0-254 annehmen,
das reicht logischerweise nur für 255 einträge.
mach daraus mal int(11) und du hast die nächsten monate/jahre
ruhe. ;-)
mfg
sile
|
|
22.08.2006 21:59 |
|
|
| |
|
neubau-city
Tripel-As

Dabei seit: 09.05.2006
Beiträge: 157
Dieser User hat sich mal bedankt
CPU: AMD Athlon(tm) 64 Processor 3000+
Themenstarter
 |
|
kannst du mir bitte das genau aufschreiben. das wer nett meine den code
__________________
|
|
22.08.2006 22:11 |
|
|
| |
|
ca3sar
Tripel-As

Dabei seit: 17.05.2006
Beiträge: 230
Dieser User hat sich mal bedankt
CPU: AMD Athlon 64 3200+
 |
|
ich denk ma er meint das hier:
`id` tinyint(3) unsigned NOT NULL auto_increment,
zu
`id` int(11) unsigned NOT NULL auto_increment,
__________________
|
|
22.08.2006 22:17 |
|
|
| |
|
sile
Programmierer
Dabei seit: 18.07.2006
Beiträge: 90
Dieser User hat sich mal bedankt
 |
|
woohooo, der ca3sar hat den durchblick. ;-)
nächstemal drück ich mich präzieser aus...
mfg
sile
|
|
22.08.2006 22:46 |
|
|
| |
|
neubau-city
Tripel-As

Dabei seit: 09.05.2006
Beiträge: 157
Dieser User hat sich mal bedankt
CPU: AMD Athlon(tm) 64 Processor 3000+
Themenstarter
 |
|
danke ich hoffe das geht jetzt alles gut
__________________
|
|
22.08.2006 22:52 |
|
|
| |
|
ca3sar
Tripel-As

Dabei seit: 17.05.2006
Beiträge: 230
Dieser User hat sich mal bedankt
CPU: AMD Athlon 64 3200+
 |
|
| Zitat: |
Original von sile
woohooo, der ca3sar hat den durchblick. ;-)
nächstemal drück ich mich präzieser aus...
mfg
sile |
hehe ^^
wir fangen dieses schuljahr jez mit datenbanken an.. und zwar sql
wird bestimmt spannend.. hatten schon einführung heut
__________________
|
|
22.08.2006 22:58 |
|
|
| |
|
neubau-city
Tripel-As

Dabei seit: 09.05.2006
Beiträge: 157
Dieser User hat sich mal bedankt
CPU: AMD Athlon(tm) 64 Processor 3000+
Themenstarter
 |
|
lol das ist doch komisch oder
Heute: 1
Gestern: 179
Gesamt: 127
Online: 0
__________________
|
|
24.08.2006 00:08 |
|
|
| |
|
sile
Programmierer
Dabei seit: 18.07.2006
Beiträge: 90
Dieser User hat sich mal bedankt
 |
|
leider versteh ich die logik deines scripts nicht so recht,
denn wozu löscht du z.b. alle Visits die älter als 2 Tage sind?
Interessiert es dich nicht, wieviele user im monat oder letzten monat
auf deiner seite waren?
hier mal ein teil eines scripts, welches ich mal benutzt habe:
$database->query kannst du durch mysql_query ersetzen.
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
|
<?
//heute
$stampstart = mktime(0, 0, 0, date("n"), date("j"), date("Y"));
$stampend = mktime(23, 59, 59, date("n"), date("j"), date("Y"));
$q = "SELECT Id FROM VISITS WHERE TIME < $stampend AND TIME > $stampstart";
$res = $database->query($q);
$countToday = mysql_num_rows($res);
//gestern
$stampstart = mktime(0, 0, 0, date("n"), date("j")-1, date("Y"));
$stampend = mktime(23, 59, 59, date("n"), date("j")-1, date("Y"));
$q = "SELECT Id FROM VISITS WHERE TIME < $stampend AND TIME > $stampstart";
$res = $database->query($q);
$countYesterday = mysql_num_rows($res);
//gesamt
$q = "SELECT Id FROM VISITS";
$res = $database->query($q);
$countGesamt = mysql_num_rows($res);
?>
|
|
hier noch der insert-teil:
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
|
<?php
//heute
$stampstart = mktime(0, 0, 0, date("n"), date("j"), date("Y"));
$stampend = mktime(23, 59, 59, date("n"), date("j"), date("Y"));
$ip = $_SERVER['REMOTE_ADDR'];
//prüfen ob dieser user bereits heute die site besucht hat
$q = "SELECT Id FROM VISITS WHERE TIME<'$stampend' AND TIME>'$stampstart' AND "
."IP='$ip'";
$res = $database->query($q);
//wenn die site von diesem user noch nicht besucht wurde, dann eintrag hinzufügen
if (mysql_num_rows($res)==0){
$ref = $_SERVER['HTTP_REFERER'];
$q = "INSERT INTO VISITS (IP,REF,TIME) VALUES('$ip','$ref','".time()."')";
$database->query($q);
}
?>
|
|
mfg
sile
|
|
24.08.2006 10:37 |
|
|
| |
|
neubau-city
Tripel-As

Dabei seit: 09.05.2006
Beiträge: 157
Dieser User hat sich mal bedankt
CPU: AMD Athlon(tm) 64 Processor 3000+
Themenstarter
 |
|
also ich wollte einen counter wo die besucher zahl heute gestern gesamt und online sind mehr nicht und dan wurde mir so geholfen.
__________________
|
|
24.08.2006 11:07 |
|
|
| |
|
sile
Programmierer
Dabei seit: 18.07.2006
Beiträge: 90
Dieser User hat sich mal bedankt
 |
|
| Zitat: |
lol das ist doch komisch oder
Heute: 1
Gestern: 179
Gesamt: 127
Online: 0
|
wie soll man dir auf einen solchen post helfen?
versuch doch mal informationen zu liefern, mit denen
andere was anfangen können.
seltsam ist nämlich z.b., dass in deinem script die rede von "Total"
ist, und in deiner ausgabe "Gesamt" steht. wenn schon solche trivialen
dinge nicht passen, bzw. aus deinen posts nicht eindeutig hervorgehen, wie soll dir dann jemand in dem code-wirrwarr helfen?
mfg
sile
|
|
24.08.2006 12:03 |
|
|
| |
|
neubau-city
Tripel-As

Dabei seit: 09.05.2006
Beiträge: 157
Dieser User hat sich mal bedankt
CPU: AMD Athlon(tm) 64 Processor 3000+
Themenstarter
 |
|
das total habe ich für gesamt ersetzt.
und das mit dem hier
Heute: 1
Gestern: 179
Gesamt: 127
Online: 0
gestern waren es 179 aber er hat sie nicht zu dem gesamten dazugezählt. so wie ich es verstehe gibt er es so aus wie der code für gestern die zeile also
__________________
|
|
24.08.2006 12:07 |
|
|
| |
|
neubau-city
Tripel-As

Dabei seit: 09.05.2006
Beiträge: 157
Dieser User hat sich mal bedankt
CPU: AMD Athlon(tm) 64 Processor 3000+
Themenstarter
 |
|
| |
|
| |