Lagerbestandsmatrix

P

P_F

Hallo, als kleine Erweiterung für einen Onlineshop möchte ich eine Lagerbestandsmatrix erstellen.

Beispiel: Ein Artikel, z.B. ein Fußßball gibt es in 3 Farben und 2 Größen (ja ist unrealistisch :D).

Es gibt Den Fussball also in
[Rot;Klein]
[Rot;Groß]
[Grün;Klein]
[Grün;Groß]
[Gelb;Klein]
[Gelb;Groß]

also in 3 * 2 = 6 Kombinationen.
Für diese 6 Kombinationen soll nun der Lagerbestand editierbar sein.
Es ist nicht das Problem, wie ich es nachher in der datenbank speiere sondern erstmal wie ich mir eine entsprechende Matrix oder HTML-Tablelle generiere.

Diese sollte etwa so aussehen - siehe Anhang!

Als Datenbasis habe ich ein Array, welches die Optionen entält, also so aussieht:
Array (
Array(
[title] => Farbe
[options] => Array (
[0] => Rot
[1] => Grün
[2] => Gelb
)
)
Array(
[title] => Größe
[options] => Array (
[0] => Groß
[1] => Klein
)
)
)

In diesem Fall sind es nur zwei Optionstypen - Farbe und Größe - Es soll natürlich für beliebig viele möglich sein.
Ich glaube ein rekursiver Ansatz wäre irgendwie sinnvoll, ich weiß aber garnicht wie ich da anfangen soll, damit das ganze noch halbwegs performant ist, wenn man da überhaupt nich von Performanz sprechen kann :D

Danke schonmal für Hilfe :D
 

Anhänge

  • Screenshot.gif
    Screenshot.gif
    3,1 KB · Aufrufe: 26
Hi,
rekursiver Ansatz
:eek:

Das geht doch nur, wenn du für jede Variante einen Datensatz mit dem Lagerbestand gespeichert hast (was ja für eine Lagerhaltung auch Sinn macht).
Also:
Fussball, grün,klein, Bestand 11;
Fussball, rot,gross, Bestand 3;
usw usw.

Und dann den Bestand mit ins Array holen, deine Html-Tabelle steht ja schon.

Oder seh ich das falsch?
 
Klar kannst du das mit einer Rekursion lösen. Du kannst dir auch ein Spaceshuttle bauen um von Berlin nach Hamburg zu fliegen. Mir wäre es aber zu kompliziert.
Du hast eine x*y Matrix, x und y bekannt.
Code:
for all x:
    for all y:
           do sth.
So durchläufst du alle möglichen Kombinationen und hast eine Laufzeit von O(x*y). Du musst ja ohnehin alle Kombinationen durchlaufen, deswegen wirst du da auch nicht drunter kommen.
Ein 2-dimensionales Array zu befüllen, sollte dann ja mit den Indizes x und y nur noch Formsache sein.

Gruß, J

PS: Bist du zufällig mit Anatol Frank aus Bielefeld verwandt?
 
Nein, mit dem bin ich nicht verwandt.

@robitobi: Wer lesen kann ist klar im Vorteil. Ich schrieb, dass ich die gerade das Generieren der Tabelle das problem ist.
 
Aus persönlicher und praktischer Erfahrung kann ich dir nur raten dein Konzept etwas anders zugestalten.
Du sollstest 2 getrennte Tabellen anlegen, eine für die Lagerbestandszahlen und eine für die Artikel selber. In die Tabelle Lagerbestand solltest du nur die Artikelnummer und und die vorhandende Menge rein. In die Tabelle für die Artikel dann die ID (Artikelnummer), Art, Farbe, Größe usw. So lässt sich die Datenausgabe wesentlich besser steuern.
Als Abfrage könntest du dann einem Join vom Lagerbestand in die Artikeltabelle machen und "Group BY" oder "Order BY" bei der Größe bzw. Farbe. Desweiteren wäre bei dem manuellen updaten der Lagerzahlen dann nur die eigentliche Artikelnummer wichtig.
 
Hallo Kai, das ist auch garnicht das Problem. Auf Datenbankseite hab ich es genauso gelöst, wie du es vorgeschlagen hast. Es geht aber erstmal um das generieren der HTML-Tabelle!
 
Zurück