|
|
User gesamt
|
:
|
2439121
|
User online
|
:
|
6
|
|
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
|
|
|
|
MyWebsolution.de Foren » Tutorials » Besucherstatistik - bekomme es einfach nicht hin =(
Seite:
|
1
2
3
4
>
|
Posts pro Seite: 5
10
20
|
Autor
|
Thread
|
26.09.2008 22:00 Uhr
|
Besucherstatistik - bekomme es einfach nicht hin =(
|
DerGermane
|
Forenuser
|
|
registriert
|
26.09.2008
|
wohnt in
|
Deutschland
|
Beiträge
|
10
|
|
Hallo,
ich habe echt Probleme die Besucherstatistik zum laufen zu bringen. Bei mir fängt es schon beim anfang an. Wie stelle ich eine Verbindung mit meiner MySQL Datenbank her? Und wie erstelle ich in dieser die beiden Tabellen die benötigt werden? Geschieht das alles in einer .php datei? 
MfG
DerGermane
http://www.proton-tuning.de.tf
|
|
|
26.09.2008 23:17 Uhr
|
|
maulepan
|
User
|
|
registriert
|
03.09.2008
|
wohnt in
|
Dessau-Rosslau
|
Beiträge
|
9
|
|
http://www.php-einfach.de/tuts_php_counter.php
<?php
while($hausaufgaben > $freizeit)
{
$hausaufgaben--;
$freizeit++;
}
?>
|
|
|
26.09.2008 23:44 Uhr
|
MySQL Verbindung herstellen
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Schreib in eine Datei:
PHP:
<?php
error_reporting(E_ALL);
// MySQL-Verbindung herstellen
$MYSQL_HOST = 'localhost';
$MYSQL_USER = 'root';
$MYSQL_PASS = 'myPassWord';
$MYSQL_DATA = 'myDataBase';
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
// Tabellen erstelleb
$sql = 'CREATE TABLE `Online` ('
. ' `IP` VARCHAR(15) NULL, '
. ' `Datum` DATETIME NULL'
. ' )';
mysql_query($sql);
echo "Online erstellt..<br>";
$sql = 'CREATE TABLE `Counter` ('
. ' `ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, '
. ' `Datum` DATE NOT NULL, '
. ' `Anzahl` INT NULL DEFAULT \'0\' '
. ' )';
mysql_query($sql) OR die ("<pre>\n".$sql."</pre>\n".mysql_error());
echo "Counter erstellt..<br>";
?>
Ruf die Datei dann auf, dann sollten sich die Tabellen "installieren". Vorher natürlich noch die Werte bei der MySQL-Verbindung anpassen
|
|
|
27.09.2008 09:49 Uhr
|
|
DerGermane
|
Forenuser
|
|
registriert
|
26.09.2008
|
wohnt in
|
Deutschland
|
Beiträge
|
10
|
|
Ok danke erstmal. Aber so richtig weiter komm ich jetzt nicht. Seh nicht ganz durch was für Datein ich erstell muss. Ich zeig euch mal was ich habe.
Also ich habe zuerst in einer config.php Datei die Tabellen erstellt. Es funkionierte auch. Es kam die Texte Tabelle erstellt und Tabelle Online. dann hab ich die config.php wieder gelöscht. In einer .phtml hab ich dann die 2 anderen Datein mit include eingebunden. Aber das ergebniss könnt ihr euch unten ja selber anschaun ...
Meine config.php Datei die die Tabellen erstellt.
Code:
<?php
error_reporting(E_ALL);
// MySQL-Verbindung herstellen
$MYSQL_HOST = 'localhost';
$MYSQL_USER = '???';
$MYSQL_PASS = '???';
$MYSQL_DATA = '???';
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
// Tabellen erstelleb
$sql = 'CREATE TABLE `Online` ('
. ' `IP` VARCHAR(15) NULL, '
. ' `Datum` DATETIME NULL'
. ' )';
mysql_query($sql);
echo "Online erstellt..<br>";
$sql = 'CREATE TABLE `Counter` ('
. ' `ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, '
. ' `Datum` DATE NOT NULL, '
. ' `Anzahl` INT NULL DEFAULT \'0\' '
. ' )';
mysql_query($sql) OR die ("<pre>\n".$sql."</pre>\n".mysql_error());
echo "Counter erstellt..<br>";
?>
Die Datei die die Werte ausgeben soll:
Code:
<?php
error_reporting(E_ALL);
// MySQL-Verbindung herstellen
$MYSQL_HOST = '???';
$MYSQL_USER = '???';
$MYSQL_PASS = '???';
$MYSQL_DATA = '???';
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
?>
<?php
// Prüfen, ob bereits ein Counter für den
// heutigen Tag erstellt wurde
$sql = "SELECT
ID
FROM
Counter
WHERE
Datum = CURDATE()
";
$result = mysql_query($sql);
// ist der Tag nocht nicht vorhanden,
// wird ein neuer Tagescounter erstellt
if(!mysql_num_rows($result)){
$sql = "INSERT INTO
Counter
SET
Datum = CURDATE()
";
mysql_query($sql);
}
// Alte (mehr als 1 Tag) IPs in 'Online' löschen
// damit die Datenbank nicht überfüllt wird
$sql = "DELETE FROM
Online
WHERE
DATE_SUB(NOW(), INTERVAL 1 DAY) > Datum
";
mysql_query($sql);
// Überprüfe, ob die IP bereits gespeichert ist
$sql = "SELECT
IP
FROM
Online
Where
IP = '".$_SERVER['REMOTE_ADDR']."'";
$result = mysql_query($sql);
// Falls nicht, wird sie gespeichert...
if (!mysql_num_rows($result)){
$sql = "INSERT INTO
Online
(IP,
Datum
)
VALUES ('".$_SERVER['REMOTE_ADDR']."',
NOW()
)
";
mysql_query($sql);
// ... und die Anzahl wird um 1 erhöht
$sql = "UPDATE
Counter
SET
Anzahl = Anzahl+1
WHERE
Datum = CURDATE()
";
mysql_query($sql);
}
// Ansonsten wird ihr Datum aktualisiert
else {
$sql = "UPDATE
Online
SET
Datum = NOW()
WHERE
IP = '".$_SERVER['REMOTE_ADDR']."'
";
mysql_query($sql);
}
?>
<?php
echo "<h1>Statistik</h1>\n";
echo " <table cellpadding=\"2\" style=\"margin-bottom:10px;\">\n".
" <tr><td>Jetzt</td><td style=\"text-align:right;\">".$user_now."</td></tr>\n".
" <tr><td>Heute</td><td style=\"text-align:right;\">".$user_heute."</td></tr>\n".
" <tr><td>Gestern</td><td style=\"text-align:right;\">".$user_gestern."</td></tr>\n".
" <tr><td>Gesamt</td><td style=\"text-align:right;\">".$user_gesamt."</td></tr>\n".
" </table>\n";
?>
Die Datei die die Werte einlesen soll.
Code:
<?php
error_reporting(E_ALL);
// MySQL-Verbindung herstellen
$MYSQL_HOST = 'localhost';
$MYSQL_USER = '???';
$MYSQL_PASS = '???';
$MYSQL_DATA = '???';
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
?>
<?php
// Alle IPs, die nicht älter als 2 Minuten sind,
// werden gezählt
$sql = "SELECT
COUNT(*)
FROM
Online
WHERE
DATE_SUB(NOW(), INTERVAL 2 MINUTE) < Datum
";
$result = mysql_query($sql);
$user_now = mysql_result($result, 0);
?>
<?php
// User die 'heute' auf der Seite waren
$sql = "SELECT
Anzahl
FROM
Counter
WHERE
Datum = CURDATE()
";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
$user_heute = $row['Anzahl'];
?>
<?php
// User die 'gestern' auf der Seite waren
$sql = "SELECT
Anzahl
FROM
Counter
WHERE
Datum = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
$user_gestern = $row['Anzahl'];
?>
<?php
// User die insgesamt die Seite besucht haben.
// Dazu wird die Gruppenfunktion SUM()
// verwendet, die alle Werte der Spalte 'Anzahl' summiert
$sql = "SELECT
SUM(Anzahl)
FROM
Counter
";
$result = mysql_query($sql);
$user_gesamt = mysql_result($result, 0);
?>
Was das ergebniss ist seht ihr hier: http://gbc.inetservice24.de/proton/statistik.phtml
Dieser Beitrag wurde am 27.09.2008 um 09:50:58 Uhr von DerGermane zum 1. Mal editiert.
http://www.proton-tuning.de.tf
|
|
|
27.09.2008 12:20 Uhr
|
RE:
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Datei z.B. readStatistik.php
> Muss auf jeder Seite deiner Homepage inkludiert werden!
PHP:
<?php
error_reporting(E_ALL);
// MySQL-Verbindung herstellen
$MYSQL_HOST = '???';
$MYSQL_USER = '???';
$MYSQL_PASS = '???';
$MYSQL_DATA = '???';
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
/*
* DATENBANKTABELLE AKTUALISIEREN bzw. WERTE SPEICHERN
*/
// Prüfen, ob bereits ein Counter für den
// heutigen Tag erstellt wurde
$sql = "SELECT
ID
FROM
Counter
WHERE
Datum = CURDATE()
";
$result = mysql_query($sql);
// ist der Tag nocht nicht vorhanden,
// wird ein neuer Tagescounter erstellt
if(!mysql_num_rows($result)){
$sql = "INSERT INTO
Counter
SET
Datum = CURDATE()
";
mysql_query($sql);
}
// Alte (mehr als 1 Tag) IPs in 'Online' löschen
// damit die Datenbank nicht überfüllt wird
$sql = "DELETE FROM
Online
WHERE
DATE_SUB(NOW(), INTERVAL 1 DAY) > Datum
";
mysql_query($sql);
// Überprüfe, ob die IP bereits gespeichert ist
$sql = "SELECT
IP
FROM
Online
Where
IP = '".$_SERVER['REMOTE_ADDR']."'";
$result = mysql_query($sql);
// Falls nicht, wird sie gespeichert...
if (!mysql_num_rows($result)){
$sql = "INSERT INTO
Online
(IP,
Datum
)
VALUES ('".$_SERVER['REMOTE_ADDR']."',
NOW()
)
";
mysql_query($sql);
// ... und die Anzahl wird um 1 erhöht
$sql = "UPDATE
Counter
SET
Anzahl = Anzahl+1
WHERE
Datum = CURDATE()
";
mysql_query($sql);
}
// Ansonsten wird ihr Datum aktualisiert
else {
$sql = "UPDATE
Online
SET
Datum = NOW()
WHERE
IP = '".$_SERVER['REMOTE_ADDR']."'
";
mysql_query($sql);
}
/*
* DATEN AUS DEN TABELLEN AUSLESEN
*/
// Alle IPs, die nicht älter als 2 Minuten sind,
// werden gezählt
$sql = "SELECT
COUNT(*)
FROM
Online
WHERE
DATE_SUB(NOW(), INTERVAL 2 MINUTE) < Datum
";
$result = mysql_query($sql);
$user_now = mysql_result($result, 0);
// User die 'heute' auf der Seite waren
$sql = "SELECT
Anzahl
FROM
Counter
WHERE
Datum = CURDATE()
";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
$user_heute = $row['Anzahl'];
// User die 'gestern' auf der Seite waren
$sql = "SELECT
Anzahl
FROM
Counter
WHERE
Datum = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
$user_gestern = $row['Anzahl'];
// User die insgesamt die Seite besucht haben.
// Dazu wird die Gruppenfunktion SUM()
// verwendet, die alle Werte der Spalte 'Anzahl' summiert
$sql = "SELECT
SUM(Anzahl)
FROM
Counter
";
$result = mysql_query($sql);
$user_gesamt = mysql_result($result, 0);
?>
Datei zb. showStatistik.php
PHP:
<?php
/*
* DATEN AUSGEBEN
*/
echo "<h1>Statistik</h1>\n";
echo " <table cellpadding=\"2\" style=\"margin-bottom:10px;\">\n".
" <tr><td>Jetzt</td><td style=\"text-align:right;\">".$user_now."</td></tr>\n".
" <tr><td>Heute</td><td style=\"text-align:right;\">".$user_heute."</td></tr>\n".
" <tr><td>Gestern</td><td style=\"text-align:right;\">".$user_gestern."</td></tr>\n".
" <tr><td>Gesamt</td><td style=\"text-align:right;\">".$user_gesamt."</td></tr>\n".
" </table>\n";
?>
|
|
|
Seite:
|
1
2
3
4
>
|
|
|
Powered by
|
Pascal Landau
|
© 2006
|
MyWebsolution.de
|
Designed by
|
Pascal Landau
|
© 2006
|
MyWebsolution.de
|
|
|
|
|
|