SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 06.01.2004, 10:02:46
Hanjo Hanjo ist offline
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
Mit Zitat antworten
  #2  
Alt 06.01.2004, 10:33:21
Hanjo Hanjo ist offline
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
Mit Zitat antworten
  #3  
Alt 06.01.2004, 11:00:53
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
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.
Zitat:
Aber wie andern ??
Korrektes Format verwenden. Zahlen sehen eben nun mal so aus: 99.99

btw: für was ist eigentlich Deine Funktion nütze?
Mit Zitat antworten
  #4  
Alt 06.01.2004, 11:13:18
Hanjo Hanjo ist offline
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.

....
Mit Zitat antworten
  #5  
Alt 06.01.2004, 11:14:30
Hanjo Hanjo ist offline
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
Mit Zitat antworten
  #6  
Alt 06.01.2004, 11:29:50
chris17 chris17 ist offline
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($zahl2","".");// Der Punkt ist für die Tausender 
Gruss
Mit Zitat antworten
  #7  
Alt 06.01.2004, 11:44:34
Hanjo Hanjo ist offline
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
Mit Zitat antworten
  #8  
Alt 06.01.2004, 11:48:18
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
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/
Mit Zitat antworten
  #9  
Alt 06.01.2004, 11:51:22
chris17 chris17 ist offline
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
Mit Zitat antworten
  #10  
Alt 06.01.2004, 11:55:07
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
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.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:36:55 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt