Abfrage über zwei Tabellen. Das alte Spiel :(

idoby

Grünschnabel
Hallo..

bin nun schon seit Ewigkeiten am werkeln, ein richtiges Ergebnis bekomm ich aber nicht.

Was ich erreichen möchte ist,den Inhalt der Spalte kicons aus der Tabelle ga_konsolen dann ausgeben, wenn ga_konsolen.kid und ga_verknuepfung.kid übereinstimmen während ga_verknuepfung.gid gleich $gidg ist. Bisher schaffe ich es nur, immer einen Datensatz auszugeben - es ist unter entsprechenden Kritierien aber auf jeden Fall mehr in der DB. Mit folgendem hab ichs probiert:

PHP:
$result=mysql_query("SELECT kid FROM ga_verknuepfung WHERE gid=$gidg");
    while($row=mysql_fetch_array($result)) {
    $konsoleid=$row["kid"];
    $result=mysql_query("SELECT kicon FROM ga_konsolen WHERE kid=$konsoleid");
    while($row=mysql_fetch_array($result)) {
    $kicon=$row["kicon"];
    echo "<img src=\"../../$kicon\" border=\"0\"><br>";
    		}
	}

Hab schon rumgesucht hier und JOIN gefunden, allerdings steig ich da ganz und garnicht durch :(
Wäre wirklich nett, wenn mir jemand helfen könnte :)

Beste Grüße
 
Hallo,

du machst hier den Fehler, dass du in der äußeren Schleife die Variable $result überschreibst. Somit wird das Ergebnis der ersten Abfrage verworfen und die äußere Schleife wird vorzeitig beendet.

Mehrere Tabellen zusammenfassen kann man in der Tat mit einer JOIN-Anweisung. In deinem Fall könnte das bspw. so aussehen:

SQL:
SELECT `v`.`kid`, `k`.`kicon`
FROM `ga_verknuepfung` `v`
LEFT JOIN `ga_konsolen` `k` ON (`kid`)
WHERE `v`.`gid` = $gidg

Mehr über Joins findest du bspw. in einer Anleitung von Christoph Reeg.

Grüße,
Matthias
 
Zurück