Hey alle zusammen,
ich hoffe, ihr könnt mir helfen, denn ich bin mit meinem Latein am Ende...
Für eine Verwaltung habe ich eine Seite mit der Übersicht von Bestellungen.
Soweit so gut, nun brauch ich noch "Filter". Ich möchte z.B. filtern können: Zeige mir alle lieferbaren Bestellungen an. In der normalen Übersicht erledigt das live meine PHP Klasse und gibt das grafisch aus.
Aber als richtiger Filter taugt das ja nichts, da dann meine Paginierungs Klasse nicht mehr hinhaut, wenn man was "unter den Tisch fallen lässt"
Also, muss es schon in der DB Abfrage gefiltert werden.
Um es knapp zu halten, nur das wichtigste:
Spalten der Tabelle "bestellungen":
b_id
Spalten der Tabelle "bestell_positionen":
bp_id
bp_artikel_id
bp_bestell_id
Spalten der Tabelle "lagerplaetze"
lp_id
lp_artikel_id
lp_anzahl
Meine gekürzte Abfrage um die Übersicht der Bestellungen auszugeben (Tabelle "lagerplaetze" wird noch nicht verwendet):
SELECT
bestellungen.b_id,
bestell_positionen.bp_id,
COUNT(bestell_positionen.bp_id) AS positions
FROM
bestellungen
JOIN bestell_positionen
ON bestellungen.b_id = bestell_positionen.bp_bestell_id
GROUP BY bestellungen.b_id
Das funktioniert soweit alles wie es soll...
Wie muss die Abfrage aussehen, wenn er mir nur Bestellungen zeigen soll, deren Bestellpositionen alle lieferbar sind?
Mein Problem ist dabei: In einer Bestellung kann es ja 10 oder mehr Bestellpositionen (Artikel) geben.
Davon muss dann ja noch jeder einzlene Bestellposition geprüft werden, ob auf den Lagerplätzen (eine Bestellposition kann auf mehreren Lagerplätzen vorhanden sein) genug da ist.
Ich stehe da echt auf dem Schlauch, denn Filtern würde ich gerne:
Zeige mir alle "lieferbaren" Bestellungen
Zeige mir alle "teilweise" lieferbaren Bestellungen
Zeige mir alle Bestellungen, die nicht lieferbar sind
Die "live" Ampel (durch PHP Klassen gebaut) funktioniert in der Ausgabe der Übersicht einwandfrei. Aber als SQL Statement schaffe ich das einfach nicht.
Oder ist das u.U. auch garnicht möglich was ich da vorhabe?
Bin für jede Anregung dankbar.
Vielen Dank und LG,
Holger
PS: sicherlich kann ich die Ausgabe durch meine PHP Klassen ganz einfach manipulieren und die "gefilterten" Bestellungen einfach überspringen. Aber dann stimmt meine Blätterfunktion nicht mehr. Ich bekomme 50 Ergebnisse pro Seite geliefert, 15 fliegen durch meine Filter Klassen raus bleiben nur 35 zum Anzeigen,
aber die Blätterfunktion sagt logisch 1 - 50 usw.
ich hoffe, ihr könnt mir helfen, denn ich bin mit meinem Latein am Ende...
Für eine Verwaltung habe ich eine Seite mit der Übersicht von Bestellungen.
Soweit so gut, nun brauch ich noch "Filter". Ich möchte z.B. filtern können: Zeige mir alle lieferbaren Bestellungen an. In der normalen Übersicht erledigt das live meine PHP Klasse und gibt das grafisch aus.
Aber als richtiger Filter taugt das ja nichts, da dann meine Paginierungs Klasse nicht mehr hinhaut, wenn man was "unter den Tisch fallen lässt"
Also, muss es schon in der DB Abfrage gefiltert werden.
Um es knapp zu halten, nur das wichtigste:
Spalten der Tabelle "bestellungen":
b_id
Spalten der Tabelle "bestell_positionen":
bp_id
bp_artikel_id
bp_bestell_id
Spalten der Tabelle "lagerplaetze"
lp_id
lp_artikel_id
lp_anzahl
Meine gekürzte Abfrage um die Übersicht der Bestellungen auszugeben (Tabelle "lagerplaetze" wird noch nicht verwendet):
SELECT
bestellungen.b_id,
bestell_positionen.bp_id,
COUNT(bestell_positionen.bp_id) AS positions
FROM
bestellungen
JOIN bestell_positionen
ON bestellungen.b_id = bestell_positionen.bp_bestell_id
GROUP BY bestellungen.b_id
Das funktioniert soweit alles wie es soll...
Wie muss die Abfrage aussehen, wenn er mir nur Bestellungen zeigen soll, deren Bestellpositionen alle lieferbar sind?
Mein Problem ist dabei: In einer Bestellung kann es ja 10 oder mehr Bestellpositionen (Artikel) geben.
Davon muss dann ja noch jeder einzlene Bestellposition geprüft werden, ob auf den Lagerplätzen (eine Bestellposition kann auf mehreren Lagerplätzen vorhanden sein) genug da ist.
Ich stehe da echt auf dem Schlauch, denn Filtern würde ich gerne:
Zeige mir alle "lieferbaren" Bestellungen
Zeige mir alle "teilweise" lieferbaren Bestellungen
Zeige mir alle Bestellungen, die nicht lieferbar sind
Die "live" Ampel (durch PHP Klassen gebaut) funktioniert in der Ausgabe der Übersicht einwandfrei. Aber als SQL Statement schaffe ich das einfach nicht.
Oder ist das u.U. auch garnicht möglich was ich da vorhabe?
Bin für jede Anregung dankbar.
Vielen Dank und LG,
Holger
PS: sicherlich kann ich die Ausgabe durch meine PHP Klassen ganz einfach manipulieren und die "gefilterten" Bestellungen einfach überspringen. Aber dann stimmt meine Blätterfunktion nicht mehr. Ich bekomme 50 Ergebnisse pro Seite geliefert, 15 fliegen durch meine Filter Klassen raus bleiben nur 35 zum Anzeigen,
aber die Blätterfunktion sagt logisch 1 - 50 usw.