Rat in SQL-Verknüpfung zwischen zwei Tabellen (keine Anfänger-Frage)
Hallo liebe Datenbankanwender!
Infos zu meinem DB-System
phpMyAdmin - 2.11.4, MySQL-Client-Version: 5.0.51a, PHP5.1
Problemstellung
Ich habe eine Datenbankanwendung in PHP geschrieben, in der Produkte verwaltet werden. Soweit alles super.
Wie jeder weiß, enthält jedes Produkt Parameter. Eine Eingabemaske, die ich in PHP geschrieben habe, enthält eine Auflistung von ca. 120 Parametern. Diese sind Kategorisiert und mit Überschriften versehen. Die zugehörige Datenbanktabelle sieht wie folgt aus:
| prd_kategorie | para_id | parameter | header |
In der Eingabemaske wird per Checkbox der jeweilige Parameter dem Produkt zugewiesen und in folgender Verwaltungstabelle unter para_verschieben abgespeichert:
| prdkind_id | para_id | parakat_id | prdzusatzoptionwert | para_verschieben |
Soweit auch so gut.
Damit ich später evtl. Parameter bearbeiten kann, sprich hinzufügen oder entfernen per Checkbox, sind beide Tabellen mit einer WHERE-Bedingung verknüpft:
Und hier kommt auch mein Problem, an dem ich mir etwas die Zähne verbeiße. Die Verknüpfung funktioniert richtig, sprich die Zuweisung stimmt. DOCH: Dem User werden nach Auswahl des Produkts mit vorhandener Auswahl, nur die Parameter angezeigt, die gecheckt sind. Logisch, weil in der Verwaltungstabelle auch nur die IDs der Parameter stehen, die vergeben wurden.
Frage: Wie bekomme ich es hin, dass alle gesamten Parameter aus der Parameter-tabelle und die vergebenen Parameter aus der Verwaltungs-Tabelle (Checkbox wird aktiv gesetzt) angezeigt werden? Ist in diesem Fall eine WHERE-Verknüpfung nicht die richtige?
Über eine Anregung wäre ich euch dankbar.
Gruß, Lucky.
Infos zu meinem DB-System
phpMyAdmin - 2.11.4, MySQL-Client-Version: 5.0.51a, PHP5.1
Problemstellung
Ich habe eine Datenbankanwendung in PHP geschrieben, in der Produkte verwaltet werden. Soweit alles super.
Wie jeder weiß, enthält jedes Produkt Parameter. Eine Eingabemaske, die ich in PHP geschrieben habe, enthält eine Auflistung von ca. 120 Parametern. Diese sind Kategorisiert und mit Überschriften versehen. Die zugehörige Datenbanktabelle sieht wie folgt aus:
| prd_kategorie | para_id | parameter | header |
In der Eingabemaske wird per Checkbox der jeweilige Parameter dem Produkt zugewiesen und in folgender Verwaltungstabelle unter para_verschieben abgespeichert:
| prdkind_id | para_id | parakat_id | prdzusatzoptionwert | para_verschieben |
Soweit auch so gut.
Damit ich später evtl. Parameter bearbeiten kann, sprich hinzufügen oder entfernen per Checkbox, sind beide Tabellen mit einer WHERE-Bedingung verknüpft:
SELECT PRODVER.prdkind_id, PRODVER.para_id, PRODVER.parakat_id, PRODVER.prdzusatzoptionwert, PRODVER.para_verschieben,
PARA.para_id, PARA.prd_kategorie, PARA.parameter, PARA.header, KAT.parakat_id
FROM produkt_verwaltung PRODVER, parakat KAT, parameter PARA
WHERE PRODVER.parakat_id = KAT.parakat_id
AND PRODVER.para_id = PARA.para_id
AND PARA.prd_kategorie = KAT.parakat_id
Und hier kommt auch mein Problem, an dem ich mir etwas die Zähne verbeiße. Die Verknüpfung funktioniert richtig, sprich die Zuweisung stimmt. DOCH: Dem User werden nach Auswahl des Produkts mit vorhandener Auswahl, nur die Parameter angezeigt, die gecheckt sind. Logisch, weil in der Verwaltungstabelle auch nur die IDs der Parameter stehen, die vergeben wurden.
Frage: Wie bekomme ich es hin, dass alle gesamten Parameter aus der Parameter-tabelle und die vergebenen Parameter aus der Verwaltungs-Tabelle (Checkbox wird aktiv gesetzt) angezeigt werden? Ist in diesem Fall eine WHERE-Verknüpfung nicht die richtige?
Über eine Anregung wäre ich euch dankbar.
Gruß, Lucky.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 97586
Url: https://administrator.de/contentid/97586
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
3 Kommentare
Neuester Kommentar