Kreuztabelle

Kalito

Erfahrenes Mitglied
hallo,

das Auswerten von 2 textfelder macht mir leichte Probleme.

Folgendes:
in ein Textfeld gebe ich eine Höhe ein, in einer anderen die Breite eines Objektes.

Nun würde ich gerne sowas für die Preisberechnung mit php realisieren:
Ich will nicht unbedingt alles mit if oder switchcase abfragen, da sich ja der Preis in Abhängigkeit von Größe und Breite ermittelt.

Was wäre die eleganteste Lösung?
 
Das kommt darauf an. Wie wird der Preis denn angegeben?

Wenn er z.B. als €/m² angegen wird, und man davon ausgeht, das der Kunde auch m in die Text-Felder angibt:

PHP:
define( "QUADRATMETER_PREIS", 15.95 );
$qm = $_POST['laenge'] * $_POST['breite'];

$preis = $qm * QUADRATMETER_PREIS;

echo "Der Preis beträgt $preis €"

Falls du gestaffelte Preise in einer Datenbank hast, müsstest du die Tabellen-Struktur mal zeigen.
 
es ist eine Art Preisstaffelung.

Stell dir das so, wie im Anhnag vor.

Wenn ich also eine Breite und Höhe eingebe muss ich erst schauen, in welchem Bereich sie fällt und dann muss ich halt den Preis der Kreuztabelle ermitteln.
klar könnte ich eine switchcase-anweisung für die Höhe machen und dann zu jeder switchcase eine weiter switchcase für die Breite, aber das ist doch recht umständlich und redudanz.
 

Anhänge

  • Beispiel.JPG
    Beispiel.JPG
    16,5 KB · Aufrufe: 2
ich habe noch garnichts implementiert, da ich halt nicht weiß, wie ich es abfragen würde. Natürlich könnte man eine mysqlDB machen, aber das halte ich auch für recht aufwändig.

Obwohl ich hab gerade eine Idee. Ich mach zwei Switch-case anweisungen. Eine für die Höhe, eine für die Breite. Wie ich dann die Variable genau definier weiß ich noch nicht, wenn aber jetzt der übermittelte Wert kleiner als ein bstimmter Wert ist, dann soll er eine bestimmte Zahl wiedergeben. sagen wir mal bei kleiner als 100 mm eine 1. Das gleiche mache ich für die Breite. Die beiden Variablen verbinde ich dann, das ich zu einer Zahl komme (in dem Fall 11) und mit dieser Variable kann ich entweder ne DB-ABfrage machen (Gib mir Preis von id 11) oder ich mach noch eine switchcase
 
Und jedes mal, wenn sich der Preis für eine Staffelung ändert, musst du den Code anpassen. Dann doch besser gleich alles in die DB und einen schönen SELECT schreiben. Du bräuchtest 3 Tabellen:

Tabelle Länge:
ID, Laenge_in_cm

Tabelle Breite:
ID, Breite_in_cm

Tabelle PreisStaffel:
ID, ID_Breite, ID_Laenge, Preis

Dann kannst du einen schönen JOIN zusammen zimmern:

SQL:
SELECT ps.Preis FROM
PreisStaffel ps
INNER JOIN Laenge l ON ps.ID_Laenge = l.ID
INNER JOIN Breite b ON ps.ID_Breite = b.ID
WHERE b.Breite_in_cm <= $breiteInCM
AND l.Laenge_in_cm <= $laengeInCM
ORDER BY ps.Preis DESC
LIMIT 1

Oder so ähnlich.
 
Zurück