Waarom worden decimalen niet overgenomen?

  • Onderwerp starter Onderwerp starter Jors
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Jors

Gebruiker
Lid geworden
1 okt 2006
Berichten
142
Goedendag,

ik heb een kolom in mijn tabel genaamd 'Prijs' met als formaat decimal(9,2).
Aangezien het hier een stukprijs betreft, heb ik een formulier waar je een aantal kan invullen. Met deze waarde wordt dan een subtotaal berekent in een 2e tabel dmv de volgende code:

PHP:
if (isset($aantal)) {
	$u_subtotaal = mysql_result(mysql_query("SELECT Prijs FROM tabel1 WHERE ID = '$id'"), 0) * $aantal;
	$updatesubt = ("UPDATE tabel2 SET Aantal='".$aantal."', Subtotaal='".$u_subtotaal."' WHERE tabel2.ID='$id'");
	mysql_query($updatesubt) or die("Fout: ".mysql_error);
}
$Totaalprijs = mysql_result(mysql_query("SELECT SUM(Subtotaal) FROM tabel2"),0);

Nu wordt het resultaat van deze code met een query opgehaald uit als volgt weergegeven:

PHP:
echo number_format($Prijs, 2, ',', '.');
echo number_format($subtotaal, 2, ',','.');
echo number_format($Totaalprijs, 2, ',', '.');

En op deze manier is het getal achter de komma altijd ,00 terwijl dit soms echt iets anders zou moeten zijn. Hoe corrigeer ik dit?
 
Laatst bewerkt:
is de invoer van tabel1 wel correct, want als je bijvoorbeeld een insert doet zoals [sql]"INSERT INTO tabel1(ID,prijs) VALUES ('3','7,89')"[/sql]dan komt er geen 7,89 in de tabel, maar 7,00 omdat de komma niet als decimaal-seperator wordt gezien.
Uiteraard worden dan dus ook de subtotalen verkeerd berekend.
 
ik denk dat je daar meteen het probleem te pakken hebt. Als ik

PHP:
echo $subtotaal;

doe komt er bijvoorbeeld 10507,32 uit. Dus de punt tussen de duizendtallen staat er niet maar de komma nog wel. Ik zal eens kijken of ik dit zelf kan oplossen ;)

Overigens is dat toch wel gek want de Prijs komt direct uit de tabel en het aantal is een heel getal. Waarom laat hij dan ineens een komma ipv een punt als decimaalscheidingsteken zien?
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan