, i stedet for . i kommatal
Jeg er ved at lave en formular i Dreamweaver, hvor man bl.a. kan taste et kommatal ind. Når det bliver gemt i databasen vil f.eks. 4,35 blive gemt som 4.00Hvis man skriver 4.35 bliver det gemt som 4.35
PHP forstår altså tilsyneladende ikke den danske måde at lave kommatal på.
Her er lidt kode:
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "graesningsareal")) {
$tal = $_POST['Ha'];
$Ha = number_format($tal, 2, ',', '.');
$insertSQL = sprintf("INSERT INTO arealer (brugerID, areal_adresse, areal_postnr, Kommune, markbloknr, Ha, hegn, organic, naturtype, adg_forhold, fodring, kalveskjul, graesnkrav, periode, MVJ, andet) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['ejerID'], "int"),
GetSQLValueString($_POST['areal_adresse'], "text"),
GetSQLValueString($_POST['areal_postnummer'], "int"),
GetSQLValueString($_POST['kommune'], "int"),
GetSQLValueString($_POST['markbloknr'], "text"),
GetSQLValueString($Ha, "double"),
GetSQLValueString($_POST['Hegnstype'], "int"),
GetSQLValueString(isset($_POST['eco']) ? "true" : "", "defined","'Y'","'N'"),
GetSQLValueString($_POST['naturtype'], "int"),
GetSQLValueString($_POST['adg_forhold'], "text"),
GetSQLValueString(isset($_POST['fodring']) ? "true" : "", "defined","'Y'","'N'"),
GetSQLValueString(isset($_POST['kalveskjul']) ? "true" : "", "defined","'Y'","'N'"),
GetSQLValueString($_POST['graesnkrav'], "text"),
GetSQLValueString($_POST['periode'], "text"),
GetSQLValueString(isset($_POST['mvj']) ? "true" : "", "defined","'Y'","'N'"),
GetSQLValueString($_POST['Andet'], "text"));
mysql_select_db($database_graesning, $graesning);
$Result1 = mysql_query($insertSQL, $graesning) or die(mysql_error());
$insertGoTo = "default.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
Jeg har modificeret DW's kode, og sat number_format() ind, men det virker altså ikke. Er der nogen der kan se hvad der går galt?