Andreas Korthaus: Daten aus zwei Tabellen (MySQL) ausgeben

Beitrag lesen

Hi!

xxcontent

titel   |   content  |   id_links   |   id_rechts

frame_links

id_links  |   titel   |    content

frame_rechts

id_rechts |  titel    |   content

SELECT
  *
FROM
  xxcontent
LEFT JOIN frame_links
  ON xxcontent.id_links = content_links.id_links
LEFT JOIN frame_rechts
  ON content.id_rechts = frame_rechts.id_rechts

was ist hier falsch?

content_links? Welche Tabelle soll das sein?

oder wie mache ich eine ausgabe in php?

momentan mache ich die ausgabe so:

$row['titel'] gibt es hier auch die möglichkeit zusagen ich möchte nur frame_links.titel bloss wie sähe das dann aus?

Wenn Du nur links willst, wieso dann dern Join auf 2 Tabellen?

Zum einen hast Du wie gesagt ein Problem  mit der SQL-Abfrage, was Du auch hättest erfahren können wenn Du nach mysql_query() folgende Zeile eingefügt hättest:

echo mysql_error();

das hätte Dir was ausgegeben, der Art "Tabellenname nicht gefunden..."
(Bitte ausprobieren damit Du es fürs nächste mal behälst!)

Außerdem hast Du das Problem, dass beide Spalten gleich heißen, woher soll dann PHP/MySQL wissen welchen Titel Du jetzt haben willst?

Daher würde ich sowas vorschlagen:

SELECT
  frame_rechts.titel as titel_rechts,
  frame_links.titel as titel_links,
  frame_rechts.content as content_rechts,
  frame_links.content as content_links
FROM
...

das kannst Du dann im Script über $row['titel_rechts'] .. abfragen. Aber bedenke dass Du nur die Spalten "selektieren" solltest, die Du auch tatsächlich brauchst, und vor allem solltest Du nur auf die Tabellen joinen, die Du brauchst.

Und noch ein Hinweis, wenn Du nicht weißt was genau Dir MySQL zurückgibt, schreibe mal statt einfach blind zu probieren wie echo $row['titel']:

var_dump($row);

Da bekommst Du dann genaue Infos was genau Dir MySQL zurückgegeben hat, probiere das am besten auch  mal aus!

Lese Dir auch sorgfältig http://de3.php.net/mysql durch, da lernst Du dann auch die ganzen Dir zur Verfügung stehenden Funktionen kennen, man musst nicht direkt alles anwendern oder 100%ig verstehen, es ist aber schon ein großer Vorteil wenn man weiß was es so alles gibt.

Grüße
Andreas