Hi Zusammen,
habe leider nen kleinen Blackout, und auch nach vielen Versuchen keine passende Lösung gefunden. Suche also hier nach Vorschlägen und/ Ideen für eine Lösung.
Ich habe ne Tabelle in der werden Themengruppen/ Produktgruppen gespeichert.
Der logische Aufbau der TAbelle sieht so aus:
gruppen_id (INT) | gruppen_name (CHAR) | gruppen_code (INT) | gruppe_belong_to (INT)
eine mögliche Datenstruktur sieht ao aus:
1 | Gruppe1 | 300 | 0
2 | Gruppe2 | 400 | 0
3 | Gruppe1a | 310 | 1
4 | Gruppe2a | 410 | 2
5 | Gruppe1b | 311 | 3
6 | Gruppe2b | 411 | 4
7 | Gruppe1c | 500 | 5
8 | Gruppe1d | 501 | 5
Heißt "übersetzt":
Alle Gruppen, die in der letzten Spalte eine 0 haben sind "HAuptgruppen"
Alle Anderen Gruppen sind Untergruppen jeweils der Gruppe, bei der die gruppe_belong_to gleich (==) gruppen_id (Hoffe, ich habe das verständlich ausgedrückt)
Mein Ziel ist es, die DAten in ihrer Ordnungstrucktur in ein Array zu packen.
Etwa so:
$array[0][1] = Gruppe1
$array[0][1][3] = Gruppe1a
$array[0][1][3][5] = Gruppe1b
$array[0][1][3][5][7] = Gruppe1c
$array[0][2] = Gruppe2
$array[0][2][4] = Gruppe2a
Leider komme ich entweder nur bis zur 3. Dimension, oder ich finde keine Möglichkeit die ID der jeweils vorherigen (übergeordneten) gruppe zu übergeben.
Meine Ansatz war, die DAten mit einem einfachen Selecht aus der DB zu ziehen und in ein 1-dimensionales Array zu packen. Danach das Array mittels PHP durchlaufen zu lassen, und anhand der Spalte "gruppe_belong_to" Einzelarrays zu bilden. etwa so:
array1[0][1] = gruppe1
array1[0][2] = gruppe2
array1[5][7] = gruppe1c
array1[5][8] = gruppe1d
Danach würde ich array[0] durcharbeiten lassen und alle Arrays zuordnen, bei denen die Nummer der 2. Dimension gleich der Nummer der 1. Dimension eine anderen Arrays ist, und die entsprechend zuordnen.
Wie gesagt, ist nur ne Idee und funzt entweder nur bis zur 3. Dimension oder ohne weitergabe der ID der übergeordneten Gruppe.
Also, wenn jemand ne bessere/ performante Lösung hat, oder nur nen Vorschlag, der hilft, die Beschränkung des eigenen Denkens zu sprengen, wäre ich sehr dankbar. Die Lösung sollte dimensional nicht beschränt sein. Die übernahme der jeweiligen gruppen_id ist notwendig, weil anhand dieser ID Daten aus anderen SELECT's zugeordnet werden sollen.
Danke und Gruß nanobit
habe leider nen kleinen Blackout, und auch nach vielen Versuchen keine passende Lösung gefunden. Suche also hier nach Vorschlägen und/ Ideen für eine Lösung.
Ich habe ne Tabelle in der werden Themengruppen/ Produktgruppen gespeichert.
Der logische Aufbau der TAbelle sieht so aus:
gruppen_id (INT) | gruppen_name (CHAR) | gruppen_code (INT) | gruppe_belong_to (INT)
eine mögliche Datenstruktur sieht ao aus:
1 | Gruppe1 | 300 | 0
2 | Gruppe2 | 400 | 0
3 | Gruppe1a | 310 | 1
4 | Gruppe2a | 410 | 2
5 | Gruppe1b | 311 | 3
6 | Gruppe2b | 411 | 4
7 | Gruppe1c | 500 | 5
8 | Gruppe1d | 501 | 5
Heißt "übersetzt":
Alle Gruppen, die in der letzten Spalte eine 0 haben sind "HAuptgruppen"
Alle Anderen Gruppen sind Untergruppen jeweils der Gruppe, bei der die gruppe_belong_to gleich (==) gruppen_id (Hoffe, ich habe das verständlich ausgedrückt)
Mein Ziel ist es, die DAten in ihrer Ordnungstrucktur in ein Array zu packen.
Etwa so:
$array[0][1] = Gruppe1
$array[0][1][3] = Gruppe1a
$array[0][1][3][5] = Gruppe1b
$array[0][1][3][5][7] = Gruppe1c
$array[0][2] = Gruppe2
$array[0][2][4] = Gruppe2a
Leider komme ich entweder nur bis zur 3. Dimension, oder ich finde keine Möglichkeit die ID der jeweils vorherigen (übergeordneten) gruppe zu übergeben.
Meine Ansatz war, die DAten mit einem einfachen Selecht aus der DB zu ziehen und in ein 1-dimensionales Array zu packen. Danach das Array mittels PHP durchlaufen zu lassen, und anhand der Spalte "gruppe_belong_to" Einzelarrays zu bilden. etwa so:
array1[0][1] = gruppe1
array1[0][2] = gruppe2
array1[5][7] = gruppe1c
array1[5][8] = gruppe1d
Danach würde ich array[0] durcharbeiten lassen und alle Arrays zuordnen, bei denen die Nummer der 2. Dimension gleich der Nummer der 1. Dimension eine anderen Arrays ist, und die entsprechend zuordnen.
Wie gesagt, ist nur ne Idee und funzt entweder nur bis zur 3. Dimension oder ohne weitergabe der ID der übergeordneten Gruppe.
Also, wenn jemand ne bessere/ performante Lösung hat, oder nur nen Vorschlag, der hilft, die Beschränkung des eigenen Denkens zu sprengen, wäre ich sehr dankbar. Die Lösung sollte dimensional nicht beschränt sein. Die übernahme der jeweiligen gruppen_id ist notwendig, weil anhand dieser ID Daten aus anderen SELECT's zugeordnet werden sollen.
Danke und Gruß nanobit
Kommentar