Tabellenverknüpfung (Anfängerfrage)

Hallo!
Ich möchste über php eine Tabellenverknüpfung in MySQL machen, um die Werte aus den Datenbanken auszulesen. Doch scheint es da noch einen (oder ein paar) Fehler zu geben, denn bisher wird nichts ausgelesen. (Die Verbindung zur DB funktioniert.)
Ich hoffe ihr könnt mir helfen, diese zu beseitigen.
Lg Florian

$db_link = mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);
$db_sel = mysql_select_db( MYSQL_DATENBANK )
or die(„Auswahl der Datenbank fehlgeschlagen“);

$sql = „SELECT * FROM (aufgabe INNER JOIN auftrag
ON ‚aufgabe.aufgabe-id‘ = ‚auftrag.aufgabe-id‘) INNER JOIN mitarbeiter
ON ‚auftrag.mitarbeiter-id‘ = ‚mitarbeiter.mitarbeiter-id‘“;

$query = @mysql_query($sql) or die("Query failed: " . mysql_error());
$result = mysql_fetch_assoc($query);
$id = $result[‚id‘];

echo(„Die ID ist: $id“);

aufgabe
id aufgabe-id mitarbeiter-id
1 1 1
2 1 2
3 2 2
4 3 4

auftrag
aufgabe-id auftraggeber-id
1 1
2 3
3 1

mitarbeiter
mitarbeiter-id vorname nachname rechte
1 Frank Schmidt NULL
2 Sonja Kraus NULL
3 Thomas Mann NULL
4 Sascha Reingott NULL

$db_link = mysql_connect (MYSQL_HOST, MYSQL_BENUTZER,
MYSQL_KENNWORT);
$db_sel = mysql_select_db( MYSQL_DATENBANK )
or die(„Auswahl der Datenbank fehlgeschlagen“);

$sql = „SELECT * FROM (aufgabe INNER JOIN auftrag
ON ‚aufgabe.aufgabe-id‘ = ‚auftrag.aufgabe-id‘) INNER JOIN
mitarbeiter
ON ‚auftrag.mitarbeiter-id‘ = ‚mitarbeiter.mitarbeiter-id‘“;

$query = @mysql_query($sql) or die("Query failed: " .
mysql_error());
$result = mysql_fetch_assoc($query);

als Ergebnis werden wohl einige zeilen zurückkommen , den es ist ja kein speziellerauftrag mit where gesucht.

fetch_assoc bei mehrzeilen

while ($result_row= mysql_fetch_assoc($query)) {
$id = $result_row[‚id‘]
}

bringt nur nix wenn es mehrere zeilen sind $id wird nur der letzte eintrag sein.

echo(„Die ID ist: $id“);

Ok, danke schonmal!

Also müsste es eher so heißen?
(Geht leider auch noch nicht, da er meint, die variable id würde nicht definiert.)

Ps: Falls es relevant ist: Ich benutze WampServer 2.

$sql = „SELECT * FROM (aufgabe INNER JOIN auftrag
ON ‚aufgabe.auftrag‘ = ‚auftrag.id‘) INNER JOIN mitarbeiter
ON ‚aufgabe.mitarbeiter‘ = ‚mitarbeiter.id‘ WHERE ‚id‘ = 1“;;

$query = @mysql_query($sql) or die("Query failed: " . mysql_error());
while ($result_row= mysql_fetch_assoc($query)) {
$id = $result_row[‚id‘];
};

aufgabe
 id auftrag mitarbeiter
 1 1 1
 2 1 2
 3 2 2
 4 3 4

auftrag
 id auftraggeber
 1 1
 2 3
 3 1

mitarbeiter
id vorname nachname rechte
 1 Frank Schmidt NULL
 2 Sonja Kraus NULL
 3 Thomas Mann NULL
 4 Sascha Reingott NULL

Hallo.
Die Verknüpfung von 3 Tabellen habe ich nun hinbekommen.

$query = mysql_query(‚SELECT aufgabe.*, auftrag.*, mitarbeiter.* FROM
(aufgabe INNER JOIN
auftrag ON aufgabe.auftrag = auftrag.id)
INNER JOIN
mitarbeiter ON aufgabe.mitarbeiter=mitarbeiter.id‘);

Nur wie ist die richtige Syntax um eine weitere Tabelle mit ‚Auftrag‘ zu verknüpfen?

Lg Florian

Hi,

quick 'n dirty: Klammer und neuen Select um das ganze rum :wink: