Hallo zusammen,
ich habe folgendes Problem ich habe für das Inventar in meinem Spiel eine Tabelle für das eigentliche Inventar
Id PlayerId ItemId ItemType Count ...
und Tabellen für die Items je nach Typ, als Beispiel...
Nutzloser Kram
Id Name Price Weight ...
Waffen
Id Name Damage Price Weight ...
Wenn ich mir das Inventar nanzeigen lasse holle ich mittels LEFT JOIN die Namen der Items, das geht auch alles so lange ich eine Tabelle habe wo alle Items drinstehen.
PHP:
$inventar = $this->_db->fetchAll("SELECT ItemId, ItemType, Count FROM game_inventary
LEFT JOIN game_items ON game_items.Id = game_inventary.ItemId
WHERE PlayerId =?",$this->_user->Id);
Klappt super!!
Jetzt will ich aber das LEFT JOIN Ziel von Wert in der Spalte ItemType abhänigmachen, das wiederrum geht garnich!
PHP:
$inventar = $this->_db->fetchAll("SELECT ItemId, ItemType, Count FROM game_inventary
IF(ItemType == 'Weapon', LEFT JOIN game_items ON game_items.Id = game_inventary.ItemId, LEFT JOIN game_weapons ON game_weapons.Id = game_inventary.ItemId)
WHERE PlayerId =?",$this->_user->Id);
Aus dem Kram bei der mySQL Doku werde ich nicht so ganz schlau, kann es sein das ich das IF nur um SELECT Teil nutzten kann? Wenn ja wie könnte ich das Problem lösen ohne auf PHP zurückzugeifen und alle Items in eine Tabelle zu packen ?
Mit bitte um Hilfe
mfg Nerosmeel