Bernd: Rechnen direkt in MySQL?

Beitrag lesen

Hallo,

kann MySQL direkt rechnen oder dass ich erst alles über eine foreach Schleife auslesen muss und dann die Werte z.B. so zusammenzählen muss?

$Berechnung_3 +=$Berechnung_2;

Folgendes habe ich

$stmt_Berechnung = $mysqli->prepare("SELECT a_code, a_programm, a_masseinklverpackungb,
                                            a_masseinklverpackungl, a_tiefeinklverpackungb,
                                          	a_produzierterBestand, a_defekt, a_verlust 
                                    FROM artikel WHERE a_programm=?");
$stmt_Berechnung->bind_param("s",$Programm);
$stmt_Berechnung->execute();
$stmt_Berechnung->bind_result($a_code, $a_programm, $a_masseinklverpackungb,
                              $a_masseinklverpackungl, $a_tiefeinklverpackungb,                 
              							  $a_produzierterBestand, $a_defekt, $a_verlust);
$stmt_Berechnung->fetch();
$stmt_Berechnung->close();

Zu Rechnen wäre folgendes

  • a_masseinklverpackungb * a_masseinklverpackungl * a_tiefeinklverpackungb
  • a_produzierterBestand - a_defekt - a_verlust
  • Ergebnis aus Zeile 1 * Ergebnis aus Zeile 2

Zudem kommt noch hinzu, dass ich die Werte aus Zeile mit einem , habe und diese müssten dann in ein . umgewandelt werden.

Oder sagt ihr dieses ist viel zu kompliziert, mach dieses lieber mit PHP? Die PHP Version würde so aussehen

$b = str_replace(',', '.', $array['a_masseinklverpackungb']);
$l = str_replace(',', '.', $array['a_masseinklverpackungl']);
$t = str_replace(',', '.', $array['a_tiefeinklverpackungb']);

$Lagerbestand = $array['a_produzierterBestand'] -$array['a_defekt'] - $array['a_verlust'];

$Berechnung_1 = $b*$l*$t;

EDIT: MySQL hat auch eine replace Function:
https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_replace

Die Frage ist nur, wie wende ich dieses an, ich werde aus dem Beispiel nicht wirklich schlau.

akzeptierte Antworten