fehlerhafte Datenbankabfrage

Lime

frisch fruchtig
Hallo Leute,

ich grübel jetzt schon eine Weile, finde aber den Fehler nicht. Vielleicht bin ich auch einfach nur Blind...

Code:
SELECT a.*,b.name AS servername,c.name AS rassename,d.name AS sexname
	FROM characters AS a
	INNER JOIN server AS b ON a.serverID=b.id
	INNER JOIN rasse AS c ON a.rasse=c.id
	INNER JOIN sex AS d ON a.sex=d.id 
	WHERE a.userID='".$_SESSION['userid']."'

Erläuterung:
Tabelle a (characters) enthält id, name, serverID, rasse, sex, level
Tabelle b (server) enthält id, name
Tabelle c (rasse) enthält id, name
Tabelle d (sex) enthält id, name

Eigentlich will ich alle Einträge aus a (characters) wo die userID der Session entspricht.
Bei b, c, d steht jeweils eine ID für einen bestimmten Namen, den ich halt statt der ID am Ende gerne hätte...

gruß
 
Der Code hat keinen direkten Fehler.

Was geht denn nicht? Beschreibe den 'Fehler' mal genauer.
Gibts eine Fehlermeldung?
 
Ich hab ne Seite mit Smarty laufen...
Code:
SELECT * FROM characters WHERE a.userID='".$_SESSION['userid']."'
funktioniert einwandfrei... Möchte nun aber statt den IDs halt die passenden Namen zu den IDs haben.

Vorher funktioniert die Ausgabe in Smarty normal, nun wird einfach nichts übergeben - wie es aussieht...
 
Da die diese Art von Fragen sehr oft kommt, habe ich mal ein Tutorial geschrieben wie man am besten auf Fehlersuche geht.
PHP MySQL Debug Queries
Geh es doch mal durch und falls du die Lösung nicht findest, poste mal das ausgegebe SQL-Statement ins Forum.

Eine Idee:
Du verbindest alle mit INNER JOIN. Wenn eines der Verknüpfenden Felder leer ist oder in einer der Detail-Tabellen der Eintrag fehlt, dann findet er nix.
Wechsle mal alle deine INNER JOIN durch LEFT JOIN aus.
 
Ich kenn bisher nur INNER JOIN, vielleicht liegt darin das Problem.
Passt soweit aber auch, weil immer ein Eintrag vorhanden ist (beim INSERT wird aus einer Dropdown gewählt).

Habe den Fehler gefunden.... wieder sehr banal. In der Characters-table war noch aus früherer Zeit bei der Spalte 'sex' ein m für Männlich, statt eine 1 ...

Dein Tutorial schau ich mir dennoch noch einmal an!

Gruß und Danke, Lime
 
Zurück