FBIagent hat gesagt.:
Hi ,
auf jeden Fall hilft mir das.
Aber fehlt da nich noch was um zur DB zu connecten. Könnte das des hier sein?
Code:
// Verbindungsinfos
$db_host="localhost";
$db_name="l2jdb";
$db_user="FBIagent";
$db_pw="";
$db_con = mysql_connect($db_host,$db_user,$db_pw);
mysql_select_db($db_name,$db_con);
Ich kann in deinem BSP nicht nachvollziehen aus welcher tabelle du dir den Wert online
holst. Oder doch, versucht der den Wert aus der Tablle l2jdb zu holen? l2jdb is aber die
DB und 'charactere' ist die Tabelle. Lieg ich da richtig?
Könnte das dan so aussehen?
Code:
// Verbindungsinfos
$db_host="localhost";
$db_name="l2jdb";
$db_user="FBIagent";
$db_pw="";
$db_con = mysql_connect($db_host,$db_user,$db_pw);
mysql_select_db($db_name,$db_con);
$result=mysql_query("SELECT * FROM 'characters' WHERE online=1");
$player_on=0;
echo "Folgende User sind online:<br>";
WHILE ($row=mysql_fetch_array($result)){
$player_on++;
echo $row['account_name']."<br>";
}
echo "Insgesamt sind $player_on User online<br>";
Hierbei bekomm ich noch den Fehler:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
C:\Programme\apachefriends\xampp\htdocs\Homepage\Player_on.php on line
22
THX im Vorraus
MFG FBIagent
Hi
Jupp, hast das Alles so erkannt, wie ich das meinte.
Den DB-Connect hatte ich nicht mit reingebracht, da ich davon ausging, daß Dein Script bestimmt schon irgendwo mit der DB connectet. (Bei mir immer in einer Config.php, die die DB-Daten aus einer geschützten Datei ausliest, bzw die DB-Datei aus einem geschütztem Ordner included)
Die Warnung interpretiere ich mal so, daß die Zeile 22 die Anfrage in der WHILE-Schleife ist, wenn dem so ist, dann hat Deine Tabelle 'caracters' keine Spalte mit dem Namen 'online'.
Zur Zeilenbestimmung (also um PHP zu Tippen) nutze ich den PHPWriter von A.Weintrub ... bin mit dem Teil sehr zufrieden
Bei meinen Scripten lasse ich mit in der Testphase die Datenbank-Anfragen vor der Anfrage mittels ECHO anzeigen ... wenn dann nen Fehler erscheint (und ich nicht so dolle Englisch kann), kann ich diese Ausgabe kopieren und im PHPmyAdmin direkt an der DB testen und erhalte weitere Info's bei einem Fehler ... z.B. nicht vorhandene Spalten.
Ok, wenn der Script dann 'scharf' geschaltet wird, sollten diese Ausgaben rauskommen ... sieht auch für den User dann besser aus *g*.
Die Variable ONLINE setze ich zu Anfang auf 0 (Null) und zähle Diese bei jedem gefundenem Datensatz (der ONLINE ist) um eins herauf und gebe den Nick mittels Echo aus.
Genau so könntest Du die gefundenen Nick's der User in eine weitere Tabelle schreiben.
Die Anzahl der gefundenen Datensätzen könntest Du auch mittels
PHP:
$anzahl=mysql_num_rows($result);
herauslesen ... aber da dann eben nicht die Nick's.
Zur Datenbank connecte ich ähnlich wie Du:
PHP:
$outi=@mysql_connect($dbhost, $dbuser, $dbpass);
if (!$outi){
echo "Fehler ".mysql_errno."<br>Datenbank nicht erreichbar (".mysql_error().")$outi<br>";
}else{
$outi=@mysql_select_db($dbname);
if (!$outi){
echo "Fehler ".mysql_errno."<br>Datenbank nicht anwählbar (".mysql_error().")$outi<br>";
}
}
if (!$outi){
@mysql_close();
echo "Beende Script<br>";
die();
}
Wenn der Server nicht erreichbar, oder die Datenbank nicht anwählbar, wird entsprechend eine Fehlermeldung ausgegeben und der Script beendet.
Das Beenden hat eher stylistische Gründe ... die ganzen Warnungen sehen halt nicht schön aus
MfG
Posti