ilch Forum » Ilch Clan 1.1 » Allgemein » Userstatistik

Geschlossen
  1. #1
    User Pic
    MagistYata Mitglied
    Registriert seit
    22.12.2007
    Beiträge
    861
    Beitragswertungen
    6 Beitragspunkte
    Hallo,
    wie kann ich die userdetails so abändern, dass ich bestimmte Details (so wie auf dem Bild) darstellen kann?
    gesperrtes Bild

    oder besser gefragt, gibt es das als Modul?
    Streß ist Lebensdiebstahl
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.637
    Beitragswertungen
    1193 Beitragspunkte
    Ola... ein Bild von meiner Userstatisitk!

    Ich habe alle Datenbankabfragen in der user_details.php eingefügt und dann an das Template ausgegeben. Hier mal das Beispiel an den Kommentaren:

    Zahlen:
    $kommetaregesamt = @db_result(db_query('SELECT COUNT(id) FROM prefix_koms'),0);
    $kommetareuser = @db_result(db_query('SELECT COUNT(id) FROM prefix_koms WHERE name="'.$row['name'].'"'),0);


    Balken:
    $kommetarebalken = '<img src="../include/images/wars/balkendunkel.jpg" width="'.round($kommetareuser/$kommetaregesamt*150,0).'" height="10"><img style="border: 1px solid #666666" src="../include/images/wars/balkenhell.jpg" width="'.round(150-$kommetareuser/$kommetaregesamt*150,0).'" height="10">';

    wobei hier die 150 die Balkenbreite angibt!

    Ausgabe:
    $ar = array (
        'KOMGES' => $kommetaregesamt,
        'KOMUSER' => $kommetareuser,
        'KOMBAL' => $kommetarebalken,
    );


    In der userdetails.htm dann passend einbinden:
        
    {KOMGES}
    {KOMUSER}
    {KOMBAL}


    Man kann es auch anders, vielleicht auch besser lösen, zB. die direkte Einbindung in profilefields.php!
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    MagistYata Mitglied
    Registriert seit
    22.12.2007
    Beiträge
    861
    Beitragswertungen
    6 Beitragspunkte
    Jo, ist aus euerem Clan. Erst mal vielen Dank für die Anregungen. Were mich heute Nachmittag gleich mal drüber machen.
    Nur ne Frage hätte ich noch. Wie geht das mit den Rangpunkten ...noch 488 nötig ...?
    Muss ich da einen neuen Eintrag in der Datenbank vornehmen?
    Streß ist Lebensdiebstahl
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    MagistYata Mitglied
    Registriert seit
    22.12.2007
    Beiträge
    861
    Beitragswertungen
    6 Beitragspunkte
    Also das mit den Kommentaren hat funktioniert. Jetzt hätte ich bezüglich der Wars einige Fragen.
    Ich habe nun den Code:
    $warsgesamt = @db_result(db_query('SELECT COUNT(wid) FROM prefix_warmember'),0);
    $warsuser = @db_result(db_query('SELECT COUNT(uid) FROM prefix_warmember WHERE name="'.$row['name'].'"'),0);


    eingefügt. Nur kann er keinen Namen für die uid finden. Dazu müsste ich die ID bei ic_user auslesen lassen.

    Was müsste ich in diese Zeile noch einfügen, damit es funktioniert?
    WHERE name="'.$row['name'].'"'),0);
    Streß ist Lebensdiebstahl
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    MagistYata Mitglied
    Registriert seit
    22.12.2007
    Beiträge
    861
    Beitragswertungen
    6 Beitragspunkte
    Ich habe da ein klitzekleines Problemchen.
    Ich habe einen hellen und einen dunklen Balken. der Dunkle Balken sind die Daten des Users.
    Jetzt haben wir aber ca. 8000 Foreneinträge und der User hat nur ca. 1000.
    Wie kann ich die darstellung des Dunklen Balkens etwas vergrößern?, Also so das etwas mehr vom ihm angezeigt wird.?
    Streß ist Lebensdiebstahl
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.637
    Beitragswertungen
    1193 Beitragspunkte
    Zum Rang:

    Das ist ein bisschen aufwendiger!
    Als Erstes die Rangpunkte des Users ermitteln, dann die Punkte des Ranges unter den aktuellen Wert und die darüber! Ich habe hier mit: min <= $punkte ORDER BY min DESC LIMIT 1 und min > $punkte ORDER BY min ASC LIMIT 1 gearbeitet.

    Zu den Wars:

    $warsgesamt = db_result(db_query('SELECT COUNT(id) FROM `prefix_wars` WHERE status= "3"'),0);
    $warsuser = db_result(db_query('SELECT COUNT(*) FROM `prefix_warmember` a INNER JOIN `prefix_wars` b ON a.wid = b.id WHERE a.uid = "'.$uid.'" AND a.aktion = 1 AND b.status = 3'),0);


    Zu den Balken:

    Das würde einer vorherigen Berechnung bedürfen.
    Ich würde dann das eine Ergebnis mit einem bestimmten Wert multiplizieren und den Anderen mit dem gleichen Wert dividieren. Problematisch wird dann der Wert 0! Dieser müsste vorher abgefragt werden.
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Davidcool2007 Mitglied
    Registriert seit
    23.01.2009
    Beiträge
    238
    Beitragswertungen
    0 Beitragspunkte
    kann man das einfach so einfügen?
    ich find erhlich gesagt eure seite einfach nur hammer lord|schirmer

    wie kann man eigentlich das mit dem besucher machen?


    Zuletzt modifiziert von Davidcool2007 am 22.09.2009 - 00:04:04
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Akira Mitglied
    Registriert seit
    25.01.2007
    Beiträge
    1.369
    Beitragswertungen
    1 Beitragspunkte
    finde das auch gut ^^


    net schlecht glaub ich übernehm das auch in der richtung
    externer Link Visit Us zwinker
    Neue Scripte: JQuery Login usw... Turnier(externer Link Multi-Bewertung, Refferer, Forum Upload, E-Mail login
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    MagistYata Mitglied
    Registriert seit
    22.12.2007
    Beiträge
    861
    Beitragswertungen
    6 Beitragspunkte
    Morgen zusammen,
    erst mal vielen Dank Lord. Bei mir sieht es im Moment so aus:
    gesperrtes Bild
    Relativ viele Foreneinträge (2.Balken) und nur ein klitzekleiner dunkler Balken. Die Relation stimmt zwar, aber es sieht irgendwie bescheuert aus.
    Wenn ich jetzt einen Wert nehme z.B. $kommetareuser*2 (weil dann ja der dunkle Balken größer werden soll) und ihn dann beim hellen Balken dividiere kommt genau dasselbe bild wie oben raus.

    Was bedeudet eigentlich 130,0 die Null hinter 130?

    Zu den Rangpunkten:

    Wir haben in unserer userdetails.php einen Code eingebaut:
    $eprang = str_replace("300","Sergeant",$eprang);
             $eprang = str_replace("400","Staff Sergeant",$eprang);
             $eprang = str_replace("500","Technical Sergeant",$eprang);

    Die Daten werden in der prefix_user unter eprang hinterlegt.

    Geht das dann auch mit deiner Formel, und wo genau muss die rein?


    Zuletzt modifiziert von MagistYata am 22.09.2009 - 10:25:25
    Streß ist Lebensdiebstahl
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.637
    Beitragswertungen
    1193 Beitragspunkte
    @MagistYata

    round(x,y)
    x = Der Wert der gerundet werden soll
    y = Die Anzahl der Nachkommastellen, also hier ohne Kommastelle runden

    zum Problem:
    $kommetareuser*2 kann nicht funktionieren, da die gleiche Werterhöhung und -senkung in die Berechnung der jeweiligen Balken einfließen muss.

    Da ich aktuell noch in der Arbeit bin, schaue ich mir das Problem heute Abend an!

    @Davidcool2007

    Danke für die Blumen
    Was meinst Du mit einfach einfügen? Ein Modul? Leider nein!
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Akira Mitglied
    Registriert seit
    25.01.2007
    Beiträge
    1.369
    Beitragswertungen
    1 Beitragspunkte
    Magister kannste mal den code pasten für mich

    *liebguck*

    find die farbe toll lachen
    externer Link Visit Us zwinker
    Neue Scripte: JQuery Login usw... Turnier(externer Link Multi-Bewertung, Refferer, Forum Upload, E-Mail login
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    MagistYata Mitglied
    Registriert seit
    22.12.2007
    Beiträge
    861
    Beitragswertungen
    6 Beitragspunkte
    Welchen Code? Ich habe doch nur das genommen, was mir der Lord gegeben hat.
    Die Farben habe ich von unserer Clanpage übernommen und sie einfach aufgehellt.

    @Lord:
    Danke, jetzt weiß ich wenigstens wofür die Null steht.


    Zuletzt modifiziert von MagistYata am 22.09.2009 - 13:33:49
    Streß ist Lebensdiebstahl
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Davidcool2007 Mitglied
    Registriert seit
    23.01.2009
    Beiträge
    238
    Beitragswertungen
    0 Beitragspunkte
    ich würd gern wissen wie man das mit den Clanwars macht?
    wäre cool wenne mir da helfen koenntes..
    und das mit beuschern schade
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.637
    Beitragswertungen
    1193 Beitragspunkte
    @MagistYata

    Ich habe mir das nochmal angesehen und es gibt da doch mehr Probleme!
    Man müsste X Abfragen vorher setzen um fehler zu vermeiden.
    Beispiel:
    10 von 100 bei einem Multiplikator von 2 würde jetzt 20 : 80 angezeigt!
    Doch was ist wenn das Produkt größer 100 wird, d.h. ab 50!


    @Davidcool2007

    Sorry hatte ich überlesen, schau mal hier: mairu.ilch.net/index.php?forum-showposts-28

    zu den Wars, von Prinzip wie oben:
    $warsgesamt = db_result(db_query('SELECT COUNT(id) FROM `prefix_wars` WHERE status= "3"'),0);
    $warsuser = db_result(db_query('SELECT COUNT(*) FROM `prefix_warmember` a INNER JOIN `prefix_wars` b ON a.wid = b.id WHERE a.uid = "'.$uid.'" AND a.aktion = 1 AND b.status = 3'),0);
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    MagistYata Mitglied
    Registriert seit
    22.12.2007
    Beiträge
    861
    Beitragswertungen
    6 Beitragspunkte
    Ich verstehe das Problem. Da werden wir wohl die Anzeige so lassen wie sie ist.
    Kann man eigentlich auch die Wars nach Squads anzeigen lassen? Also ein Member steht in 3 verschiedenen Squads und hat dort auch jeweils einie Wars bestritten. Nun soll er in seinem Profil für jedes Spiel das er im Squad gespielt hat seine Warstatistik sehen können, also Win Lose Remies.
    Geht das? In der Datenbank unter Warmember habe ich ja nur die wid uid aktion und kom. Weiß auch gar nicht was aktion sein soll. Da steht überall 1.

    Nochmal zu den Rängen Lord. Muss ich deine Formel zum sortieren in die userdetails schreiben? Wenn ja wohin? Ist hier etwas untergegangen.


    Zuletzt modifiziert von MagistYata am 22.09.2009 - 18:45:40
    Streß ist Lebensdiebstahl
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.637
    Beitragswertungen
    1193 Beitragspunkte
    Squad ist die TeamID also prefix_wars.tid, diese wirst du halt noch in die Abfragen mir einbauen müssen. (WHERE tid = x)

    Aktion bezieht sich auf prefix_warmember.aktion, auf die Member welche sich angemeldet haben bzw. eingetragen wurden! (0=abgemeldet)

    Zu den Rängen, ja ich habe alles in den Userdetails geschrieben.
    Grundsätzlich egal wo hin, halt vor der der Ausgabe im array!
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    MagistYata Mitglied
    Registriert seit
    22.12.2007
    Beiträge
    861
    Beitragswertungen
    6 Beitragspunkte
    Also denselben Code wie im vorgegangenen Post nur, dass ich anstatt
    WHERE a.uid = "'.$uid.'" AND a.aktion = 1 AND b.status = 3'),0);
    WHERE a.uid = "'.$uid.'" AND a.tid = 3 AND b.status = 3'),0);
    schreiben muss, oder?
    Streß ist Lebensdiebstahl
    0 Mitglieder finden den Beitrag gut.
  18. #18
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.637
    Beitragswertungen
    1193 Beitragspunkte
    a steht für die Tabelle prefix_warmember
    b steht für die Tabelle prefix_wars
    ... deshalb AND b.tid = 3
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  19. #19
    User Pic
    MagistYata Mitglied
    Registriert seit
    22.12.2007
    Beiträge
    861
    Beitragswertungen
    6 Beitragspunkte
    Danke erst mal. Das geht soweit. Leider zählt er aber immer noch alle wars. Er sollte mir eigentlich nur die gesamten Wars der Team ID 3 anzeigen, und dann alle Wars, die der User gespielt hat.
    Die Anzahl der gespielten Wars in Team3 funktioniert. Wie kann ich einen Zähler für die Team ID 3 Wars einbinden?
    Ach ja mein Code dazu:
    $smackuser = db_result(db_query('SELECT COUNT(*) FROM `prefix_warmember` a INNER JOIN `prefix_wars` b ON a.wid = b.id WHERE a.uid = "'.$uid.'" AND a.aktion = 1 AND b.tid = 3'),0);



    Zuletzt modifiziert von MagistYata am 23.09.2009 - 18:17:11
    Streß ist Lebensdiebstahl
    0 Mitglieder finden den Beitrag gut.
  20. #20
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.637
    Beitragswertungen
    1193 Beitragspunkte
    Das wast Du jetzt gepostet hast bezieht sich ja auf die Abfrage des Users und seiner Spiele inm Team 3!

    Gür alle Teamspiele musst Du die wargesamt-Abfrage mit tid versehen!
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  21. #21
    User Pic
    MagistYata Mitglied
    Registriert seit
    22.12.2007
    Beiträge
    861
    Beitragswertungen
    6 Beitragspunkte
    Ich Esel. Genau das war es Lord. Danke fürs erste. Jetz muss ich nur noch das ganze für WIN Lose Draw machen. Ist ja im Prinzip die selbe Sache wie oben, oder?

    Da fällt mir doch glatt noch was ein.
    Wir haben ein Profilfeld angelegt, wo alle Squads aufgelstet sind, in dem der User spielt.
    Kann man die Abfrage so gestalten, dass nur die Balken der Squads angezeigt werden, in denen sich der User befindet?

    Wir haben nämlich 9 Squads, und da spielt nicht jeder in allen neun. Wäre ja blöd, wenn ich dann im Userprofil alle neun Balken angezeigt bekomme und ich aber nur in zwei mitspiele.
    Streß ist Lebensdiebstahl
    0 Mitglieder finden den Beitrag gut.
  22. #22
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.637
    Beitragswertungen
    1193 Beitragspunkte
    Vorher abfragen in welchen Teams der user ist und per Schleife ausgeben!

    Teams = prefix_groups
    TeamID = prefix_groupusers.gid
    UserID = prefix_groupusers.uid

    So in der Art würde ich es umsetzen! Ich hoffe es funzt, habe es nicht probiert!

    # Abfrage in welchen Teams der User ist!   
    
    	$erg = db_query('SELECT gid FROM `prefix_groupusers` WHERE uid = "'.$uid.'" ');
        while ( $row = db_fetch_assoc ( $erg ) ) 
        
        {
        
    # Ausgabe der Gesamtwars und Userteilnahme in den jeweiligen Team
        
        $warsteamgesamt = db_result(db_query('SELECT COUNT(id) FROM `prefix_wars` WHERE status= 3 AND tid = "'.$row['gid'].'" '),0); 
    	$warsteamuser = db_result(db_query('SELECT COUNT(*) FROM `prefix_warmember` a INNER JOIN `prefix_wars` b ON a.wid = b.id WHERE a.uid = "'.$uid.'" AND a.aktion = 1 AND b.status = 3 AND b.tid = "'.$row['gid'].'" '),0);
        
        }



    Zuletzt modifiziert von Lord|Schirmer am 23.09.2009 - 20:52:51
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  23. #23
    User Pic
    MagistYata Mitglied
    Registriert seit
    22.12.2007
    Beiträge
    861
    Beitragswertungen
    6 Beitragspunkte
    Also ich habe zum Anfang meiner userdetails folgenden Code:

    $erg = db_query("SELECT prefix_groups.name, prefix_groups.id FROM prefix_groupusers LEFT JOIN prefix_groups ON prefix_groups.id = prefix_groupusers.gid WHERE prefix_groupusers.uid = ".$uid);
     while ($r = db_fetch_assoc($erg)) {
      $teams .= '- <a href="index.php?teams-show-'.$r['id'].'"> '.$r['name'].'</a><br />';
     }
    
    $abf = 'SELECT * FROM prefix_user WHERE id = "'.$uid.'"';
    $erg = db_query($abf);
    $row = db_fetch_assoc($erg);

    Da ist also schon $erg erfasst und auch gid

    Auch den restlichen Code von dir habe ich einmal direkt darunter und einmal unter meinen anderen Balkenabfragen gesetzt.

    Ich erhalte nur zwei Nullen als ergebnis


    Zuletzt modifiziert von MagistYata am 23.09.2009 - 20:40:15
    Streß ist Lebensdiebstahl
    0 Mitglieder finden den Beitrag gut.
  24. #24
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.637
    Beitragswertungen
    1193 Beitragspunkte
    Das war nur der Anhalt der Umsetzung, so allein funktioniert es natürlich nicht!

    Die erste Abfrage dient nur der Ermittlung der Teams, in welchem der User ist! Dieses Ergebnis wird als TeamID nacheinander ausgegeben.

    In den folgenden Abfragen werden dann die ermittelten TeamID´s verwendet!
    Aber hier muss natürlich das Ergebnis angehangen werden, zB. so:
    $spielergebnisse .= $userteilnahme.' '.$warbalken.' '.$gesamtteamwars.'<br>';
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  25. #25
    User Pic
    MagistYata Mitglied
    Registriert seit
    22.12.2007
    Beiträge
    861
    Beitragswertungen
    6 Beitragspunkte
    Da bin ich jetzt total überfordert.


    Zuletzt modifiziert von MagistYata am 24.09.2009 - 14:38:53
    Streß ist Lebensdiebstahl
    0 Mitglieder finden den Beitrag gut.
  26. #26
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.637
    Beitragswertungen
    1193 Beitragspunkte
    Du hast Post!
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  27. #27
    User Pic
    MagistYata Mitglied
    Registriert seit
    22.12.2007
    Beiträge
    861
    Beitragswertungen
    6 Beitragspunkte
    In der Userdetails auf unserer Page steht nur {WTERG} und WTANZ}
    Habe beide eingetragen. jeweils in eine Spalte.
    Keine Balkenansicht.
    Streß ist Lebensdiebstahl
    0 Mitglieder finden den Beitrag gut.
  28. #28
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.637
    Beitragswertungen
    1193 Beitragspunkte
    Wenn Du die php ersetzt hast, welche ich dir per PM gegeben habe, dürfte das nicht so erscheinen!
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  29. #29
    User Pic
    MagistYata Mitglied
    Registriert seit
    22.12.2007
    Beiträge
    861
    Beitragswertungen
    6 Beitragspunkte
    Warning: Division by zero in /web/1/000/029/962/86024/htdocs/include/contents/user/user_details.php on line 95


    Du hast mich ja bereits davor gewarnt.
    Könnte man das ganze nicht umgehen, indem man folgendes im Vorfeld eine Abfrage ausführt, ob ein Wert 0 ist?

    *Edit:
    Der Fehler tritt ja nur dann auf, wenn ein Squad noch keinen War gespielt hat. Dann steh da logischerweise 0 von 0

    Ansonsten funkioniert es gu. Ich werde ganz einfach für jeden 0-Squad einen War anlegen.


    Zuletzt modifiziert von MagistYata am 25.09.2009 - 06:32:22
    Streß ist Lebensdiebstahl
    0 Mitglieder finden den Beitrag gut.
  30. #30
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.637
    Beitragswertungen
    1193 Beitragspunkte
    Mach einfach ein Abfrage in der Art:
    IF $erg = 0 { Ausgabe; } ELSE { Berechnung und Ausgabe; }


    Ansonsten poste mal den Abschnitt um die 95 Zeile!
    Ist das der Code welchen ich Dir gesendet habe?
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten