Besucher zählen

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

  • Besucher zählen

    Ich habe folgende MYSQL Abfrage:


    SELECT
    count(*) as numberofvisitors
    FROM
    base
    WHERE
    base.time > '$current_period' AND
    base.time < '$next_period'
    GROUP BY
    base.ip;

    In base.ip gibt es ungefähr 190 Einträge mit zahlreichen unterschiedlichen IPs
    nun möchte ich nur die Zählen, die nicht doppelt sind. Das habe ich mit GROUP BY versucht. Leider bekomme ich immer die Ausgabe "1". Was könnte ich da falsch machen? Die Zeitwerte stimmen, das habe ich geprüft
    Zuletzt geändert von sanktusm; 10.07.2010, 16:55.

  • #2
    Zitat von sanktusm Beitrag anzeigen
    In base.ip gibt es ungefähr 190 Einträge mit zahlreichen unterschiedlichen IPs nun möchte ich nur die Zählen, die nicht doppelt sind. Das habe ich mit GROUP BY versucht.
    Was soll das bewirken?

    Damit bekämst du zu einer base.ip, die fünf mal in den Daten vorkommt, einen Datensatz, in dem COUNT den Wert 5 liefert.
    Was hat das jetzt mit „nicht doppelt“ zu tun?

    Leider bekomme ich immer die Ausgabe "1". Was könnte ich da falsch machen?
    Da du nicht mal Beispieldaten zeigst - keine Ahnung.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Ja ich mache da einiges falsch

      ich will einfach zählen wie viele unterschiedliche ips es in dem Datensatz gibt. Ist das verständlich geworden?

      Kommentar


      • #4
        Zitat von sanktusm Beitrag anzeigen
        ich will einfach zählen wie viele unterschiedliche ips es in dem Datensatz gibt.
        Wenn du nur eine Spalte hast, die eine IP enthält - base.ip hattest du im Beispiel genannt - dann brauchst du nicht viel zählen, die Antwort lautet immer 1: Es gibt pro Datensatz genau eine Spalte mit einer IP, also auch genau einen Inhalt (der ggf. leer/NULL/sonstwas sein mag) - und damit genau eine „unterschiedliche IP pro Datensatz“.

        Ist das verständlich geworden?
        Nein.
        Und du bist eigentlich lange genug hier dabei, dass du es inzwischen ein bisschen besser wissen solltest.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          entschuldigung

          ich habe viele Einträge mit unterschiedlichen IPs als mehrere Zeilen. Es sollte nicht 1 rauskommen:

          Kommentar


          • #6
            Zitat von sanktusm Beitrag anzeigen
            Es sollte nicht 1 rauskommen:
            Schön für dich, aber weiter sind wir damit immer noch nicht.

            Entweder lieferst du jetzt Beispieldaten und das mit diesen erwartete Ergebnis, so dass das ganze nachvollziehbar wird - oder nach der nächsten Antwort von dir, die wieder nichts neues bringt, wird getrasht.


            Btw.: Beispieldaten zu umfangreicheren Aufgabestellungen sind immer schön in der Form eines CREATE TABLE- und zugehöriger INSERT-Statements. Damit kann man das nämlich gleich per Copy&Paste und Einfügen im phpMyAdmin testen.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              id ip
              1 123
              2 123
              3 234
              4 234
              5 345
              6 123
              Nehmen wir an es wird die Ip von Nutzern in diese Tabelle gesetzt.
              die IP kommt manchmal zwei oder drei mal vor, weil der selbe besucher die Seite mehrmals besucht hat.

              Nun sind es genau 3 unterschiedliche Besucher die es gilt zu zählen. Wie mach ich das?

              Kommentar


              • #8
                Ich glaube so kann es gehen

                $sqlvt = "SELECT
                count(distinct ip) as numberofvisits
                FROM
                base
                WHERE
                base.time > '$current_period' AND
                base.time < '$next_period';";

                Bitte um kurze Rückmeldung ob, das so schlüssig ist

                Kommentar


                • #9
                  Code:
                  SELECT distinct(ip) as numberofvisitors
                  FROM base 
                  WHERE base.time > '$current_period' AND base.time < '$next_period';
                  Hope it helps

                  Kommentar

                  Lädt...
                  X