Eindimensionales Array

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

  • Eindimensionales Array

    Hallo zusammen

    Ich möchte die Anzahl der Browser ausgeben, die zu einem Bestimmten Datum auf meine Seite zugegriffen haben. Um die Ergebnisse abzuspeichern, verwende ich ein eindimensionales Array.

    Mein Code erzeugt aber nur die Anzahl der Browser für der ersten im Array vorkommenden Browser. Was mache ich falsch?

    PHP-Code:
        $sql=array('IE''Opera''FireFox''Nix');
        
    $typ=array();
        
    $i=0;
        while(
    $anzahl=mysql_fetch_row(mysql_query('SELECT 
        COUNT(browser) AS anzahl FROM md_counter_user 
        WHERE browser LIKE \'%'
    .$sql[$i].'%\' AND 
        YEAR(datum) = '
    .$this->jahr.
        AND MONTH(datum) = '
    .$this->monat.' AND 
        DAYOFMONTH(datum) = '
    .$this->tag.' GROUP BY browser')))
            {
            
    $typ[$i]=$anzahl[$i];
            
    $i++;
            }

        echo 
    'MSIE: '.$typ[0].'<br>';
        echo 
    'Opera: '.$typ[1].'<br>';
        echo 
    'FireFox: '.$typ[2].'<br>';
        echo 
    'Nix: '.$typ[3].'<br>'
    In der Datenbank befinden sich an dem Datum jeweil 2 IE und 2 Opera. Die anderen Browser kommen nicht vor. Als ausgabe bekommen ich aber nur 2 IE und bei den anderen steht garnichts.

    Gruß Micha

  • #2
    Bastel doch einfach alle Browser in deine Query mit ein.
    EDIT:
    Sorry, ist verdammt heiss heute ^^ haste mal print_r($typ) gemacht?
    Zuletzt geändert von Hoschi0815; 26.05.2005, 13:39.

    Kommentar


    • #3
      Das würde ja einen monströsen Query ergeben. Ich wollte die Browser eigentlich schon in dem Array beibehalten, da sich die Liste der Browser ja noch um einiges erweitern soll.

      Gibt es eine Seite wo eine Liste "aller" Browserergebnisse der $_SERVER['HTTP_USER_AGENT'] Anweisung stehen ?

      Ja, ergibt: Array ( [0] => 2 [1] => )
      Zuletzt geändert von Metha; 26.05.2005, 13:44.

      Kommentar


      • #4
        Also ich würde trotzdem lieber eine "monströse" Query haben, als monströs viele Queries nacheinander auf die DB los zu jagen.

        Kommentar


        • #5
          Angenommen ich baue die Browserkennungen mit ein, wie soll das gehen?

          Ich ermitel doch die Anzahl von bestimmten Browsern und das nacheinander mit jeweil einem anden Browser. Ich kann doch nicht die jeweiligen Browserzahlen für alle Browser in nur einem Query ermitteln oder ?

          Kommentar


          • #6
            Google mal nach "list of all user-agents" oder schau hier gleich hier. Sind natürlich nicht nur Browser sondern auch Spider, Copier und diverse Tools. Aber die willst du ja evtl. auch in deiner Statistik haben.

            Kommentar


            • #7
              Ein einfaches CONT(browser) mit deiner WHERE Klausel ohne die browser zu überprüfen + ein GROUP BY browser und schon ist deine Querie fertig

              Kommentar


              • #8
                Damit würde ich aber die gesammte anzahl der Browser an dem gewählten Datum bekommen. Ich will aber die Anzahl der einzelnen Browser zu einem Datum haben.

                Danke für die User-Agent Liste!!!

                Kann mir keiner bei meinem Code helfen ???

                Kommentar


                • #9
                  PHP-Code:
                  SELECT COUNTbrowser ), browser
                  FROM deiner_tabelle
                  WHERE tag 
                  'dein_tag'
                  AND monat 'dein_monat'
                  AND jahr 'dein_jahr'
                  GROUP BY browser 
                  Und du wirst sehen, dass du alle browser ausgegeben bekommst..

                  Kommentar


                  • #10
                    @Hoschi0815
                    Mir schlägt das Wetter heute auch ganzschön auf die Pumpe

                    Damit würde ich aber die gesammte anzahl der Browser an dem gewählten Datum bekommen. Ich will aber die Anzahl der einzelnen Browser zu einem Datum haben.

                    Kommentar


                    • #11
                      Nur zu verständlich Ich brauch jetzt auch erstmal ein kühles blondes, und danach ein bier

                      Kommentar


                      • #12
                        Dir sei es gegönnt!

                        Bei meinem Problem mit dem Array kannst du mir dann aber auch nicht helfen oder ?

                        Scheinbar läuft die SChleife nicht bis zum Ende durch, oder übernimmt die Werte nicht? Ich kann blos bei meinem Code nichts finden.
                        Hier nochmal der Output von print_r: Array ( [0] => 2 [1] => )

                        Kommentar


                        • #13
                          Naja, ich frage mich halt immernoch warum du die Browser in einen Array packen willst... Mein Vorschlag wäre:

                          PHP-Code:
                          $sql="SELECT count(browser) AS num_browser,browser FROM
                           Tabelle WHERE ..... GROUP BY browser"
                          ;
                          $query=mysql_query($query);

                          $browser=array();

                          while(
                          $row=mysql_fetch_array($query))
                                  {
                                  
                          $browser[]=$row;
                                  }

                          for(
                          $i=0;$i<count($browser);$i++)
                              {
                               echo 
                          $browser[$i]['browser']." benutzen
                          "
                          .$browser[$i]['num_browser'];
                              } 
                          Dann brauchste auch garnicht alle Browser aufschreiben, also erspartes dir auch zeit
                          EDIT:
                          Und ansonsten lass dir mal per echo deine Query ausgeben
                          Zuletzt geändert von Hoschi0815; 26.05.2005, 15:06.

                          Kommentar


                          • #14
                            ok, so klappts:

                            PHP-Code:
                            $sql='SELECT COUNT(browser) AS anzahl, browser
                                    FROM md_counter_user WHERE 
                                    YEAR(datum)='
                            .$this->jahr.' AND 
                                    MONTH(datum)='
                            .$this->monat.' AND 
                                    DAYOFMONTH(datum)='
                            .$this->tag.' GROUP BY browser';

                            $qry=mysql_query($sql);
                            $bwr=array();

                            while(
                            $row=mysql_fetch_array($qry))
                                {
                            $bwr[]=$row;}

                            for(
                            $i=1$i<count($bwr); $i++)
                                {
                                echo 
                            $bwr[$i]['browser']." benutzen ".$bwr[$i]['anzahl'].'<br>';
                                } 
                            Danke für deine Hilfe Hoschi0815. Jetzt brauch auch ich ein kühles blondes

                            Kommentar


                            • #15
                              Gerne und Prost
                              Aber biste dir sicher, dass du alle Ergebnisse angezeigt bekommst? Sollte $i nicht besser auf 0 gesetzt werden?

                              Kommentar

                              Lädt...
                              X