Rechnung liefert falsches Ergebnis

CyberbobAB

Mitglied
Hi habe folgendes Problem wenn ich ein Einzelpreis auf ein Gesammtpreis addiere liefert der ein falsches Ergebnis, weiß aber nicht woran das liegt ?

hier der Code:
PHP:
<?php
session_start();
$out = ''; 
$aktArtikel = "ANr : ".$_GET['id']." Bezeichnung : ".$_GET['bez']." Preis : ".$_GET['preis'];
$gesammtPreis = 0.0;
$preis = $_GET['preis']; 

if ( isset ( $_SESSION['Warenkorb'] ) ) {
	array_push($_SESSION['Warenkorb'],$aktArtikel);
}else{
	$_SESSION['Warenkorb'] = array($aktArtikel);
}


 foreach ($_SESSION['Warenkorb'] as $v) {
	$out .= $v ."<br />";
    $gesammtPreis += $preis;
 }
 
 $out .= "Summe: ".$gesammtPreis;
 
 echo $out;
 
?>

Der bekommt zum Beispiel bei der Rechnung 10,5 + 10,5 + 10,5 + 20 = 80 raus?
Habe auch schon probiert $preis auf double zu parsen ...
 
Hallo,

du setzt
PHP:
$preis = $_GET['preis'];
oben im Script. in der foreach Schleife wird 4x (bei 4 Artikeln) der Preis des neu hinzugefügten Artikels addiert. Somit ergibt sich bei 4 Artikeln wobei der leztzt 20 Bucks kostet: 20 + 20 + 20 + 20 = 80 also alles richtig.
 
Danke für eure schnellen Antworten ;-)


Habe es jetzt so gelöst :

PHP:
<?php
session_start();
$out = ''; 
$aktArtikel = "ANr : ".$_GET['id']." Bezeichnung : ".$_GET['bez']." Preis : ".$_GET['preis'];
$preis = doubleval($_GET['preis']);

if ( isset ( $_SESSION['Warenkorb'] ) ) {
	array_push($_SESSION['Warenkorb'],$aktArtikel);
}else{
	$_SESSION['Warenkorb'] = array($aktArtikel);
	$_SESSION['Summe'] = 0; 
}


 foreach ($_SESSION['Warenkorb'] as $v) {
	$out .= $v ."<br />";
 }
 $_SESSION['Summe'] += $preis; 
 
 $out .= "Summe: ".$_SESSION['Summe'];
 
 echo $out;
 
 
?>
 
Ich würde das Ganze etwas anders aufbauen:
PHP:
if (!isset($_SESSION['Warenkorb'])) {
	// Initialisierung des Warenkorbs
	$_SESSION['Warenkorb'] = array(
		'Artikel' => array(),
		'Summe'   => 0
	);
}
$_SESSION['Warenkorb']['Artikel'][] = $aktArtikel;
$_SESSION['Warenkorb']['Summe'] += $_GET['preis'];
Was mich aber gerade verstört: Du lässt dir den Artikelpreis vom Client senden? Das wäre als würde der Verkäufer den Käufer nach dem Preis fragen statt umgekehrt.
 
Zurück