anpera.net
http://anpera.homeip.net/phpbb3/

Modifikationssammlung: Statistiken
http://anpera.homeip.net/phpbb3/viewtopic.php?f=43&t=2585
Seite 1 von 2

Autor:  Eliwood [ Do 25 Mai, 2006 14:33 ]
Betreff des Beitrags:  Modifikationssammlung: Statistiken

Ja, ich dachte dass LoGD eigentlich Statistikarm ist. Der letzte Drachentöter, der jüngste Spieler, alles in allem wirklich nicht viel.
Ich habe deshalb gedacht, warum nicht eine Sammlung von neuen Statistiken eröffnen?
Das Ziel dieses Thread ist es, verschiedene Möglichkeiten für Statistiken zu sammeln, so dass andere sich ein "Menü" zusammenstellen können. Ich beginne mal:

Die letzten 5 Drachentöter/innen
Beschreibung: Listet die letzten 5 Drachentöter auf. Hier wird die News-Tabelle durchforstet und nach den entsprechenden Zeilen gesucht.

[php]
// Die letzten 5 Drachentöter/innen, 2006 by Eliwood aka Wasili
output('`n`%`bDie letzten 5 Drachentöter/innen`b`0`n');

$sql = 'SELECT `newsdate`,`accountid` FROM `news` '
.'WHERE `newstext` LIKE "%hat die abscheuliche, als % bekannte Kreatur besiegt.%" ORDER BY `newsdate` DESC';
$result = db_query($sql);

output("<table border='0' cellpadding='2' cellspacing='1' bgcolor='#999999'>",true);
output("<tr class='trhead'><td><b>Name</b></td><td><b>Drachenkills</b></td><td><b>Datum</b></td></tr>",true);
$i = 0;
while($row = db_fetch_assoc($result)) {
$sql2 = 'SELECT `name`,`dragonkills` FROM `accounts` WHERE `acctid` = "'.$row['accountid'].'" LIMIT 1';
$res2 = db_query($sql2);
if(db_num_rows($res2) == 1) {
$row2 = db_fetch_assoc($res2);
$class = ($i%2?"trdark":"trlight");
$date = date('Y-m-d',strtotime($row['newsdate']));
output('<tr>'
.'<td>`&'.$row2['name'].'`0</td>'
.'<td>`^'.$row2['dragonkills'].'`0</td>'
.'<td>`^'.$date.'`0</td>'
.'</tr>',true);
$i++;
}
if($i === 5) {
break;
}
}
rawoutput('</table>');
//Ende: Die letzten 5 Drachentöter/innen, 2006 by Eliwood aka Wasili
[/php]

Die jüngsten 5 Spieler/innen
Beschreibung: Listet die jüngsten 5 Spieler auf. Hier wird die News-Tabelle durchforstet und nach den entsprechenden Zeilen gesucht.

[php]// Die jüngsten 5 Spieler, 2006 by Eliwood aka Wasili
output('`n`%`bDie jüngsten 5 Spieler/innen:`b`0`n');

$sql = 'SELECT `newsdate`,`accountid` FROM `news` '
.'WHERE `newstext` LIKE "%hat unsere Welt betreten%" ORDER BY `newsdate` DESC';
$result = db_query($sql);

output("<table border='0' cellpadding='2' cellspacing='1' bgcolor='#999999'>",true);
output("<tr class='trhead'><td><b>Name</b></td><td><b>Datum</b></td></tr>",true);
$i = 0;
while($row = db_fetch_assoc($result)) {
$sql2 = 'SELECT `name`,`dragonkills` FROM `accounts` WHERE `acctid` = "'.$row['accountid'].'" LIMIT 1';
$res2 = db_query($sql2);
if(db_num_rows($res2) == 1) {
$row2 = db_fetch_assoc($res2);
$class = ($i%2?"trdark":"trlight");
$date = date('Y-m-d',strtotime($row['newsdate']));
output('<tr>'
.'<td>`&'.$row2['name'].'`0</td>'
.'<td>`^'.$date.'`0</td>'
.'</tr>',true);
$i++;
}
if($i === 5) {
break;
}
}
rawoutput('</table>');
//Ende: Die jüngsten 5 Spieler, 2006 by Eliwood aka Wasili[/php]

Autor:  BlackWarrior [ Do 25 Mai, 2006 14:56 ]
Betreff des Beitrags: 

jepp das habe ich mir auch gedacht und im wald habe ich mir einen kleinen bereich erstellt mit den jeweiligen kills

ich habe aber die kleine erweiterung mit drin wo auch die monsterkills mitgezählt werden :)

[php]$result = db_query(' SELECT SUM(monsterkills) AS `mk`, SUM(dragonkills) AS `dk` FROM `accounts`');
$row = db_fetch_assoc($result);

output("`8Es wurden bereits `^".$row['mk']." `8Kreaturen und `^".$row['dk']." `8grüne Drachen erlegt.`n`n");

output("`8Davon hast Du `^".($session['user']['monsterkills'])." `8Kreaturen und `^".($session['user']['dragonkills'])." `8Drachen erlegt.`n`n`c");[/php]

ich hoffe das passt hier in den thread mit rein :wink:

Autor:  Harutake [ Do 25 Mai, 2006 15:03 ]
Betreff des Beitrags: 

Die Reichsten 5
Beschreibung: Listet die reichsten 5 Spieler auf. Hier wird die Accounts-Tabelle durchforstet und nach den entsprechenden Zeilen gesucht.

edit: Giebt es zwar schon in der Ruhmeshalle... naja


[php]// Die reichsten 5 Spieler, 2006 by Daisuke, based on Eliwoods Code
output('`n`%`bDie reichsten 5 Spieler/innen:`b`0`n');

$sql = 'SELECT acctid,gold FROM accounts ORDER BY gold DESC';
$result = db_query($sql);

output("<table border='0' cellpadding='2' cellspacing='1' bgcolor='#999999'>",true);
output("<tr class='trhead'><td><b>Name</b></td><td><b>Gold</b></td></tr>",true);
$i = 0;
while($row = db_fetch_assoc($result)) {
$sql2 = 'SELECT `name`,`gold` FROM `accounts` WHERE `acctid` = "'.$row['acctid'].'" LIMIT 1';
$res2 = db_query($sql2);
if(db_num_rows($res2) == 1) {
$row2 = db_fetch_assoc($res2);
$class = ($i%2?"trdark":"trlight");
$date = date('Y-m-d',strtotime($row['newsdate']));
output('<tr>'
.'<td>`&'.$row2['name'].'`0</td>'
.'<td>`^'.$row2['gold'].'`0</td>'
.'</tr>',true);
$i++;
}
if($i === 5) {
break;
}
}
rawoutput('</table>');[/php]

Autor:  Eliwood [ Do 25 Mai, 2006 15:30 ]
Betreff des Beitrags:  Account-Statistik

Account-Statistik
Beschreibung: Gibt die Verteilung der Rassen, der besonderen Fähigkeiten an, sowie die Prozentuale Verteilung dieser, zählt Gold in den Händen und auf der Bank, Edelsteine in den Händen, Drachenkills und gibt diese Maximalwerte und Durchschnittswerte an.

[php]// Account-Statistik: Version 0.3; 2006 by Eliwood aka Wasili
$sql = 'SELECT `race`,`specialty`,`gold`,`goldinbank`,`dragonkills`,`gems` FROM `accounts` ORDER BY acctid DESC';
$res = db_query($sql);

$accounts = array();

$i = 0;
while($row = db_fetch_assoc($res)) {
if(isset($accounts['races'][$row['race']])) {
$accounts['races'][$row['race']]++;
$accounts['specialty'][$row['specialty']]++;
$accounts['gold'] += $row['gold'];
$accounts['gold'] += $row['goldinbank'];
$accounts['gems'] += $row['gems'];
$accounts['dragonkills'] += $row['dragonkills'];
} else {
$accounts['races'][$row['race']] = 1;
$accounts['specialty'][$row['specialty']] = 1;
$accounts['gold'] = $row['gold'];
$accounts['gold'] += $row['goldinbank'];
$accounts['gems'] += $row['gems'];
$accounts['dragonkills'] += $row['dragonkills'];
}
$i++;
}

// Rassenverteilung
output('`n`%`bRassenverteilung`b`0`n');
while(list($key,$val) = each($colraces)) {
if($key !== 0 && $key !== 50) {
if(empty($accounts['races'][$key])) $accounts['races'][$key] = 0;

$perc = round(($accounts['races'][$key]/$i)*100,2);

output('`b'.$val.'`b`^: `%'.$accounts['races'][$key].'`^ User mit dieser Rasse (`%'.$perc.'%`^)`0`n');
}
}

// Verteilung der Besonderen Fähigkeiten
output('`n`%`bVerteilung der Besonderen Fähigkeiten`b`0`n');
$specialty = array(
1=>"Dunkle Künste",
2=>"Mystische Kräfte",
3=>"Diebeskunst"
);
while(list($key,$val) = each($specialty)) {
if($key !== 0 && $key !== 50) {
if(empty($accounts['specialty'][$key])) $accounts['specialty'][$key] = 0;

$perc = round(($accounts['specialty'][$key]/$i)*100,2);

output('`b`^'.$val.'`0`b`^: `%'.$accounts['specialty'][$key].'`^ User mit dieser besonderen Fähigkeit (`%'.$perc.'%`^)`0`n');
}
}

// Durchschnittswerte & Maximalwerte
output('`n`%`bRekorde und Durchschnittswerte`b`0`n');
output('`@Getötete Schattenkreaturen: `^'.$accounts['dragonkills'].' Stück`@.`0`n');
output('`@Durchschittlich getötete Schattenkreaturen pro Spieler: `^'.number_format(($accounts['dragonkills']/$i),2,',','\'').' Stück`@.`0`n');
output('`@Gesammeltes Gold: `^'.$accounts['gold'].' Goldstücke`@.`0`n');
output('`@Durchschnittlich gesammeltes Gold pro User: `^'.number_format(($accounts['gold']/$i),2,',','\'').' Goldstücke`@.`0`n');
output('`@Gesammelte Edelsteine: `^'.$accounts['gems'].' Edelsteine`@.`0`n');
output('`@Durchschnittlich gesammelte Edelsteine pro User: `^'.number_format(($accounts['gems']/$i),2,',','\'').' Edelsteine`@.`0`n');

// Ende Account-Statistik: Version 0.3; 2006 by Eliwood aka Wasili[/php]

Autor:  Appx [ Do 08 Jun, 2006 14:18 ]
Betreff des Beitrags: 

hey ich find die Idee mit den Statistiken ganz toll nur weiß ich ned wie man die Einbaut kann mir einer nur ganz kurz sagen was ich machen muss damit das hinhaut ?

Mfg Appx

Autor:  Eliwood [ Do 08 Jun, 2006 15:58 ]
Betreff des Beitrags: 

Sind, soweit ich seh, alles Codeschnipsel. Die kannst du eigentlich überall hinsetzen wo du willst, würde aber vorschlagen du packst es in eine Extradatei, da es unter Umständen schon einige Zeit in Anspruch nehmen kann alle Statistiken auszuwerten ;)

Autor:  -DoM [ Do 08 Jun, 2006 18:23 ]
Betreff des Beitrags: 

da ich mich hier mal bediene auch ein paar von mir:

[php]//TopTen Tiere von -DoM (http://my-logd.com/motwd)
$order = "ASC";
if ($_GET[subop] == "least") $order = "DESC";
$sql = "SELECT count(*) as count FROM `accounts`";
$result = db_query($sql) or die(db_error(LINK));
$row = db_fetch_assoc($result);
$count = $row[count];
$sql = "SELECT hashorse, count(hashorse) as count FROM `accounts` where superuser < 2 and hashorse > 0 group by hashorse order by count desc LIMIT 0,10";
$result = db_query($sql) or die(db_error(LINK));
output("`c`b`^Die beliebtesten Kreaturen`0`b`c`n");
output('<table border="0" cellpadding="2" cellspacing="1" bgcolor="#999999" align="center"><tr class="trhead">',true);
output("<td>`bBeliebtheit`b</td><td>`bName`b</td></tr>", true);
$i=0;
while($row = db_fetch_assoc($result))
{
$tier = getmount($row[hashorse]);
output('<tr class="'.($i%2?"trlight":"trdark").'">',true);
output("<td>". number_format(round(($row[count]/$count*100),2), 2,",",".")."%</td><td>`&{$tier[mountname]}`0</td>",true);
$i++;
}
output("</table>", true);
nav();[/php]
[php]//TopTen Ruestungen von -DoM (http://my-logd.com/motwd)
$order = "ASC";
if ($_GET[subop] == "least") $order = "DESC";
$sql = "SELECT count(*) as count FROM `accounts`";
$result = db_query($sql) or die(db_error(LINK));
$row = db_fetch_assoc($result);
$count = $row[count];
$sql = "SELECT armor, count(armor) as count FROM `accounts` where superuser < 2 and armor != 'T-Shirt' group by armor order by count desc LIMIT 0,10";
$result = db_query($sql) or die(db_error(LINK));
output("`c`b`^Die beliebtesten Ruestungen`0`b`c`n");
output('<table border="0" cellpadding="2" cellspacing="1" bgcolor="#999999" align="center"><tr class="trhead">',true);
output("<td>`bBeliebtheit`b</td><td>`bName`b</td></tr>", true);
$i=0;
while($row = db_fetch_assoc($result))
{
output('<tr class="'.($i%2?"trlight":"trdark").'">',true);
output("<td>". number_format(round(($row[count]/$count*100),2), 2,",",".")."%</td><td>`&{$row[armor]}`0</td>",true);
$i++;
}
output("</table>", true);[/php]
[php]//TopTen Waffen von -DoM (http://my-logd.com/motwd)
$sql = "SELECT count(*) as count FROM `accounts`";
$result = db_query($sql) or die(db_error(LINK));
$row = db_fetch_assoc($result);
$count = $row[count];
$sql = "SELECT weapon, count(weapon) as count FROM `accounts` WHERE superuser < 2 and weapon != 'Fists' group by weapon order by count desc LIMIT 0,10";
$result = db_query($sql) or die(db_error(LINK));
output("`c`b`^Die beliebtesten Waffen`0`b`c`n");
output('<table border="0" cellpadding="2" cellspacing="1" bgcolor="#999999" align="center"><tr class="trhead">',true);
output("<td>`bBeliebtheit`b</td><td>`bName`b</td></tr>", true);
$i=0;
while($row = db_fetch_assoc($result))
{
output('<tr class="'.($i%2?"trlight":"trdark").'">',true);
output("<td>". number_format(round(($row[count]/$count*100),2), 2,",",".")."%</td><td>`&{$row[weapon]}`0</td>",true);
$i++;
}
output("</table>", true);[/php]

Autor:  Appx [ Do 08 Jun, 2006 21:32 ]
Betreff des Beitrags: 

Sry das ich nerve leute aber kann mir jemand die ganzen Codeschnipsel zusammen tun in eine Datei damit ich das auf der Startseite als "Statistik" veröffendlichen kann ......

Habs schon versucht aber bei mir kommen da leider leuter fehler meldungen

Wäre voll super nett von euch pls

Mfg Appx

Autor:  -DoM [ Do 08 Jun, 2006 21:56 ]
Betreff des Beitrags: 

Alle bisherigen Posts in einer Datei....

Aber je nach dem wie und wo du das einbaust, musst du die Links anpassen. Ich hoffe das bekommste hin..... :!:

Dateianhänge:
statistik.rar [2.44 KIB]
176-mal heruntergeladen

Autor:  Noel [ Mo 02 Apr, 2007 18:49 ]
Betreff des Beitrags: 

hallo... finde die statistiken richtig toll :) aber eine fehlt mir persönlich und ich bekomm es nach wochenlangen rumtesten einfach nicht hin. ich würde mir gerne anzeigen lassen welches template am beliebtesten ist. kann mir da vielleicht jemand weiterhelfen?
gruß noel

Autor:  dragonslayer [ Fr 06 Apr, 2007 00:59 ]
Betreff des Beitrags: 

Ich weiß nicht mehr wie die original stats.php aussieht, aber so hier sieht mein case zweig aus in dem ich die Skin Auflistung auslese:


[php]
<?
case 'skins':

stats_nav();

$str_out = '';

// Statistik abrufen
$sql = 'SELECT a.prefs
FROM accounts a';
$res = db_query($sql);

$arr_skins = array();
$int_sum = 0;

while($s = db_fetch_assoc($res)) {

$arr_prefs = unserialize($s['prefs']);
$arr_skins[$arr_prefs['template']]++;
$int_sum++;

}

arsort($arr_skins);

// Introtext
$str_out .= '`&'.$arr_stat['desc'].'`n`n';

$str_out .= 'Gesamt: '.number_format($int_sum).'`n`n';

// Tabelle
$str_out .= '<table border="0">
<tr class="trhead">
<td>`bPlatz`b</td>
<td>`bSkin`b</td>
<td>`bAnzahl`b</td>
</tr>';

// Inhalt
$str_class = 'trlight';
$int_counter = 1;

foreach($arr_skins as $name=>$val) {

$name = (!empty($name) ? $name : 'Unbekannt');

$str_grafbar = grafbar($int_sum, $val, 300,20);

$val = number_format($val);

$str_out .= '<tr class="'.$str_class.'">
<td>'.$int_counter .'</td>
<td>'.$name .'`&</td>
<td>'.$str_grafbar.' `b'.$val.'`b</td>
</tr>';

$int_counter++;
}

$str_out .= '</table>';

output($str_out,true);

break;

?>
[/php]

Autor:  MySql [ Fr 24 Aug, 2007 11:37 ]
Betreff des Beitrags: 

-DoM? Wie soll ich die Function " nav(); " kommentieren?

Autor:  -DoM [ Fr 24 Aug, 2007 23:29 ]
Betreff des Beitrags: 

MySql hat geschrieben:
-DoM? Wie soll ich die Function " nav(); " kommentieren?


Ich weiss zwar nicht wozu, aber du kannst es hiermit kommentieren:
[php]//[/php]oder[php]/* ... */[/php]

Autor:  Rishiêll [ Sa 25 Aug, 2007 00:11 ]
Betreff des Beitrags: 

Dom ich glaube er meint ehr wie er die Funktion kommieren soll im Sinne vom dem was sie tut ;) Was meiner Ansicht nach eine recht seltsame frage ist o.O Aber naja beantworten wir sie dir mal :P
Die Funktion setzt die Navigation für die Rückkehrnavs.

Autor:  MySql [ Sa 25 Aug, 2007 11:04 ]
Betreff des Beitrags: 

Er sagt mir aber , das er sie nicht kennt o.ô

Legend of the three Worlds - Problem hat geschrieben:
Undefindet function nav()


:? :? :? :? :?

Autor:  Rishiêll [ Sa 25 Aug, 2007 13:22 ]
Betreff des Beitrags: 

Keine Source kein Suppport ;)

Autor:  MySql [ Sa 25 Aug, 2007 13:41 ]
Betreff des Beitrags: 

lol

Source

Hab vergessen meinen neuen Server einzutragen, kann ja mal passieren o.ô

Autor:  Rishiêll [ Sa 25 Aug, 2007 13:58 ]
Betreff des Beitrags: 

So und nun mal komplette Fehlermeldung denn die Datei kann ich in deiner Source nicht finden und ich kann nicht hellsehen in welche Datei du das gesteckt hast oder wie du sie genannt hast o.O

Autor:  Heximus [ Sa 25 Aug, 2007 14:17 ]
Betreff des Beitrags: 

Hehe is ne tolle Idee ^^

Hab eingebaut un funzt alles prima

Mfg,
Heximus

Autor:  MySql [ Sa 25 Aug, 2007 14:28 ]
Betreff des Beitrags: 

Rishiêll hat geschrieben:
So und nun mal komplette Fehlermeldung denn die Datei kann ich in deiner Source nicht finden und ich kann nicht hellsehen in welche Datei du das gesteckt hast oder wie du sie genannt hast o.O


In der hof.php ..

hof.php hat geschrieben:
Fatal error: Call to undefined function: nav() in /srv/www/web1/html/lotgd/hof.php on line 249

Seite 1 von 2 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/