mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Mi 07.12.2016 11:41 Benutzername: Passwort: Auto-Login

Thema: [PHP, MySQL] Fließkommazahlen speichern - how to? vom 02.03.2006


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [PHP, MySQL] Fließkommazahlen speichern - how to?
Autor Nachricht
taste of ink
Threadersteller

Dabei seit: 14.06.2005
Ort: Hamburg
Alter: 32
Geschlecht: Männlich
Verfasst Do 02.03.2006 10:52
Titel

[PHP, MySQL] Fließkommazahlen speichern - how to?

Antworten mit Zitat Zum Seitenanfang

Ich habe ein kleines Problem in einem PHP-Projekt. Ich möchte ein paar Rechnungen durchführen und am Ende Preise zurück geben. Dabei muss ich ein Paar Fließkommazahlen in eine Datenbank speichern.

Beispiel
123,45 --> 123,00
67,89 --> 67,00

Wie kann ich die richtig speichern? Wenn ich die Variablen mit echo ausgebe haben sie noch 2 Stellen hintern komma, sobald ich speicher haben sie immer 2 Nullen hinterm Komma * Keine Ahnung... *

MySQL-Tabelle
Code:

CREATE TABLE anfragen (
id int(11) NOT NULL auto_increment,
kdnr int(11) DEFAULT '0' NOT NULL,
wunschtermin date DEFAULT '0000-00-00' NOT NULL,
maskenr int(11) DEFAULT '0' NOT NULL,
status int(11) DEFAULT '0',
p1 float(10,2) DEFAULT '0.00' NOT NULL,
p3 float(10,2) DEFAULT '0.00' NOT NULL,
p5 float(10,2) DEFAULT '0.00' NOT NULL,
pn float(10,2) DEFAULT '0.00' NOT NULL,
w1 float(5,2) DEFAULT '0.00' NOT NULL,
w2 float(5,2) DEFAULT '0.00' NOT NULL,
w3 float(5,2) DEFAULT '0.00' NOT NULL,
w4 float(5,2) DEFAULT '0.00' NOT NULL,
w5 float(5,2) DEFAULT '0.00' NOT NULL,
w6 float(5,2) DEFAULT '0.00' NOT NULL,
w7 float(5,2) DEFAULT '0.00' NOT NULL,
w8 float(5,2) DEFAULT '0.00' NOT NULL,
w9 float(5,2) DEFAULT '0.00' NOT NULL,
w10 float(5,2) DEFAULT '0.00' NOT NULL,
w11 float(5,2) DEFAULT '0.00' NOT NULL,
w12 float(5,2) DEFAULT '0.00' NOT NULL,
w13 float(5,2) DEFAULT '0.00' NOT NULL,
w14 float(5,2) DEFAULT '0.00' NOT NULL,
w15 float(5,2) DEFAULT '0.00' NOT NULL,
w16 float(5,2) DEFAULT '0.00' NOT NULL,
w17 float(5,2) DEFAULT '0.00' NOT NULL,
w18 float(5,2) DEFAULT '0.00' NOT NULL,
w19 float(5,2) DEFAULT '0.00' NOT NULL,
w20 float(5,2) DEFAULT '0.00' NOT NULL,
w21 float(5,2) DEFAULT '0.00' NOT NULL,
w22 float(5,2) DEFAULT '0.00' NOT NULL,
w23 float(5,2) DEFAULT '0.00' NOT NULL,
w24 float(5,2) DEFAULT '0.00' NOT NULL,
w25 float(5,2) DEFAULT '0.00' NOT NULL,
w26 float(5,2) DEFAULT '0.00' NOT NULL,
w27 float(5,2) DEFAULT '0.00' NOT NULL,
w28 float(5,2) DEFAULT '0.00' NOT NULL,
w29 float(5,2) DEFAULT '0.00' NOT NULL,
w30 float(5,2) DEFAULT '0.00' NOT NULL,
PRIMARY KEY (id)
)

PHP-Befehl
Code:

if(!$fehler AND $_GET[kalkulieren])
{
$tabellenname="anfragen";
include('/connect.php');
$sql="INSERT INTO ".$tabellenname."(kdnr,maskenr,status,w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12,w13,w14) values
(123456,1,1,".$_GET[bohrung].",".$_GET[luftflaechen].",".$_GET[ausrichtflaechen].",1,".$_GET[kontrolle].",".$_GET[beschichtung].",
".$_GET[material2].",".$_GET[material_zw].",".$_GET[material_arm].",".$_GET[laenge].",".$_GET[klaenge].",".$_GET[d1].",".$_GET[d2].",
".$_GET[khoehe].")";
if(!mysql_query($sql, $link)){$db_fehler=="<br><p style=\"color:red\">Datenbankfehler:<br>".mysql_error()."<br></p>";}
}

  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
BenediktXVI

Dabei seit: 11.11.2005
Ort: -
Alter: 35
Geschlecht: Männlich
Verfasst Do 02.03.2006 11:13
Titel

Antworten mit Zitat Zum Seitenanfang

Was helfen könnte wäre die function number_format(); oder auch float(); beides in PHP anzuwenden.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
taste of ink
Threadersteller

Dabei seit: 14.06.2005
Ort: Hamburg
Alter: 32
Geschlecht: Männlich
Verfasst Do 02.03.2006 11:31
Titel

Antworten mit Zitat Zum Seitenanfang

Die Zahl ist ja schon als Fließkommazahl formatiert. Nur das speichern klappt nicht. Wenn ich aus den float-Feldern in der Datenbank Textfelder mache dann übernimmt er die richtigen Zahlen. Aber warum? Ist meine Datenbank falsch deklariert?

Zuletzt bearbeitet von taste of ink am Do 02.03.2006 11:31, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
tacker

Dabei seit: 22.03.2002
Ort: Offenbach am Main
Alter: 36
Geschlecht: Männlich
Verfasst Do 02.03.2006 11:50
Titel

Antworten mit Zitat Zum Seitenanfang

Nimm statt float
Code:
DOUBLE(10,2)
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
taste of ink
Threadersteller

Dabei seit: 14.06.2005
Ort: Hamburg
Alter: 32
Geschlecht: Männlich
Verfasst Do 02.03.2006 13:08
Titel

Antworten mit Zitat Zum Seitenanfang

Jetzt versteh ich gar nichts mehr. Mit DOUBLE gehts. Aber natürlich nur wenn ich z.B. 2.3 eingebe ich möchte aber 2,3 eingeben. Das ist mit FLOAT doch das selbe in grün, aber warum geht das nicht? *Schnief*

Zuletzt bearbeitet von taste of ink am Do 02.03.2006 13:09, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
tacker

Dabei seit: 22.03.2002
Ort: Offenbach am Main
Alter: 36
Geschlecht: Männlich
Verfasst Do 02.03.2006 13:14
Titel

Antworten mit Zitat Zum Seitenanfang

taste of ink hat geschrieben:
Jetzt versteh ich gar nichts Mehr. Mit DOUBLE gehts. Aber nur wenn ich z.B. 2.3 eingebe ich möchte aber 2,3 eingeben. Das ist doch das selbe in grün, aber warum geht das nicht? :(

Weil mysql und PHP mit der amerikanischen Notation arbeiten. Du musst also deine Float-Darstellung mit z.B. "," in echte floats verwandeln.
Code:
$deutsch = '4,23';
$us = (float)str_replace(',', '.', $deutsch);


Zuletzt bearbeitet von tacker am Do 02.03.2006 13:16, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
taste of ink
Threadersteller

Dabei seit: 14.06.2005
Ort: Hamburg
Alter: 32
Geschlecht: Männlich
Verfasst Do 02.03.2006 13:32
Titel

Antworten mit Zitat Zum Seitenanfang

It fucking works... Vielen Dank ich bin dir was schuldig *Thumbs up!*
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen [mysql/php] array speichern
mit php login + registrieren und auf mysql db speichern
[php / mysql] Mysql Daten in php als Link ausgeben
[PHP/MySQL] MySQL Error: 1054, falsche Tabelle ausgewählt?
(php-mysql) übergabe von formulardaten und abfrage m. mysql
[PHP / MySQL] MySQL-Funktion gesucht: letzteÄnderungTabelle
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.