CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
06.01.2004, 10:02:46
|
Anfänger
|
|
Registriert seit: Nov 2002
Ort: 24369 Waabs
Beiträge: 12
|
|
float - variable ->MySQl-Tabel Nachkomma-Stellen abgeschnitten ??
Moin auch
folgende Code - Schnipsel:
-------
$versD = 99.99 ;
....
$insert = "INSERT INTO B_Bestell (Artikel,Kunde,Anzahl,Bemerkung, eingegeben,inip, Porto) VALUES (1,'".$kdnr."','".$inarray_['Anzahl']."','".$inarray_['Comments']."','".$datum."','".$remote_url."','$versD')";
--------
Schreibt mir in meine MySQL-Tabelle immer nur die Vorkomma-Stellen rein, obwohl dort das Feld als float(5,2) definiert ist.
Wenn ich mir den Insert-String ausgeben lasse, erscheint z.B.
INSERT INTO B_Bestell (Artikel,Kunde,Anzahl,Bemerkung, eingegeben,inip, Porto) VALUES (1,'44','7','Terst 10','20040106074304','217.227.210.80','99,99')
Da steht also '99,99' und nicht '99.99'
Vielleicht liegt es daran.
Aber wie andern ??
Fragt sich
Hanjo
|
06.01.2004, 10:33:21
|
Anfänger
|
|
Registriert seit: Nov 2002
Ort: 24369 Waabs
Beiträge: 12
|
|
Nachtrag:
die Variable $versD jage ich noch durch diese Funktion:
-----------
function rech_betr($betr)
{
if !(strstr($betr,"."))
$betr .= ".0";
$plen = strlen($betr);
$betr2 = str_pad($betr,$plen + 1,"0");
$varray = array ("." => ",");
$betr3 = strtr($betr2,$varray);
return $betr3;
------------
Vielleicht liegt es daran ?
Allerdings half folgendes Kontrukt auch nicht:
$VersandD = $versD;
echo rech_betr($VersandD);
ratlos
Hanjo
|
06.01.2004, 11:00:53
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
Re: float - variable ->MySQl-Tabel Nachkomma-Stellen abgeschnitten ??
Zitat:
Original geschrieben von Hanjo
Da steht also '99,99' und nicht '99.99'
Vielleicht liegt es daran.
|
Klar liegt es daran. MySQL macht ein automatisches Typecasting. Da das Feld numerisch ist, liest MySQL den String 99,99 bis zum 1. nicht-numerischen Zeichen ein und schmeißt den Restg weg.
Korrektes Format verwenden. Zahlen sehen eben nun mal so aus: 99.99
btw: für was ist eigentlich Deine Funktion nütze?
|
06.01.2004, 11:13:18
|
Anfänger
|
|
Registriert seit: Nov 2002
Ort: 24369 Waabs
Beiträge: 12
|
|
Moin auch,
ich würd ja gerne das korrekte format nehmen.
Aber wie ?
Ich gebe es oben korrekt mit Punkt ein und wenn ich es im Insert-String benutze, hat es die 'Komma-Form'.
Durch die Zwischenvariable schließe ich die Verädnerung von $versD in der funktion aus.. glaub ich zuminsdest.
....
|
06.01.2004, 11:14:30
|
Anfänger
|
|
Registriert seit: Nov 2002
Ort: 24369 Waabs
Beiträge: 12
|
|
Übrigens:
die Funktion soll mir die Nachkommastellen bringen für eine Anzeige.
Ich möchte also nicht 2 ausgeben sondern 2,00
|
06.01.2004, 11:29:50
|
Senior Member
|
|
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
|
|
Hi,
Zitat:
die Funktion soll mir die Nachkommastellen bringen für eine Anzeige.
|
Dafür kannst Du number_format() verwenden
PHP-Code:
$zahl = 2;
$zahl = number_format($zahl, 2, ",", ".");// Der Punkt ist für die Tausender
Gruss
|
06.01.2004, 11:44:34
|
Anfänger
|
|
Registriert seit: Nov 2002
Ort: 24369 Waabs
Beiträge: 12
|
|
So, jetzt habe ich den Übeltäter.
Es ist _nicht_ die o.g. Funktion, sondern mein o.g. Problem liegt an der Zeile, die ich standardmäßig beim Connecten der Datenbank einschiebe:
setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
Der biegt mir die '99.99' in '99,99' um.
Darf der das ???
Gruß von der Ostsee
Hanjo
|
06.01.2004, 11:48:18
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
Zitat:
Original geschrieben von Hanjo
Ich gebe es oben korrekt mit Punkt ein und wenn ich es im Insert-String benutze, hat es die 'Komma-Form'.
|
Frage:
$versD = 99.99 ;
.... <--- was passiert hier mit der Variable $versD?
$insert = "INSERT INTO B_Bestell (Artikel,Kunde,Anzahl,Bemerkung, eingegeben,inip, Porto) VALUES (1,'".$kdnr."','".$inarray_['Anzahl']."','".$inarray_['Comments']."','".$datum."','".$remote_url."','$versD')";
Bei mir klappt das nämlich...:
http://test.new-bbs.info/6557/
|
06.01.2004, 11:51:22
|
Senior Member
|
|
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
|
|
Hi Hanjo,
ich würde die Funktion nicht von jeder Schuld freisprechen ;)
PHP-Code:
function rech_betr($betr)
{
if (!(strstr($betr,".")))
$betr .= ".0";
$plen = strlen($betr);
$betr2 = str_pad($betr,$plen + 1,"0");
$varray = array ("." => ",");
$betr3 = strtr($betr2,$varray);
return $betr3;
}
$versD = "99,99";
$VersandD = $versD;
echo rech_betr($VersandD);# -> Ausgabe 99,990!!!
Nimm lieber number_format().
Gruss
|
06.01.2004, 11:55:07
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
Zitat:
Original geschrieben von Hanjo
... sondern mein o.g. Problem liegt an der Zeile, die ich standardmäßig beim Connecten der Datenbank einschiebe:
setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
Der biegt mir die '99.99' in '99,99' um.
Darf der das ???
|
Du siehst doch die Auswirkung. Sowas schaltet man erst dann ein, wenn es für die Ausgabeformatierung sinnvoll ist.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 15:36:55 Uhr.
|