Logo - MyWebsolution.de
User gesamt  :  1976247
User online  :  4
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
   
   
 
Registrieren Login User F.A.Q Suche Home

eingeloggt bleiben

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.:oops: 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? :rolleyes:

MfG
DerGermane


http://www.proton-tuning.de.tf
Profil ansehen
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++;
}
?>
Profil ansehen
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 ;)


Profil ansehen Mail senden
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
Profil ansehen
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($result0);

    
// 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($result0);
?> 



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";
?> 



Profil ansehen Mail senden
Seite: 1 2 3 4  > no reply
Powered by Pascal Landau © 2006 MyWebsolution.de
Designed by Pascal Landau © 2006 MyWebsolution.de
 
 
 
 
Home Email Impressum Disclaimer Statistik