da ich mit PHP wenig am Hut habe und unsere Abteilung das auf mich abgeschoben hat, möchte ich Euch um Hilfe bitten (eigentlich bin ich für Office-Support und DMS-Verwaltung angestellt, aber man ist ja immer ein "Allrounder"):
In der MySQL DB ist eine Tabelle "intern" vorhanden. Es gibt dort vier Spalten: eine Bezeichnung des Artikels, seine Länge, Breite und Höhe, z.B. "A", "100", "90" und "50". Es existieren ca. 115 verschiedene Artikel mit versch. Abmessungen.
Nun soll eine kleine "index.php" geschrieben werden, die drei Eingabefelder enthält und beim Klick auf "Berechnen" mit der SQL-Tabelle die eingegebenen Werte vergleicht. Dabei sollen die Längen, Breiten und Höhen der drei Felder mit den Zeilen der SQL DB verglichen werden. Dabei soll die Reihenfolge der Eingabe nicht berücksichtigt werden! Stellt Euch vor, es wäre ein Karton und etwas passt nicht hochkant rein, dafür aber, wenn man es flach reinlegt... Beispiel:
Eingabe von "30", "58" und "90", es findet sich ein Artikel, der "B" heißt und "100", "32" und "45" groß ist, dann soll ausgegeben werden: Deine Eingabe passt zu Artikel "B".
Habe schon mal mit meinen wenigen HTML-Erfahrungen eine Eingabetabelle konzipiert:
[...] Ich hoffe, Ihr könnt mir helfen, meinen Hintern zu retten, wäre sehr verbunden, danke
Sorry aber was erwartest Du jetzt von uns. Sollen wir Dir ein Script schreiben?
PS: Wenn ich Deine Karton-Logik richtig verstanden habe, dann passt Artikel B auch nicht!
__________________
Gruss vt1816
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (Skype, Mail, PN, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
An so einer Verpackungsoptimierung habe ich mir schon mal früher die Zähne ausgebissen. Das Thema ist absolut nicht trivial, denn es gibt ja auch die Diagonale. Kauf Dir eine passende Software oder stell einen €400 Jobber für das verpacken ein, das geht schneller und ist billiger.
Grüße
Thomas
__________________ Die SQL-Backstube
Bietet Rezepte, Lösungen und ausführliche Beispiele rund um gesundes SQL und zufriedene Datenbanken.
@ vt1816: Ich erwarte kein vollst. Skript, aber vielleicht eine Stütze, um es umzusetzen. Oh, Du hast Recht, ich korrigiere:
Zitat:
Eingabe von "30", "58" und "90", es findet sich ein Artikel, der "B" heißt und "100", "32" und "45" groß ist, dann soll ausgegeben werden: Deine Eingabe passt zu Artikel "B".
Soll heißen: z.B. Eingabe von "30", "40" und "90", es findet sich ein Artikel, der "B" heißt und "100", "32" und "45" groß ist, dann soll ausgegeben werden: Deine Eingabe passt zu Artikel "B".
Danke!
@ thomas_w: Danke für Deine Überlegungen. Es soll um keine Optimierung gehen, sonder um eine Art "Berechnugn, ob es passt". Die Diagonale soll nicht berücksichtigt werden.
Mögliche Kombinationen wo die Grösse >= sein muss
30,40,90
30,90,40
40,30,90
40,90,30
90,30,40
90,40,30
Jetzt könnte man sagen
PHP-Code:
$w = int $_POST['width'];
$l = int $_POST['length'];
$d = int $_POST['depth'];
$sql = "select * FROM 'dbtabelle' WHERE ((`spalte_1` >= $w AND `spalte_2` >= $l AND `spalte_3` >= $d) OR (`spalte_1` >= $w AND `spalte_2` >= $d AND `spalte_3` >= $l) OR (`spalte_1` >= $l AND `spalte_2` >= $w AND `spalte_3` >= $d) OR (`spalte_1` >= $l AND `spalte_2` >= $d AND `spalte_3` >= $w))";
Den Rest spar ich mir mal. Damit hätte man eine Grundlage, die ich nicht getestet habe.
Mögliche Kombinationen wo die Grösse >= sein muss
30,40,90
30,90,40
40,30,90
40,90,30
90,30,40
90,40,30
Jetzt könnte man sagen
PHP-Code:
$w = int $_POST['width'];
$l = int $_POST['length'];
$d = int $_POST['depth'];
$sql = "select * FROM 'dbtabelle' WHERE (
(`spalte_1` >= $w AND `spalte_2` >= $l AND `spalte_3` >= $d) OR
(`spalte_1` >= $w AND `spalte_2` >= $d AND `spalte_3` >= $l) OR
(`spalte_1` >= $l AND `spalte_2` >= $w AND `spalte_3` >= $d) OR
(`spalte_1` >= $l AND `spalte_2` >= $d AND `spalte_3` >= $w)
)";
Den Rest spar ich mir mal. Damit hätte man eine Grundlage, die ich nicht getestet habe.
Ich bin so frei und füge den $d noch an spalte_1 (mal zwei Kombinationen),
dann sollten alle Kombinationen durch sein:
PHP-Code:
$w = intval($_POST['width']);
$l = intval($_POST['length']);
$d = intval($_POST['depth']);
$sql = "select * FROM 'dbtabelle' WHERE (
(`spalte_1` >= $w AND `spalte_2` >= $l AND `spalte_3` >= $d) OR
(`spalte_1` >= $w AND `spalte_2` >= $d AND `spalte_3` >= $l) OR
(`spalte_1` >= $l AND `spalte_2` >= $w AND `spalte_3` >= $d) OR
(`spalte_1` >= $l AND `spalte_2` >= $d AND `spalte_3` >= $w) OR
(`spalte_1` >= $d AND `spalte_2` >= $w AND `spalte_3` >= $l) OR
(`spalte_1` >= $d AND `spalte_2` >= $l AND `spalte_3` >= $w)
);";