Falsches Ergebnis wenn ich mit , rechne?

wolle-

Mitglied
Hallo alle zusammen,

habe eine doofe Sache gefunden.

Folgende Situation:

Ein Formular, bei dem ca. 36 Werte eingegeben werden. Damit wird gerechnet etc.

Zum Beispiel wird der Durchschnitt berechnet, wenn man nun ne Zahl mit Komma eingibt, rechnet er Falsch.

Meine Frage also:

Kann ich im ganzen PHP Dokument alle , automatisch durch einen . ersetzen lassen ohne großen aufwand - oder kann ich mit , rechnen?

Problem ist halt, dass die Mitarbeiter trotz Hinweis, dass ein Punkt eingegeben werden muss nen Komma hinmachen -> "Das ergebnis ist ja Falsch..."

Ein paar Beispiel eingaben:

PHP:
<td>5.</td>
      <td>Anweseinheitsgrad HW</td>
      <td valign="middle"> <input name="F02" type="text" size="6"> </td>
      <td>%</td>
      <td>Trendbericht Abtlg T31 Auswahlzeitraum</td>
    </tr>
    <tr> 
      <td>6.</td>
      <td>Auslastungsgrad HW</td>
      <td valign="middle"> <input name="F03" type="text" size="6"> </td>
      <td>%</td>
      <td>aus Trendbericht Abtlg T32 Auswahlzeitraum</td>
    </tr>
    <tr> 
      <td>7.</td>
      <td>Leistungsgrad HW</td>
      <td valign="middle"> <input name="F04" type="text" size="6"> </td>
      <td>%</td>
      <td> aus Trendbericht Abtlg T33 Auswahlzeitraum</td>
    </tr>
    <tr> 
      <td>8.</td>
      <td>Produktivit&auml;t</td>
      <td valign="middle"> <input name="F05" type="text" size="6"> </td>
      <td>%</td>
      <td>aus Trendbericht Abtlg T34 Auswahlzeitraum</td>
    </tr>
    <tr> 
      <td>9.</td>
      <td>verk. Std. pro Monat HW</td>
      <td valign="middle"> <input name="F06" type="text" size="6"> </td>
      <td>Stunden</td>
      <td>Trendbericht Abtlg T36 Auswahlzeitraum</td>
    </tr>
    <tr>

Gruß Wolle
 
Erst mal zur Lösung des Grundproblems:

PHP:
$korrigiert = str_replace(',', '.', $variable);

Ich persönlich würde jedoch mittels Javascript die Eingabe zusätzlich checken, z.B. um gleich Buchstaben in diesen Feldern zu vermeiden. (was eine PHP-Überprüfung nicht ersetzt, da Javascript vom Anwender deaktiviert werden kann)
 
$korrigiert = str_replace(',', '.', $variable);

Hallo MiNiMaG,

wie meinst du das?

muss ich dann anstatt $daten[F01] $korrigiert ausgeben?
und wer ist denn $variable. Muss ich das also für jedes Feld machen?
Und wo genau muss ich das machen, damit er das mit PUNKT in der Datenbank einträgt und nicht nur so anzeigt.

Danke für die Antwort

Gruß Wolle ;-]
 
Es gibt wie immer mehrere Möglichkeiten, die simpelste:

PHP:
$anwesenheitsgrad = str_replace(',', '.', $_POST['F02']);
 
Es gibt wie immer mehrere Möglichkeiten, die simpelste:


PHP-Code:
PHP:
$anwesenheitsgrad = str_replace(',', '.', $_POST['F02']);

aber wozu brauche ich dann das $anwesenheitsgrad

benutze ich die Variable nochmal Oder geht auch

PHP:
str_replace(',', '.', $_POST['F02']);

O_o?
 
Bedeutet das, ich muss es so machen?

PHP:
$punkt1 = str_replace(',', '.', $_POST['F01']);  
$punkt2 = str_replace(',', '.', $_POST['F02']);  
$punkt3 = str_replace(',', '.', $_POST['F03']);  
$punkt4 = str_replace(',', '.', $_POST['F04']);  
$punkt5 = str_replace(',', '.', $_POST['F05']);  
$punkt6 = str_replace(',', '.', $_POST['F06']);  
$punkt7 = str_replace(',', '.', $_POST['F07']);  
$punkt8 = str_replace(',', '.', $_POST['F08']);  
$punkt9 = str_replace(',', '.', $_POST['F09']);  
$punkt10 = str_replace(',', '.', $_POST['F10']);  
$punkt11 = str_replace(',', '.', $_POST['F11']);  
$punkt12 = str_replace(',', '.', $_POST['F12']);  
$punkt13 = str_replace(',', '.', $_POST['F13']);  
$punkt14 = str_replace(',', '.', $_POST['F14']);  
$punkt15 = str_replace(',', '.', $_POST['F15']);  
$punkt16 = str_replace(',', '.', $_POST['F16']);  
$punkt17 = str_replace(',', '.', $_POST['F17']);  
$punkt18 = str_replace(',', '.', $_POST['F18']);  
$punkt19 = str_replace(',', '.', $_POST['F19']);  
$punkt20 = str_replace(',', '.', $_POST['F20']);
$punkt21 = str_replace(',', '.', $_POST['F21']);
$punkt22 = str_replace(',', '.', $_POST['F22']);
$punkt23 = str_replace(',', '.', $_POST['F23']);  
$punkt24 = str_replace(',', '.', $_POST['F24']);
$punkt25 = str_replace(',', '.', $_POST['F25']);
$punkt26 = str_replace(',', '.', $_POST['myField6']);
$punkt27 = str_replace(',', '.', $_POST['myField5']);
$punkt28 = str_replace(',', '.', $_POST['myField3']);
$punkt29 = str_replace(',', '.', $_POST['myField4']);
$punkt30 = str_replace(',', '.', $_POST['myField1']);
$punkt31 = str_replace(',', '.', $_POST['myField2']);
$punkt32 = str_replace(',', '.', $_POST['myTotalField1']);
$punkt33 = str_replace(',', '.', $_POST['total2']);
$punkt34 = str_replace(',', '.', $_POST['gesamt']);

Und dann tauscht er das automatisch? :-)

Edit:

Habe das gerade mal gemacht:

Der macht immernoch überall Komma, tauscht das eigentlich garnicht :/
 
Zuletzt bearbeitet:
Genau so, gibt zwar wie gesagt noch schönere Möglichkeiten, aber zum Einstieg in das Thema ist das so genau richtig.
 
Ja habe ich so gemacht,

habe oben eine Edit gemacht:

Edit:

Habe das gerade mal gemacht:

Der macht immernoch überall Komma, tauscht das eigentlich garnicht :/


Der macht einfach garnix. Habe ich da was vergessen Muss ich die vielleicht noch irgendwie ausführen lassen sobald man auf abschicken klickt oder so?

;-]
 
Sollte er aber.

Du musst natürlich weiter unten im Script mit $punkt1 weiterarbeiten.

Ansonsten, poste mal mehr vom Script
 

Neue Beiträge

Zurück