Counter - gestern heute gesamt

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Counter - gestern heute gesamt

    Hallo,
    ich möchte auf meiner Homepage einen Counter einsetzen der mir die Besucher von heute, dem Vortag und insgesamt ausgibt.
    Zur Zeit habe ich einen Counter der die Gesamten Besuche in eine txt-datei schreibt (und ip prüfungen macht etc) und diese dann wieder ausgibt.
    Nun möchste ich gerne irgendwie umsteigen und würde das auch mit einer datenbank realisieren wolln, zur zeit frag ich mich nur wie ich das mache ...
    also welche spalten brauch ich und was muss das script können?
    hat da jemand erfahrungen oder tipps?
    Mess with the Besth, die like the rest!

  • #2
    Füge einfach jeden Besucher (Sperre für 30/60 min - wie Du willst) in Deine Tabelle ein, speichere Datum und die Daten, die Du für die Sperre brauchst, und die relevanten Infos (Referer, ...). Das wars schon.

    Per Abfrage kannst Du dann quasi alles erfahren. Das Script muss nur das können, was Du erfahren willst.

    => wohl eher Brainstorming
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      aber dann wird doch meine tabelle unendlich groß?
      ich mein bei 100 besuchern kein ding aber wie ist das wenn ich 10tausende oder mehr habe? (pro monat)
      Mess with the Besth, die like the rest!

      Kommentar


      • #4
        Also du hast ja alles in dem Textfile gespeichert. Also mal sicher der Zeitpunkt, wann der Aufruf erfolgt ist und warscheinlich noch die IP und vieleicht ja noch weiteres. Für alles, was du in deinem File hast brauchst du auch ein Feld in deiner DB.

        Nun musst du einfach die DB anlegen und dein Script etwas umschreiben, so das es nicht aus dem File liest sondern aus der DB.
        Die Useranzahl von Heute bzw. Gestern kannst du dann ganz einfach mit einem Query auslesen.

        Gruss
        [COLOR=red]X[/COLOR]

        Kommentar


        • #5
          du brauchst die Spalten id, datum und ipadresse
          und vor allem Lust php zu Lernen und Zeit.

          Kommentar


          • #6
            ne nochma zur erklärung!
            in der txt datei steht nur eine zahl - zb: 30912
            das ist die zahl der gesamten besucher!
            in meiner db speicher ich die ips + datum, aber nur einen tag, dann werden die gespeicherten infos gelöscht und die user werden wieder mitgezählt!
            da habe ich dann nur ca 300 einträge oder so in der db und das geht, aber um alle besucher zu speichern wäre das doch ein bissel zu krass oder?

            du brauchst die Spalten id, datum und ipadresse
            und vor allem Lust php zu Lernen und Zeit.
            hab ich doch schon gelernt -.-
            Mess with the Besth, die like the rest!

            Kommentar


            • #7
              Dann überleg dir, wie und wann du alte, nicht mehr benötige Daten wieder aus der Tabelle löschst.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Vielleicht nimmst du auch die Spalte SESSION anstatt der IP Addresse. Naja und wenn du jeden Tag 10000 Besucher hast. Und die Daten 1 Woche speicherst, dann hast du ja 70000 Einträge und damit kommt MySql locker zurecht.
                Gut geraten ist halb gewußt.

                Kommentar


                • #9
                  Starte von mir aus dann monatlich einen Cronjob (oder auch per Hand ausm ACP, wenn Du denkst, es wäre Zeit), die die DB aufräumt und relevante Daten zusammenfasst. Oder speichere zum Beispiel noch die Nummer des Tages (TO_DAYS) mit Index, etc., pp. ... Musst halt schauen, wie das am besten läuft. Sammele erstmal Daten, dann kannst Du doch schauen, wies am besten läuft.

                  Wieviel Daten Du problemlos abfragen kannst, hängt von Deinen Queries ab - für einfach heute/gestern/alle-Sachen kannst Du wohl erstmal jede Menge Daten (~100K) sammeln.
                  Die Zeit hat ihre Kinder längst gefressen

                  Kommentar


                  • #10
                    nun gut hab das jetzt erstma so gelöst wie ihr meintet:
                    PHP-Code:
                    <?php
                      $sql 
                    "INSERT INTO ip (ip, datum, referer) VALUES ('".$_SERVER["REMOTE_ADDR"]."', '".time()."', '".$_SERVER['HTTP_REFERER']."');";
                      
                    mysql_query($sql) OR die("Query: <pre>".$sql."</pre>\n"."Antwort: ".mysql_error());
                      
                    // Daten hinzufügen

                      
                    $sql "SELECT * FROM ip;";
                      
                    mysql_query($sql) OR die("Query: <pre>".$sql."</pre>\n"."Antwort: ".mysql_error());
                      while ( 
                    $row mysql_fetch_assoc($result) ) {
                        
                    // und jetzt?
                      
                    }
                    ?>
                    wie mach ich jetzt beispielsweise das er mir alle Einträge von heute ausgibt? wie muss der select aussehn?
                    Code:
                    SELECT * FROM ip WHERE datum > (time()-stdjetzt-minjetzt-sekjetzt)
                    und wie geb ich mir dann die besucher aus die nicht doppelt sind? also jede ip nur einmal?
                    Mess with the Besth, die like the rest!

                    Kommentar


                    • #11
                      das was du brauchst findest du hier
                      ich empfehle dir aber für die datum spalte dann auch den DATETIME typ zu verwenden


                      greetz subabrain!
                      Zuletzt geändert von subabrain; 29.06.2006, 13:19.

                      Kommentar

                      Lädt...
                      X