Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Addition durch php Funktion nimmt keine Nachkommastellen mit in die Berechnung

Frage Entwicklung PHP

Mitglied: gechger

gechger (Level 1) - Jetzt verbinden

01.10.2009, aktualisiert 02.10.2009, 9050 Aufrufe, 4 Kommentare

Zur Addition verschiedener Werte beim Durchlauf eines Arrays verwende ich $sum+=$array[8], aber Nachkommastellen werden nicht berücksichtigt

Hallo Forum,

wieder einmal bräuchte ich Tips und Tricks von Euch. Recherchen haben mir zu meinem Problem nicht weiter geholfen.

Kurz beschrieben:
In einer Datenbank befinden sich etliche Daten, unter anderem auch Zeiten. Diese wurden im Dezimalsystem erfasst, also 1,5 / 1,75 / 2 usw.
Ich möchte nun mittels fpdf ein pdf Dokument erzeugen, worin diese Zeiten stehen, was sie auch tun.

Zusätzlich möchte ich aber die einzelnen Zeiten als Summe ausgeben. Ich verwende dafür dieses Script:

$sum+=$row[8];

wobei in row8 die einzelnen Zeiten stehen. Ich bekomme auch eine schöne Summierung, nur leider ist sie falsch. Alle Werte mit Kommastellen werden ohne die Nachkommastellen gerechnet.
2 + 2,5 +2 ergibt 6 und nicht 6,5

Unschön!

Da ich die Zeiten über ein Eingabeformular bekomme, werde ich die Zeiten gewohnheitsmäßig immer mit einem Komma erhalten. Ich vermute, daß das Problem darin liegt, das für die Zeiten ein Komma, und nicht ein Punkt vorhanden ist.

Deshalb die Frage:
Muß ich das Komma vorm Schreiben in die Datenbank in einen Punkt ändern? Wenn ja, wie??

Kann man eine Formatierung einbauen, die fpdf versteht und mit den Kommawerten auch rechnet? sprintf funktioniert nicht. Ich darf keine weiteren Ausgaben erzeugen, ohne das fpdf einen Fehler auswirft.

Vielen Dank für jede Idee
Schöne Grüße
Christof
Mitglied: filippg
01.10.2009 um 21:09 Uhr
Deshalb die Frage:
Muß ich das Komma vorm Schreiben in die Datenbank in einen
Punkt ändern? Wenn ja, wie??
Klares Jein. Genauer: Du musst den Datentyp ändern. Zahlen speichert man in einer SQL-DB gefälligst auch nur als Zahl, nicht als Zeichenkette (was offenbar jetzt der Fall ist).

Gruß

Filipp
Bitte warten ..
Mitglied: gechger
01.10.2009 um 21:16 Uhr
Das Feld mit der Zeit ist als varchar definiert.

Und es liegt tatsächlich am Komma. Wenn ich den Datenbank Wert manuell als 2.5 eintrage, bekomme ich richtige Berechnungen.

Wie bekomme ich also eine Eintrag aus dem Eingabeformular im Format 2,5 in die korrekte Schreibweise 2.5 ?
Mit substr wirds nicht gehen, es könnte ja auch 10,75 drin stehen.

Schöne Grüße
Christof
Bitte warten ..
Mitglied: Dani
01.10.2009 um 21:23 Uhr
Hi,
warum konvertierst du das DB-Feld nicht nach FLOAT um.
Ansonsten versuch es mit der Funktion explode() .

Beispiel:
01.
<?php 
02.
 
03.
$value="1,75"; 
04.
echo preg_replace("/,/", ".", $value); 
05.
 
06.
?>
Ich habe es einfach mit echo gelöst. Du musst natürlich eine Zuweisung nehmen.


Gruß,
Dani
Bitte warten ..
Mitglied: gechger
02.10.2009 um 08:28 Uhr
Hallo Dani,

wie so oft sieht man das Naheliegende einfach nicht.
Dein Vorschlag führt zum gewünschten Ergebnis.

Die Umwandlung der Spalte in Float(4,2) bringt leider keinen Erfolg. Die Nachkommastellen werden abgeschnitten, wenn die Zahl mit Komma gespeichert wird. Man muß tatsächlich erst mit preg_replace das Komma in einen Punkt umwandeln.

Vielen Dank für Deine Hilfe

Schöne Grüße
Christof
Bitte warten ..
Ähnliche Inhalte
PHP
PHP Funktionen
Frage von tobmesPHP3 Kommentare

Hi, ich bin es mal wieder ;) Ich habe jetzt glaube ich ein kleines Verständnisproblem mit Funktionen und Rückgabewerten ...

Microsoft Office
Excel 2010 - Funktion TEXT - variable Anzahl an Nachkommastellen
gelöst Frage von JuckieMicrosoft Office5 Kommentare

Hallo an alle, es geht um die Verkettung von Werten in Zellen in Excel 2010: Wert in Zelle A1 ...

PHP
Mysqli in eigenen PHP Funktionen
gelöst Frage von BuddersPHP4 Kommentare

Halli Hallo liebe Administratoren, schon mal Vorweg: ich habe mich die letzten Wochen dran gemacht mich mit PHP zu ...

PHP
PHP Mail Funktion
Frage von gamerffPHP5 Kommentare

Hallo Forum, ich versuche grade mit der PHP mail() Funktion ein Kontaktformular zu erstellen. Leider kommt beim absenden immer ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 13 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 18 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 18 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Windows XP
Windows XP Aktivieren geht nicht
Frage von tetikmiroWindows XP13 Kommentare

Hallo Ich habe einen Windows XP mit einen vCenter Converter umgezogen auf eine ESXI. Soweit funktioniert dies auch ohne ...

Blogs
Immer wiederkehrende PHP Fehlermeldung bei Wordpress UTF-8 - ASCII
gelöst Frage von vcdweltBlogs11 Kommentare

Hi, seit einiger Zeit wird mein error_log meines Wordpress Blogs mit immer der gleichen Fehlermeldung überschwemmt. 14-Dec-2017 08:18:05 UTC ...

Switche und Hubs
Redundante L2 LWL Leitung über 2 Standorte - Spanning Tree - HP Equipment
gelöst Frage von ResolvSwitche und Hubs10 Kommentare

Hallo, ich stehe vor der Herausforderung eine Redundante L2 LWL Leitung über 2 Standorte herzustellen. Grundsätzliches Switching Know How ...