Statistik  Mitglieder gesamt: 68138  Mitglieder online: 6  Gäste online: 9 mehr...
Anzeige
| Tutorial: php/mysql Counterphp/mysql CounterHier werde ich meinen counter veröffentlichen und auch ein wenig erläutern...Viel Spaß damit
Aänderungen habe ich fett hervorgehoben... 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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
| <?php
[b]
$connection = mysql_connect("datenbankserver","benutzername","passwort");
mysql_select_db("Name der Datenbank");[/b]
$jetzt = time();
$tstamp = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
$heute = date("Ymd", $tstamp);
$heute2 = date("d.m.Y", $tstamp);
$tstamp = mktime(0, 0, 0, date("m"), date("d")-1, date("Y"));
$gestern = date("Ymd", $tstamp);
$gestern2 = date("d.m.Y", $tstamp);
$ip = $_SERVER['REMOTE_ADDR'];
$now = $jetzt-(86400);
[b]mysql_query("Delete From `counterip` Where `time`<'".$now."'");[/b]
$query3 = mysql_query("SELECT * FROM counter WHERE id = '3' LIMIT 1");
while($row3 = mysql_fetch_array($query3))
{if($row3[start] == $gestern)
{$wertg = $row3[wert];}
else
{$query4 = mysql_query("SELECT * FROM counter WHERE id = '2' LIMIT 1");
while($row4 = mysql_fetch_array($query4))
{$wertg = $row4[wert];
[b]mysql_query("UPDATE `counter` SET `id` = '' WHERE `id`='3' LIMIT 1");
mysql_query("UPDATE `counter` SET `id` = '3' WHERE `id`='2' LIMIT 1");
mysql_query("INSERT INTO counter SET `id` = 2, `wert`=0, `start`=$heute");[/b]
}
}
}
$query6 = mysql_query("SELECT * FROM `counterip` WHERE `ip` = '$ip' LIMIT 1");
if (mysql_num_rows($query6) == 0)
{[b]mysql_query("INSERT INTO counterip SET ip='".$ip."', time='".$jetzt."', counter='1'");[/b]
$block = 1;}
else
{
while($row6 = mysql_fetch_array($query6))
{if($row6[counter] == 1)
{$block = 0;}
else
{$block = 1;
[b]mysql_query("UPDATE `counterip` SET `counter` = '1', `time` = '$jetzt' WHERE `ip`='$ip' LIMIT 1");[/b]
}
}
}
$query8 = mysql_query("SELECT * FROM counter WHERE id = '2' LIMIT 1");
while($row8 = mysql_fetch_array($query8))
{if($row8[start] == $heute)
{$werth = $row8[wert];}
else
{[b]mysql_query("UPDATE `counter` SET `wert` = '0', `start` = '$heute' WHERE `id`='2' LIMIT 1");[/b]
$werth = 0;}
}
$query10 = mysql_query("SELECT * FROM counter WHERE id = '1' LIMIT 1");
while($row10 = mysql_fetch_array($query10))
{$werta = $row10[wert];
}
if($block==1)
{$werta++;
$werth++;
[b]mysql_query("UPDATE `counter` SET `wert` = '$werth' WHERE `id`='2' LIMIT 1");
mysql_query("UPDATE `counter` SET `wert` = '$werta' WHERE `id`='1' LIMIT 1");
[/b] $block = 0;
}
$query13 = mysql_query("SELECT * FROM counter WHERE id = '4' LIMIT 1");
while($row13 = mysql_fetch_array($query13))
{$wertm = $row13[wert];
$am = $row13[start];
if ($werth > $wertm)
{$wertm = $werth;
$am = $heute2;
[b]mysql_query("UPDATE `counter` SET `wert` = '$wertm', `start` = '$heute2' WHERE `id`='4' LIMIT 1");[/b]
}
}
[b]mysql_query("UPDATE `counterip` SET `online` = '$jetzt' WHERE `ip`='$ip' LIMIT 1");[/b]
$now2 = $jetzt-300;
[b]$query16 = mysql_query("SELECT * FROM counterip WHERE `online` >'".$now2."'");
$online2 = mysql_num_rows($query16);[/b]
[b]
echo"
Online-Besucher: $online2 <br>
Besucher-gesamt: $werta <br>
Besucher-Heute: $werth <br>
Besucher-Gestern: $wertg <br>
Besucher-Max: $wertm <br>
Wann war dieses Max?: $am <br>
";
php?> |
Das ist erstmal der Code, erklärungen stehen immer hinter //
für die Datenbank müsst ihr nun noch folgende mysql codes ausführen PHP:1
2
3
4
5
6
7
8
9
10
| CREATE TABLE `counter` (
`id` int(1) NOT NULL default '0',
`wert` int(10) NOT NULL default '0',
`start` varchar(255) NOT NULL default ''
) TYPE=MyISAM;
INSERT INTO `counter` VALUES (1, 0, '01.01.2006');
INSERT INTO `counter` VALUES (4, 0, '01.01.2006');
INSERT INTO `counter` VALUES (3, 0, '20060102');
INSERT INTO `counter` VALUES (2, 0, '20060103'); |
Diese 4 Datensätze sind die Startdatensätze.
Der mit 1 anfängt (id=1) ist die gesamt Zahl seit dem Datum, welches hinten steht (hier 01.01.2006)
Der mit 2 anfängt (id=2) sind die Besucher heute, wieder mit Datum
Der mit 3 anfängt (id=3) sind die Besucher gestern
Der mit 4 anfängt (id=4) ist die Besucherzahl, die bis heute das maximum war
Alle weiteren, die mit der zeit noch dazukommen werden, werden immer id=0 haben, da sie weder gestern, noch heute oder maximum sind, einfach nur die ganzen Tage....
Nun noch eine Datenbank PHP:1
2
3
4
5
6
| CREATE TABLE `counterip` (
`ip` varchar(64) NOT NULL default '',
`time` int(32) default NULL,
`counter` int(10) NOT NULL default '0',
`online` int(32) NOT NULL default '0'
) TYPE=MyISAM; |
diese wird nur zur ip-sperre benötigt, daher keine Einträge...
ich hoffe euch gefällt der counter, wenn etwas nicht funktioniert, macht mich ruhig nieder, aber bei mir läuft er nun schon ganz lange ohne Probleme...
thx & bitteschön
Michael Dieses Tutorial wurde von michael88 am 03.01.2006 verfasst.
Kommentare
DarkSweet meinte am 20.10.2006 um 16:21 Uhr: klappt gut und ist auch gut, nur ich mag es immer nicht, wenn so viel code auf einmal da steht | phpnoob meinte am 04.10.2006 um 11:36 Uhr: Das Tut ist wirklich sehr gut und hilfreich.. | kuatf meinte am 15.04.2006 um 21:15 Uhr: SEHR GUT!!!!!! | flohundengel meinte am 02.02.2006 um 08:26 Uhr: @ 123teddy321: Welchen Teil hat er denn vergessen auszukommentieren?
@ Michael88: Ist trotzdem ein sehr gutes Tutorial! | 123teddy321 meinte am 20.01.2006 um 21:31 Uhr: Du hast vergessen, einen kleinen teil des codes auszukommentieren!
aber ich denke dass kann jeder selber machen!
ansonsten nich schlecht!
nur hab ich meinen eigenen ;-) | |