Kurze Frage: Wieso fragt man die
ACCOUNT_TBL_DETAIL ab, wenn es um die Charaktere geht? Liegt denn da nicht die
CHARACTER_01_DBF nicht näher?
Kurzum, um die rhetorischen Fragen meinerseits zu beantworten: An dem Projekt, an dem ich mitwirkte, musste folgende Abfrage verwenden:
PHP Code:
<?php
$link = @mssql_connect("BLOODY\SQLEXPRESS", "sa", "password") or die ("Die von dir angegebenen MSSQL-Daten stimmen nicht.");
$db = @mssql_select_db('CHARACTER_01_DBF') or die ("Keine Zeilen / Spalten verfügbar.");
$query = mssql_query("SELECT MultiServer FROM [CHARACTER_TBL] WHERE MultiServer > 0");
$usersOnline = mssql_num_rows($query);
echo 'Es sind insgesamt '.$usersOnline.' User online.';
?>
Kurze Erklärung:
MultiServer = 0 besagt in der Regel, dass derjenige Charakter offline ist - jede andere Zahl gibt an, auf welchem Channel des Servers sich der Charakter befindet. Zumindest - ich betone und wiederhole - war es in meinem Fall so.
Außerdem noch ein Tipp: Jede Abfrage, bei der du
SELECT * angibst, wird wirklich jede Zeile + Spalte ausgewählt. Deswegen vermeide nach Möglichkeit die Auswahl der ganzen Tabelle und wähle konkret die Spalten aus, die du wirklich benötigt. Wenn jedes mal die komplette Tabelle abgefragt wird, geht das massiv auf die Ladezeit der Homepage - zumindest bei großen Tabellen, die viele Spalten haben, wie beispielsweise der
[CHARACTER_TBL].