Ich habe 3 Tabellen, von denen 2 die Spalte „Art“ enthalten. Wenn ich nun diese 3 Tabellen verbinde:
SELECT \* FROM `charakter` AS A LEFT JOIN `waff` AS B ON A.Inventar=B.Name LEFT JOIN `ausr`AS C ON A.Inventar=C.Name WHERE A.Inventar='meinInventar' LIMIT 1;
dann kommt das Ergebnis heraus, was ich auch suche und zwar sieht es dann folgendermaßen aus:
ID | Inventar | ID | Name | Art | ID | Name | Art | Gewicht
Ich benötige davon eigentlich nur „Art“ und zwar beide…
Wie kann ich per row[] die Art auslesen? Also row[Art von B] und row[Art von C]?
das ist ja auch unfug, gleicher titel für 2 verschiedene felder
besser du machst so
SELECT
A.ID as CharakterID,
A.Inventar as CharakterIventar,
B.ID as WaffenID,
B.Name as WaffenName,
B.Art as WaffenArt,
C.ID as AusruestungID,
C.Name as AusruestungName,
C.Art as AusruestungArt
FROM `charakter` AS A LEFT JOIN `waff` AS B
ON
A.Inventar=B.Name LEFT JOIN `ausr`AS C
ON
A.Inventar=C.Name WHERE A.Inventar='meinInventar'
LIMIT 1;
dann kann man die zeile auch so abrufen
$row[WaffenArt]." - "$row[AusruestungArt];
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
SELECT * ist eine furchtbar schlechte angewohnheit. Es ist nicht nur etwas langsamer, es fuehrt auch - wie in deinem Fall - zu Verwirrungen und - was noch schwerwiegender ist - zu erhoetem Speicherbedarf, da oft mehr Spalten selektiert werden (und im Speicher gehalten werden muessen) als eigentlich noetig sind.
Beim SELECT daher unbedingt die Spaltennamen angeben!
Wie das in deinem Fall aussehen kann hat RakonDark schon im vorherigen Post geschrieben.