Admins und Gms im Ranking

08/25/2011 16:14 robinb#1
Hey Leute

Ich habe mal wieder ein Problem mit der Homepage^^
Undzwar wenn ich auf das Ranking gehe stehen außer den normalen playern auch alle Gm's / Admin's im Ranking Oo
Finde des n bisl blöd wenn die Admins im Rank ganz oben sind^^
Und außerdem hatte ich noch das problem (weshalb ich nicht einen extra thread machen wollte), dass bei user online immer entweder 5 online oder 0 online steht.
Je nach welchem Buchstaben welchen ich bei dem script bei isuse eintrage.
Wenn ich F reinschreibe steht 5 online.
wenn ich p oder j einfüge kommt 0 player online (auch wenn einer on ist)...

Bitte um Hilfe

MfG Robin :mofo:
08/25/2011 16:18 マリブ#2
Bei deinem User Online Script, müsste J rein. Es muss auch von ACCOUNT_TBL abgefragt werden und nicht von ACCOUNT_TBL_DETAIL.

Zum Ranking, müsste auch die Abfrage auf F gestellt werden, da normale Chars die Id F haben. Alles über P wird Automatisch als Admin gelesen, N ist GM.

Edit: Poste mal deine Ranking / User Online abfrage.
08/25/2011 16:27 Kurosaki'#3
Benutzt diesen Script hier für den User Online.
Code:
 <table id="servern">
<tr>
<?php
$link = @mssql_connect("MSSQL-PC\SQLEXPRESS", "sa", "MSSQL PW") or die ("Error!");
$db = @mssql_select_db('CHARACTER_01_DBF') or die ("Error in MSSQL");
$query = mssql_query('SELECT * FROM [CHARACTER_TBL] WHERE Multiserver = "1"');
$usersOnline = mssql_num_rows($query);
echo '<td width="120"><font color=black><b>User Online:</b></font></td><td width="90"><font color=green><b> ' . $usersOnline;
echo "</b></font></td>";
?>
</table>
08/25/2011 16:35 robinb#4
also...
habe des mit Account _Tbl oder gemacht wie du meintest aber jz steht immer nur 2 user online

bei den einträgen habe ich folgendes:
Ranking :

und bei user online:

MfG

also es geht jz mit dem script von kurosaki danke
das problem mit dem ranking besteht immernoch ;)
08/25/2011 16:46 alfredico#5
Online count
PHP Code:
$query mssql_query("SELECT COUNT(*) as OnPlayers FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE Multiserver != '0'");
$array mssql_fetch_array($query);
echo 
$array['OnPlayers']; 
Ranking fix
PHP Code:
$sql "SELECT m_szName, m_nJob, m_nLevel FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] ORDER BY m_nLevel DESC AND m_chLoginAuthority == 'F'"
08/25/2011 16:59 robinb#6
wo muss ich das adden in meinem eintrag beim ranking???
08/25/2011 18:20 Marv!n#7
Ein Tipp: Benutze gerade bei dem Ranking nach Möglichkeit niemals den Stern als Abfrage, sondern konkret die Spalten, die auch wirklich nur benötigt werden, denn: Der Stern bedeutet, dass alle Spalten ausgelesen bzw. ausgewählt werden, was eine teilweise echt enorme Ladezeit zur Folge hat.

Ich persöhnlich würde dir folgende Abfrage empfehlen:
PHP Code:
$sql "SELECT [m_szName], [m_nLevel], [m_nJob] FROM CHARACTER_TBL WHERE m_chAuthority = 'F' AND isblock = 'F' ORDER BY m_nLevel DESC"

Erklärung:
[m_szName], [m_nLevel], [m_nJob] sind derzeit die Spalten, die in deinem Ranking gebraucht werden - der Rest nicht.
WHERE m_chAuthority = 'F' AND isblock = 'F' bedeutet, dass nur die normalen User (m_chAuthority = 'F'), die nicht gelöscht sind (isblock = 'F'), aufgelistet werden.


Die Abfrage, für die du dich entscheidest, baust du dort ein, wo sich gerade $sql = "SELECT * FROM CHARACTER_TBL ORDER BY m_nLevel DESC"; befindet.
08/25/2011 19:48 robinb#8
danke hat geklappt
:mofo:
08/25/2011 21:35 Doomm#9
Quote:
Originally Posted by Xxl3lubbs View Post
Ein Tipp: Benutze gerade bei dem Ranking nach Möglichkeit niemals den Stern als Abfrage, sondern konkret die Spalten, die auch wirklich nur benötigt werden, denn: Der Stern bedeutet, dass alle Spalten ausgelesen bzw. ausgewählt werden, was eine teilweise echt enorme Ladezeit zur Folge hat.

Ich persöhnlich würde dir folgende Abfrage empfehlen:
PHP Code:
$sql "SELECT [m_szName], [m_nLevel], [m_nJob] FROM CHARACTER_TBL WHERE m_chAuthority = 'F' AND isblock = 'F' ORDER BY m_nLevel DESC"

Erklärung:
[m_szName], [m_nLevel], [m_nJob] sind derzeit die Spalten, die in deinem Ranking gebraucht werden - der Rest nicht.
WHERE m_chAuthority = 'F' AND isblock = 'F' bedeutet, dass nur die normalen User (m_chAuthority = 'F'), die nicht gelöscht sind (isblock = 'F'), aufgelistet werden.


Die Abfrage, für die du dich entscheidest, baust du dort ein, wo sich gerade $sql = "SELECT * FROM CHARACTER_TBL ORDER BY m_nLevel DESC"; befindet.
Rote is schon Richtig man Kanns noch vereinfachern ;)

PHP Code:
$sql "SELECT [m_szName], [m_nLevel], [m_nJob] FROM CHARACTER_TBL WHERE m_chAuthority != 'F' AND isblock = 'F' ORDER BY m_nLevel DESC"
So werden alle angezeigt auser User :)