Tabellen verknüpfen, wie?

Guten Abend!

Ich habe mir eine kleine Datenbank erstellt, bestehend aus 2 Tabellen.

Tabelle 1: kunden
id, firma, anrede, vorname, nachname …
(id = Primärschlüssel)

Tabelle 2: einsaetze
id, einsatzdatum, einsatztitel, einsatzbeschreibung
(id = Primärschlüssel)

Das Öffnen der Tabelle „kunden“ funktioniert einwandfrei.
Jetzt soll aber zu jedem Kunden auch die Tabelle „einsaetze“ angezeigt werden.

Der folgende Befehl funktioniert leider nicht:

// Nur den ersten (einen) Datensatz anzeigen
$result = mysql_query(‚SELECT id, firma, anrede …FROM kunden WHERE id = 1‘);
$result = mysql_query(‚SELECT id, einsatzdatum … FROM einsaetze WHERE id = 1‘);

Wo liegt der Fehler?

***

Dann wäre da noch das Problem mit den Feldern.
Warum kann ich nicht anstatt .$row[1] den direkten Feldnamen value="’.$row[firma].’"eingeben?

Gruß WinniPuh

Moin, Winnipuh,

verknüpft bedeutet, dass eine der beiden Tabellen eine Information enthält, die auf die andere Tabelle zeigt. Das Verknüpfungselement heißt Fremdschlüssel.

**Kunden** (<u>Kunden_Id</u>, firma, anrede, vorname, nachname, ...)
**einsaetze** (<u>Id</u>, einsatzdatum, einsatztitel, einsatzbeschreibung, FS\_Kunde)

FS_Kunde zeigt auf den Kunden, bei dem der Einsatz stattgefunden hat. Und die Query dazu

 Select from Kunden, Einsätze
 Where Kunden\_id = FS\_Kunde 

Gruß Ralf

Klappt noch nicht …
Hallo drambeldier!

Danke für das schnelle Feedback!
Irgendwie klappt es aber noch nicht.

An der Tabelle „kunden“ habe ich die „id“ in „Kunden_Id“ (int11, auto_increment, Primärschlüssel) umbenannt. Die Groß- / Kleinschreibung habe ich vorsichtshalber mit beachtet.

In der Tabelle „einsaetze“ habe ich die „id“ in „Id“ (int11, auto_increment, Primärschlüssel) umbenannt. Weiterhin habe ich das Feld „FS_Kunde“ (int11) hinzugefügt und manuell die Zahl „1“ eingetragen beim ersten Datensatz.

$result = mysql_query(‚SELECT Kunden_Id, firma, anrede, …einsatzdatum, Id FROM Kunden_Id = FS_Kunden WHERE id = 1‘);

Wo liegt jetzt noch der Fehler?

Hi,

$result = mysql_query(‚SELECT Kunden_Id, firma, anrede, …einsatzdatum, Id :FROM Kunden_Id = FS_Kunden WHERE id = 1‘);

die FROM-Klausel benennt die Tabellen, aus denen gelesen wird. Du könntest Dir auch mal die Joins anschauen, manche Leute meinen, da ließe sich die Query einleuchtender formulieren.

Gruß Ralf

Fehler gefunden
Hallo Ralf!

Habe den Fehler entdeckt.
Sobald ich in der Tabelle „kunden“ die „id“ in „Id“, „kundenid“ oder „Kunden_Id“ ändere, geht nichts mehr.

Jetzt werden die Datenfelder wieder angezeigt.

Ob das mit der Verknüpfung der Tabellen nun klappt teste ich morgen.

Gute Nacht!