hallo jörg, ich habe die vergleichsparameter wie von dir beschrieben geändert. funktioniert scheinbar auch. das problem, dass ich jetzt habe ist, dass bei der dateneingabe des benutzers in die datenbank immer nur der erste wert der zahlen in der datenbank erscheint. gebe ich z.b. 3,7 im suchfeld ein kommt in der datenbank nur 3 an. ich habe den typ der einzelnen datenbankfelder auf decimal(3,0) bzw (4;0) umgeändert. dasselbe ergebnis bekomme ich, wenn ich den typ auf INT umstelle.
ich habe dann auch in der eingabeseite den typ der entsprechendenden felder in "decimal" geändert. vorher sah der code so aus:
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $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"] == "erweiterte Angaben")) {
$insertSQL = sprintf("INSERT INTO Eingabe (abfahrtsort, zielort, tag, monat, jahr, stunde, `minute`, hinfahrtladeflaeche, hilfeeinausladen, rueckfahrt, rueckfahrtladeflaeche, beschreibung, preis, marke, model, laderaumhoehe, laderaumbreite, laderaumlaenge, laderaumvolumen, treibstoff, getriebe, tempo, nutzername, mail, handy, tel) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['abfahrtsort'], "text"),
GetSQLValueString($_POST['zielort'], "text"),
GetSQLValueString($_POST['tag'], "text"),
GetSQLValueString($_POST['monat'], "text"),
GetSQLValueString($_POST['jahr'], "text"),
GetSQLValueString($_POST['stunde'], "text"),
GetSQLValueString($_POST['minute'], "text"),
GetSQLValueString($_POST['hinfahrtladeflaeche'], "text"),
GetSQLValueString($_POST['hilfeeinausladen'], "text"),
GetSQLValueString($_POST['rueckfahrt'], "text"),
GetSQLValueString($_POST['rueckfahrtladeflaeche'], "text"),
GetSQLValueString($_POST['beschreibung'], "text"),
GetSQLValueString($_POST['preis'], "text"),
GetSQLValueString($_POST['marke'], "text"),
GetSQLValueString($_POST['model'], "text"),
GetSQLValueString($_POST['laderaumhoehe'], "text"),
GetSQLValueString($_POST['laderaumbreite'], "text"),
GetSQLValueString($_POST['laderaumlaenge'], "text"),
GetSQLValueString($_POST['laderaumvolumen'], "text"),
GetSQLValueString($_POST['treibstoff'], "text"),
GetSQLValueString($_POST['getriebe'], "text"),
GetSQLValueString($_POST['tempo'], "text"),
GetSQLValueString($_POST['nutzername'], "text"),
GetSQLValueString($_POST['mail'], "text"),
GetSQLValueString($_POST['handy'], "text"),
GetSQLValueString($_POST['tel'], "text"));
mysql_select_db($database_Eingabe, $Eingabe);
$Result1 = mysql_query($insertSQL, $Eingabe) or die(mysql_error());
$insertGoTo = "sDankesicher.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$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;
}
}
?>
im fett markierten teil habe ich dann aus "text" jeweils "decimal" gemacht:
GetSQLValueString($_POST['laderaumhoehe'], "decimal"),
GetSQLValueString($_POST['laderaumbreite'], "decimal"),
GetSQLValueString($_POST['laderaumlaenge'], "decimal"),
GetSQLValueString($_POST['laderaumvolumen'], "decimal"),
daraufhin habe ich diese fehlermeldung erhalten:
Column count doesn't match value count at row 1