ilch Forum » Ilch Clan 1.1 » Module und Modifikationen » Admin Statistik

Geschlossen
  1. #1
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    Hey,

    ist es möglich was ich denke aber nur die frage lautet wie lächeln

    Die Statistik die man im Admin menü findet sprich

    Besucher Statistik
    Übersicht | letzter Monat | dieser Monat

    Das man dies in einer normalen php schreibt und diese fuer alle User zugänglich macht?

    Nur wo genau wird alle festgehalten bzw wo wird es ausgegeben finde da die datei nicht.

    Gruss
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Saarlonz Hall Of Fame
    Registriert seit
    07.08.2008
    Beiträge
    3.003
    Beitragswertungen
    235 Beitragspunkte
    Ist das nicht ausreichend??

    DEINESEITE/index.php?statistik
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    Nein sonst haette ich nicht gefragt.

    wuerde es gern genauso wie im Admin menu haben.
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    Entnimm doch die Daten der Datei admin/admin.php ab case 'besucherStatistik':.
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    Ja genau das suchte ich lächeln

    wie jedoch kann ich dort machen zb. bei Besucher nach Herkunft das er mir nur die anzeigt die mindestens 20 haben sprich nicht alle bei 1 usw auch schon

    echo_admin_site_statistik ('<br /><b>Besucher nach Herkunft</b>', 'ref', $smon, $ges, "wert DESC LIMIT 50" );


    und wie mach ich das er den link auch direkt verlinkt?


    Zuletzt modifiziert von Siggi am 17.01.2012 - 23:35:30
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    So habe nun einiges jedoch fehlt immer noch das ich nur die ref auslesen moechte die mindest 20 klicks wert haben.

    mit where habe ich es nicht hinbekommen

    und ich wuerde gerne das er mir und www garnicht im link namen anzeigt.

    moeglich den namen auszulesen und dann irgendwie das zu streichen oder so?

    Haette auch gern das Bei Browser alle Firefox etc zusammen gezaehlt werden und nicht jede Browser version einzeln

    mein code bisher
    $mon = date('n');
    
    $lastmon = $mon - 1;
    
    $jahr = date('Y');
    
    $lastjahr = $jahr;
    
    if ( $lastmon <= 0 ) { $lastmon = 12; $lastjahr = $jahr - 1; }
    
                function echo_admin_site_statistik ($title, $col, $smon, $ges, $orderQuery ) {
    
                  $sql = db_query("SELECT COUNT(*) AS wert, $col as schl FROM  `prefix_stats` WHERE mon = ".$smon." GROUP BY schl ORDER BY ".$orderQuery);
    
                  $max = @db_result(db_query("SELECT COUNT(*) as wert, $col as schl FROM prefix_stats WHERE mon = ".$smon." GROUP BY schl ORDER BY wert DESC LIMIT 1"),0,0);
    
                  if ( empty($max) ) { $max = 1; }
    
                  if ( empty($ges) ) { $ges = 1; }
    
                  echo '<tr><th align="left" colspan="4">'.$title.'</th></tr>';
    
                  while ( $r = db_fetch_assoc($sql) ) {
    
                    $wert = ( empty($r['wert']) ? 1 : $r['wert'] );
    
                    $weite = ($wert / $max) * 200;
    
    					      $prozent = ($wert * 100) / $ges;
    
    					      $prozent = number_format(round($prozent,2), 2, ',', '');
    
                    $name = $r['schl'];
    
                    if ( strlen ( $name ) >= 37 ) {
    
                      $name = substr($name,0,37).'<b>...</b>';
    
                    }
    
                    echo '<tr class="norm"><td width="240" title="'.$r['schl'].'">'.$name.'</td><td width="250">';
    
                    echo '<hr width="'.$weite.'" align="left" /></td>';
    
                    echo '<td  width="50" align="right">'.$wert.'</td></tr>';
    
                  }
    
                }
    			
                function echo_admin_site_statistik2 ($title, $col, $smon, $ges, $orderQuery ) {
    
                  $sql = db_query("SELECT COUNT(*) AS wert, $col as schl FROM  `prefix_stats` WHERE mon = ".$smon." GROUP BY schl ORDER BY ".$orderQuery);
    
                  $max = @db_result(db_query("SELECT COUNT(*) as wert, $col as schl FROM prefix_stats WHERE mon = ".$smon." GROUP BY schl ORDER BY wert DESC LIMIT 1"),0,0);
    
                  if ( empty($max) ) { $max = 1; }
    
                  if ( empty($ges) ) { $ges = 1; }
    
                  echo '<tr><th align="left" colspan="4">'.$title.'</th></tr>';
    
                  while ( $r = db_fetch_assoc($sql) ) {
    
                    $wert = ( empty($r['wert']) ? 1 : $r['wert'] );
    
                    $weite = ($wert / $max) * 200;
    
    					      $prozent = ($wert * 100) / $ges;
    
    					      $prozent = number_format(round($prozent,2), 2, ',', '');
    
                    $name = $r['schl'];
    
                    if ( strlen ( $name ) >= 37 ) {
    
                      $name = substr($name,0,37).'<b>...</b>';
    
                    }
    
                    echo '<tr class="norm"><td width="240"><a href="'.$r['schl'].'" target="_blank">'.$name.'</a></td><td width="250">';
    
                    echo '<hr width="'.$weite.'" align="left" /></td>';
    
                    echo '<td  width="50" align="right">'.$wert.'</td></tr>';
    
                  }
    
                }
    		
                echo '<table width="100%" border="0" cellspacing="1" cellpadding="4"><tr><td><b>&raquo;<u>Statistik</u></b></td></tr></table>';
    
                $smon  = $menu->get(2);
    			$dateh = date("Y-m-d");
    			$dateg = date("Y-m-d",(strtotime("now")-86400));
    			$lastjahrges = date("Y") - 1;
    			$smones = date("m") - 1;
    			
                if ( empty($smon) ) { $smon = $mon; }
    
    			$gesheute = @db_result(db_query("SELECT count FROM prefix_counter WHERE date = '".$dateh."'"),0);
    			$gesgestern = @db_result(db_query("SELECT count FROM prefix_counter WHERE date = '".$dateg."'"),0);
    			$ges = db_result(db_query("SELECT COUNT(*) FROM prefix_stats WHERE mon = ".$smon),0,0);
    			$gesall = db_result(db_query("SELECT SUM(`count`) FROM prefix_counter"),0,0);
    
     echo '<table width="200" border="0" cellspacing="3" cellpadding="3">
      <tr>
        <td><b>Heute:</b></td>
        <td>'.$gesheute.'</td>
      </tr>
      <tr>
        <td><b>Gestern:</b></td>
        <td>'.$gesgestern.'</td>
      </tr>
      <tr>
        <td><b>Diesen Monat:</b></td>
        <td>'.$ges.'</td>
      </tr>
      <tr>
        <td><b>Insgesamt:</b></td>
        <td>'.$gesall.'</td>
      </tr>
    </table>';
    			
                echo '<table cellpadding="2" border="0" cellspacing="0">';
                echo_admin_site_statistik ('<br /><br /><b>Besucher nach Browsern</b>', 'browser', $smon, $ges, "wert DESC LIMIT 5" );
                echo_admin_site_statistik2 ('<br /><br /><b>Besucher nach Herkunft</b>', 'ref', $smon, $ges, "wert DESC" );
    			echo '</table>';



    Zuletzt modifiziert von Siggi am 18.01.2012 - 14:43:50
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    Werte ab 20 Klicks: AND wert >= 20
    Zeichenkette entfernen: $ref = string_replace("www","", $ref);
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    ZitatZitat geschrieben von Lord|Schirmer

    Werte ab 20 Klicks: AND wert >= 20

    kenne ich auch so und hatte ich auch so gemacht dann sagt er mir jedoch
    1054 : Unknown column 'wert' in 'where clause' usw


    ZitatZitat geschrieben von Lord|Schirmer

    Zeichenkette entfernen: $ref = string_replace("www","", $ref);


    Fatal error: Call to undefined function string_replace()

    edit: mit $name = str_replace('www.','', $name); ging es.
    Kann man auch machen das er irgendwie nur die Domain auslesen los? also gibt zb. google.de/url, google.com/search usw das da nur steht google.com?

    und was wie gesagt noch nicht geht ist das mit wert 20


    Zuletzt modifiziert von Siggi am 18.01.2012 - 18:37:17
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    T3BAss Mitglied
    Registriert seit
    21.12.2011
    Beiträge
    133
    Beitragswertungen
    18 Beitragspunkte
    Weil "wert" nur ein Beispiel ist für eine Spalte in der Tabelle ;-)
    Und du brauchst: php.net/manual/de/function.parse-url.php
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    Ja das mit parse-url geht lächeln

    nun was halt noch fehlt und wie gesagt ja auch nicht funktioniert ist das mit den wert 20 wie könnte man es den sonst noch machen?
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    evtl. in die Ausgabeschleife ein: if ($r['wert'] >= 20) { ... }
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    hm weisste was ich lasse den mist einfach weg haue ein limit von 25 rein die meist besuchten fertig ^^

    wenn nicht so dann plan b halt lächeln

    Jedoch wie auch oben gefragt ist es auch mit so einen trick irgendwie moeglich nicht jede firefox, opera, ie usw version einzelnd aufzuzaehlen sondern irgendwie nur jeden Browser einmal scheiss egal welche version und diese zusammen zaehlen?

    wisst ihr wie ich das meine?
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    orsnipe Mitglied
    Registriert seit
    19.06.2008
    Beiträge
    425
    Beitragswertungen
    11 Beitragspunkte
    Ich weiß wie du es meinst und das würde mich auch interessieren denn die stats werden durch 20 versionen doch recht in die länge gezogen. siehe hier: externer Link
    Währ für hilfe dankbar lächeln
    Schau mich nicht in diesem Ton an, ich hab nen Tinnitus im Auge, ich seh nur Pfeifen.
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    hm wenn da so nix moeglich ist waere es nicht moeglich das man von anfang an mit der vorhandenen funktion nur den Browsername und nicht die version in die db traegt?

    wo findet man die funktion?
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    Da habt ihr mal ein Idee:
    SELECT
      (CASE
        WHEN browser LIKE '%Internet Explorer%' THEN 'Internet Explorer'     
        WHEN browser LIKE '%Firefox%' THEN 'Firefox'    
        WHEN browser LIKE '%Chrome%' THEN 'Chrome'
        WHEN browser LIKE '%Safari%' THEN 'Safari'
        WHEN browser LIKE '%Opera%' THEN 'Opera'
        ELSE 'keine Ahnung'
      END) AS browserneu,
      COUNT(*) AS wert
    FROM
      prefix_stats
    GROUP BY
      browserneu



    Zuletzt modifiziert von Lord|Schirmer am 20.01.2012 - 00:16:42
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    Jub geht lächeln Danke

    ist sowas auch mit den ref moeglich? bei mir wird angezeigt das manche von externer Link manche von externer Link manche nur von externer Link das man irgendwie alle google.com zusammen fuegt?


    Zuletzt modifiziert von Siggi am 20.01.2012 - 11:50:45
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten