Punkt statt Komma

emplace

Mitglied
Moin Leute,

hab mal wieder ein Prob. und zwar:

Wenn ich in ein Formularfeld eine Summe eintrage

z.B. 12,22 und diese Daten nach mysql übergebe steht nur 12.00 drin.

Das Feld in der Tabelle ist decimal(5,2).

Da ich die Zahlen über den Nummerblock eingebe, muss ich wohl in der Formularprogrammierung das Komma in Punkt umwandeln, nur wie?

Danke im Vorraus

MFG emplace
 
str_replace

(PHP 3>= 3.0.6, PHP 4 )
str_replace -- Replace all occurrences of the search string with the replacement string
Description
mixed str_replace ( mixed search, mixed replace, mixed subject)

This function returns a string or an array with all occurences of search in subject replaced with the given replace value. If you don't need fancy replacing rules, you should always use this function instead of ereg_replace() or preg_replace().

In PHP 4.0.5 and later, every parameter to str_replace() can be an array.

If subject is an array, then the search and replace is performed with every entry of subject, and the return value is an array as well.

If search and replace are arrays, then str_replace() takes a value from each array and uses them to do search and replace on subject. If replace has fewer values than search, then an empty string is used for the rest of replacement values. If search is an array and replace is a string; then this replacement string is used for every value of search.

Example 1. str_replace() example

$bodytag = str_replace("%body%", "black", "<body text=%body%>");

This function is binary safe.

Note: str_replace() was added in PHP 3.0.6, but was buggy up until PHP 3.0.8.

See also ereg_replace(), preg_replace(), and strtr()
 
also ganz genau wäre dass dann:

PHP:
$zahl = str_replace(".",",", $zahl);

wobei $zahl die variable ist die die zahl enthält...

antihero
 
Danke!

Nur wie bringe ich das hier ein: <? $jan = str_replace(".",",", $jan); ?>

PHP:
....
<td>
       <input name="jan" type="text" value="<? echo $jan ?>" size="10" maxlength="10">
</td>
......


MFG emplace
 
hmmm... so wie dus geschrieben hast...

nimm dein script und statt dem einfachen echo machst dus so:

PHP:
<? $jan = str_replace(".",",", $jan); ?>
<tr><td><input name="jan" type="text" value="<? echo $jan ?>" size="10" maxlength="10"></td></tr>

und dann solte das gehen... vielleicht habe ich deine frage falsch verstanden... in diesem falle einfach nachfragen... so wie oben gehts aber auf jeden fall..

antihero
 
Danke,

nur das funkt nicht.

Ok, hier noch mal die Frage:

Ich möchte die Werte mit einem Komma eingeben also 12,22 aber in der mysql datenbank steht nur 12.00 . Es fehlt als alles nach dem Komma
???? :-(


Wie bekomme ich das hin das ich 12,22 eingebe und 12.22 gespeichert wird?

MFG emplace
 
hmmm... scheint als akzeptiert mysql als Komma nur den Punkt (dummer satz, ich weiss ;)). Filtere also bei deiner Eingabe (12,23) das komma heraus und ersetze es mit einem punkt. schreib dann diesen wert in die tabelle.
wenn du den wert wieder aus der DB ausliest, kannst du dann zum ausgeben, das Punk wieder durch ein Komma ersetzen...

Hoffe das geht so, ansonsten gibts noch eine dumme, unelegante ausweichlösung, du änderst einfach den feldtyp ind "varchar", dann wird das ganze sicher korrekt gespeichert, is aber sicher nicht elegant gelöst... ;)

antihero
 
Moin Moin,

Ich habe das gleiche Problem. Es ist kein Problem die Daten umzuwandeln sp das das Komma zu einen punkt umgewandelt werden.

Jetzt habe ich aber das Problem das die Eingaben eines Textfeldes nicht in eine Variable zu schreiben.

Hier meinen Code:

PHP:
<input name="preis1" type="text" id="preis1" size="15" />
	     <? 
		 	$preis = $_POST["preis1"];
		 	$s = $preis;
			$f = str_replace(',', '.', $s);
			$test = $f * 3.5; 
		?>
      &euro;
      <input name="preis" type="hidden" id="preis" value="<?php echo "$test"; ?>" />

Wo mache ich meinen Fehler

Alex
 
Was genau hast du vor?
Das was du da zeigst, funktioniert bei mir so wie es soll. Nach dem Absenden des Formulars, steht der Wert in einem hidden-Feld.
 
Zurück