PHP-Statistik

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

  • PHP-Statistik

    Hi!
    Hab eine Statistik programmiert, bei der von jedem Besucher die Ip, aktueller Timestamp und ein paar sonstige Infos in eine MySQL Datenbank geschrieben werden.
    Ich möchte jetzt aus dieser Datenbank den Tag auslesen, an dem am meisten Besucher auf meiner Site waren.
    Wie mach ich das am besten?
    Vielen Dank im Voraus!

    MfG

  • #2
    Entweder SELECT..... SORT BY '[SPALTENNAME FÜR ANZAHL]'.....
    und nur den erstenwert ausgeben
    (unschön)

    oder du suchst dir hier etwas passendes raus
    http://www.mysql.de/doc/de/Functions.html
    Die Musikreview Seite

    hi, i'm a signature virus. copy me into your signature to help me spread.

    Kommentar


    • #3
      Ich glaub mit dem "SORT BY..." geht das nicht.
      Hier mal ein kleiner Ausschnitt meiner Datenbank:
      4169 | 1068549471 | 193.170.221.162 | 193.170.221.162 | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
      4168 | 1068545796 | 193.170.96.161 | 161.zid-hs.ufg.ac.at | Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
      4167 | 1068541894 | 195.194.178.152 | halls2-x.derby.ac.uk | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

      In der 1. Spalte ist die Nr., 2. ist Timestamp, 3. IP, 4. Host, 5. Info.
      Und jetzt will ich aus den über 4000 einträgen den Tag finden, an dem am meisten besucher auf meiner seite waren. Achja, zusätzlich will ich natürlich auch wissen wieviele Besucher an diesem Tag auf meiner HP waren.

      Kommentar


      • #4
        oh, sorry, hatte mich verlesen und es etwas simpler verstanden...


        Aber es geht schon mit sort by, du liehst es aus, sortierts es nach dem timestamp... dann mußt du irgendwie erkennen ab welchen Timestams der Tag wechselt, und dann sollte es kein Problem mehr geben... is aber gleibich n bißchen umständlich ==> Serverlastig
        Die Musikreview Seite

        hi, i'm a signature virus. copy me into your signature to help me spread.

        Kommentar


        • #5
          Ich zahl ja für den Server, der soll schön rechnen!*g*
          So hab ich mir das auch gedacht nur muss jedesmal die gesamete Datenbank durchlaufen werden. Hab mir gedacht es würd vielleicht etwas einfacher gehn. Ach,scheiß drauf!

          Kommentar


          • #6
            so sollte es funktionieren.
            Code:
            SELECT
                DATE_FORMAT(timestampfeld, '%Y-%m-%d') datum,
                COUNT(*) menge
            FROM
                tabelle
            GROUP BY
                datum
            ORDER BY
                menge DESC
            LIMIT 1
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Thx aber irgendwie check ich das grad nicht.
              Soll das ganze dann so aussehn?
              $irgendwas= mysql_query("SELECT DATE_FORMAT(timestampfeld, '%Y-%m-%d') datum, COUNT(*) menge FROM statistik GROUP BY datum ORDER BY menge DESC LIMIT 1");
              Und wie wird der Wert dann ausgegeben?
              Einfach mit
              PHP-Code:
              print $irgendwas
              ?

              Kommentar


              • #8
                das ist eine ganz normale query. die du bestimmt auch mal selber verarbeiten kannst.

                tipp:
                mysql_fetch_assoc() oder mysql_fetch_array()
                solltest du schon verwenden.

                und .... selberdenken macht schlauer.
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Ach verdammt, ich wollt mich heut geistig nicht mehr anstrengen aber wenns sein muss...*g*

                  Kommentar


                  • #10
                    Original geschrieben von Stargast
                    [...] aber wenns sein muss...*g*
                    es MUSS sein. und zwar IMMER.
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      Entweder kapier ich das jetzt echt nicht oder irgendwas klappt nicht. Das giebt er mir aus:

                      0 =
                      datum =
                      1 = 4255
                      menge = 4255

                      Achja, 4255 sind im moment die ganzen visits.

                      Kommentar


                      • #12
                        4255 sind absolut alle?

                        dann mache mal aus COUNT(*) menge

                        das hier.

                        COUNT(timestampfeld) menge

                        aber das datum sollte er eigentlich trotzdem angeben.

                        EDIT:
                        ich *VERSCHIEB* dich jetzt erst einmal nach sql.
                        warum ist mir das nicht vorher schon aufgefallen... *gg*

                        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                        Kommentar


                        • #13
                          Mit COUNT(timestampfeld) gibt er wieder das gleiche aus.
                          Ja, 4255 sind absolut alle.

                          Könnte es an dem liegen?
                          PHP-Code:
                          while ($irgendwas mysql_fetch_array($rekord)) {
                               foreach(
                          $irgendwas as $asdf=>$wert){
                                 print 
                          "$asdf = $wert<br>";
                               }
                            } 

                          Kommentar


                          • #14
                            Original geschrieben von Stargast
                            Ja, 4255 sind absolut alle.


                            Original geschrieben von Stargast
                            Könnte es an dem liegen?
                            nein. denn hier gibst du ja nur die werte aus. auch wenn hier die while überflüssig wäre, denn LIMIT 1 liefert ja nur einen DS zurück...

                            poste doch mal bitte die struktur einer tabelle und ein paar testdaten. mindestens unterschliedliche 5 tage mit mindestens 10 datensätzen.
                            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                            Kommentar


                            • #15
                              Also die Struktur:
                              CREATE TABLE statistik (
                              nr int(11) NOT NULL auto_increment,
                              time int(11) NOT NULL default '0',
                              ip varchar(15) NOT NULL default '',
                              host varchar(50) NOT NULL default '',
                              info varchar(100) NOT NULL default '',
                              PRIMARY KEY (nr)
                              ) TYPE=MyISAM;


                              INSERT INTO statistik VALUES (27,1052891901,'192.168.101.28','','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)');
                              INSERT INTO statistik VALUES (28,1052892919,'192.168.101.67','','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)');
                              INSERT INTO statistik VALUES (29,1052894369,'192.168.101.67','','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)');
                              INSERT INTO statistik VALUES (97,1053067348,'192.168.101.59','','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)');
                              INSERT INTO statistik VALUES (142,1053208693,'195.3.113.5','GRAZ10PROXY.aon.at','Mozilla/3.01 (compatible');
                              INSERT INTO statistik VALUES (143,1053208694,'62.46.191.55','','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)');
                              INSERT INTO statistik VALUES (224,1053464361,'62.218.81.24','simmu3-81-24.utaonline.at','Opera/7.01 (Windows NT 5.0; U) [de]');
                              INSERT INTO statistik VALUES (1294,1057326923,'62.46.191.70','L1019P06.dipool.highway.telekom.at','Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)');
                              INSERT INTO statistik VALUES (1295,1057326978,'62.46.191.70','L1019P06.dipool.highway.telekom.at','Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)');
                              INSERT INTO statistik VALUES (1376,1057600173,'62.46.191.7','L1017P07.dipool.highway.telekom.at','Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)');
                              INSERT INTO statistik VALUES (1377,1057603400,'212.152.195.69','suedu2-195-69.utaonline.at','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)');
                              INSERT INTO statistik VALUES (2059,1059588936,'62.218.76.101','simmu3-76-101.utaonline.at','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)');
                              INSERT INTO statistik VALUES (2060,1059589835,'213.173.83.197','213.173.83.197','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.0.2) Gecko/20030208 Netscape/7.02');
                              INSERT INTO statistik VALUES (2225,1059997059,'195.3.113.5','GGRI10PROXY.aon.at','Mozilla/3.01 (compatible');
                              INSERT INTO statistik VALUES (2226,1059997060,'62.46.191.180','','Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90; QXW03398)');

                              Zuletzt geändert von Stargast; 12.11.2003, 21:29.

                              Kommentar

                              Lädt...
                              X