zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden SQL-Query. username/gast_id aller Teilnehme rbestimmter Map holen.

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 29.03.2007, 15:26
Benutzerbild von nick
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 01.08.2006
Ort: Rheinland-Pfalz
Beiträge: 386
nick befindet sich auf einem aufstrebenden Ast
Standard SQL-Query. username/gast_id aller Teilnehme rbestimmter Map holen.

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

Geändert von nick (29.03.2007 um 15:31 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 29.03.2007, 16:10
Neuer Benutzer
neuer user
 
Registriert seit: 12.01.2005
Beiträge: 10
Someday befindet sich auf einem aufstrebenden Ast
Standard

Hi!

DU solltest das Ganze über sogenannte INNER JOINS machen. Mehr dazu gibts in der mySQL Dev!

Ciao
Someday
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 31.03.2007, 21:57
Benutzerbild von nick
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 01.08.2006
Ort: Rheinland-Pfalz
Beiträge: 386
nick befindet sich auf einem aufstrebenden Ast
Standard

Ja, danke. Habe es endlich hinbekommen.
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus



Alle Zeitangaben in WEZ +2. Es ist jetzt 16:41 Uhr.