dedlfix: Abfrage aus mehreren Tabellen

Beitrag lesen

Hi!

per mysql_query rufe ich bestimmte Spalten aus zwei verschiedenen Tabellen ab.
Wenn ich nun per
while ($row = mysql_fetch_assoc($result))
echo $row[tabelle_a.id];
die id der Einträge aus der ersten Tabelle abrufen möchte, funktioniert das nicht.

Einfach irgendwas zu probieren führt zwar gemäß dem Infinite Monkey Theorem auch irgendwann zum Ziel, doch das kann dauern.

Wenn dort stattdessen nur
echo $row[id];
steht geht das einwandfrei, aber leider kann ich dann nunmal nicht bestimmen aus welcher der beiden Tabellen die id abgerufen werden soll.

Mit einem Array-Zugriff - also dem Zugriff auf den Inhalt von $row - kannst du nicht rückwirkend das Ergebnis der Abfrage ändern. Hier kannst du nur noch auf das zugreifen, was da ist. Und wenn du nicht weißt, was da ist, mach eine Kontrollausgabe: var_dump($row) oder print_r($row). Mit der erkennst du, welche Schlüssel vorhanden sind.

Wie muss $row[tabelle_a.id] demnach richtig lauten? Muss ich evtl. den Punkt maskieren?

Nachdem du weißt, was tatsächlich vorhanden ist, solltest du dir die Grundlagen des Arrayzugriffs aneigenen, besonders: Why is $foo[bar] wrong?. Des weiteren ist es sehr empfehlenswert, beim Programmieren das error_reporting auf E_ALL (und display_errors auf on) zu stellen, damit du für solche Fehler eine Notice-Meldung angezeigt bekommst.

Wenn nun die Spaltennamen nicht nach deinem Geschmack sind, oder sie sich gegenseitig überschreiben, kannst du auch den Tipp mit den Alias-Namen beachten, um eine Eindeutigkeit zu gewährleisten.

Lo!