MySQL rechnen nach insert
Hallo zusammen,
ich versuche gerade eine SQL Query zu schreiben, komme aber nicht weiter.
Vom Prinzip her ist das ganze ein Warenkorb der dann gebucht werden kann.
Ich bekomme zwar den Einzelpreis ($e_preis) und die Menge ($menge) übertragen. Nun möchte ich aber noch
die Spalte (g_preis) befüllen lassen. Sprich eine simple Rechnung e_preis * menge.
Nur habe ich gerade ein Brett vor dem Kopf wie ich das in die SQL Query einbauen kann.
Ich muss ja praktisch erst die Daten e_preis und menge in die Datenbank einspielen bevor ich damit rechnen kann.
Wie stelle ich das am blödsten an?
ich versuche gerade eine SQL Query zu schreiben, komme aber nicht weiter.
if($_POST['ACTION'] == "buchung_hinzufuegen")
{
header('Content-Type: application/json');
$kunden_id = $_POST['KUNDEN_ID'];
$e_preis = $POST['PREIS'];
$p_id = $_POST['P_ID'];
$menge = $_POST['MENGE'];
$sql = "INSERT INTO orders(k_id, p_id, menge, e_preis) VALUES(:kunden_id, :p_id, :menge, :e_preis)";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':kunden_id', $kunden_id);
$stmt->bindParam(':e_preis', $e_preis);
$stmt->bindParam(':p_id', $p_id);
$stmt->bindParam(':menge', $menge);
$stmt->execute();
echo json_encode(array("success" => true,"msg" => "Buchung war erfolgreich"));
}
Vom Prinzip her ist das ganze ein Warenkorb der dann gebucht werden kann.
Ich bekomme zwar den Einzelpreis ($e_preis) und die Menge ($menge) übertragen. Nun möchte ich aber noch
die Spalte (g_preis) befüllen lassen. Sprich eine simple Rechnung e_preis * menge.
Nur habe ich gerade ein Brett vor dem Kopf wie ich das in die SQL Query einbauen kann.
Ich muss ja praktisch erst die Daten e_preis und menge in die Datenbank einspielen bevor ich damit rechnen kann.
Wie stelle ich das am blödsten an?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 621883
Url: https://administrator.de/contentid/621883
Ausgedruckt am: 20.11.2024 um 17:11 Uhr
3 Kommentare
Neuester Kommentar
easy...
davon abgesehen daß man das auch beim Select später rechnen kann, dieser Weg hier ist eher was wenn die Berechnung komplex ist und nicht beim Select erfolgen soll, aus performance-Gründen ...
test=*# create table the_only_one (id int primary key, menge int, epreis int, gpreis int generated always as (menge * epreis) stored);
CREATE TABLE
est=*# insert into the_only_one (id, menge, epreis) values (1, 5, 12);
INSERT 0 1
test=*# insert into the_only_one (id, menge, epreis) values (2,7,42);
INSERT 0 1
test=*# select * from the_only_one ;
id | menge | epreis | gpreis
----+-------+--------+--------
1 | 5 | 12 | 60
2 | 7 | 42 | 294
(2 rows)
test=*#
davon abgesehen daß man das auch beim Select später rechnen kann, dieser Weg hier ist eher was wenn die Berechnung komplex ist und nicht beim Select erfolgen soll, aus performance-Gründen ...