Also, moin allerseits.
Ich versuche hier, mit einem SQL-Befehl die gast_id's bzw.
username's aller Teilnehmer in der Map 'Klo' der RPG-Welt zu holen.
Das funktioniert also folgendermaßen...
Jeder Teilnehmer der Welt hat seine Teilnehmerzeile
in der welt_teilnehmer-Tabelle.
Ist die Spalte gast_nr nicht 0, handelt es sich um einen
Gast. Die Daten der Gäste sind gespeichert in der
Tabelle welt_guests.
Bspweise wenn dort eine Zeile ist mit
gast_id=3
welt_map='Klo'
Ist der Teilnehmer [Teilnehmer sind in welt_teilnehmer gespeichert]
mit dem Spaltenwert gast_nr=3 auf'm Klo.
Ist die Teilnehmerspalte uid nicht 0, handelt es sich bei dem
Teilnehmer um einen Member. uid ist dann gleich die user_id
in xBoard_users.
Die Daten der member unter den Teilnehmern sind gespeichert
in xBoard_users.
Ist in xBoard_users eine Zeile mit
user_id=379
welt_map='kiosk'
befindet sich Teilnehmer mit uid=379 in der Welt im Kiosk.
Zitat:
SELECT welt_guests.gast_id, xBoard_users.user_id, xBoard_users.username
FROM welt_teilnehmer, welt_guests, xBoard_users
WHERE (welt_teilnehmer.uid!=0 AND xBoard_users.welt_map='Klo' AND welt_teilnehmer.uid=xBoard_users.user_id) OR (welt_guests.gast_id=welt_teilnehmer.gast_nr)
|
Mit diesem SQL-Query wollte ich nun sämtliche
Teilnehmer holen, die sich im Raum 'Klo' befinden
mit ihrer gast_id, user_id und username (wenn member).
Bei Gästen ist username=''.
Mit diesem query geht es ja eh schonmal nicht.
Ist ein Teilnehmer vom Ergebnis ein Member,
hat er z.B. user_id=379, username='Hans', gast_id=0.
Ist er ein Gast, soll er
z.B. haben gast_id=4, user_id=0, username=''
Nun bekomme ich damit aber nur die Gäste unter den
Teilnehmerzeilen, weil die Member.
In meinem php-Skript sieht es derzeit folgendermaßen aus
Code:
// Teilnehmer der eingetretenen Map für den Default-Log zum Einfügen in den "Anwesend in Map" String.
$show = '';
$first = true;
// Erst die Gäste, ...
$res = mysql_query("SELECT welt_guests.gast_id FROM welt_teilnehmer, welt_guests WHERE welt_teilnehmer.gast_nr!=0 AND welt_guests.welt_map='Arrival Town' AND welt_teilnehmer.gast_nr=welt_guests.gast_id;");
while ($row = mysql_fetch_assoc($res))
{
// Teilnehmernamen mit einem ', ' trennen.
if (!$first) {$show .= ', ';} else {$first = false;}
// Bei Gästen tritt ihre Gastnummer mit führenden Nullen als Teilnehmername.
$show .= 'Gast '.str_pad($row['gast_id'], 5, 0, 0);
}
// ... dann die member unter diesen Teilnehmern.
$res = mysql_query("SELECT xBoard_users.username FROM welt_teilnehmer, xBoard_users WHERE welt_teilnehmer.uid!=0 AND xBoard_users.welt_map='Arrival Town' AND welt_teilnehmer.uid=xBoard_users.user_id;");
while ($row = mysql_fetch_assoc($res))
{
// Teilnehmernamen mit einem ', ' trennen.
if (!$first) {$show .= ', ';} else {$first = false;}
// membername des Teilnehmers hinzufügen.
$show .= $row['username'];
}
Kennt sich hier wer besonders gut mit sql aus und
weiß bescheid?
mfg