Rechnen / varchar
am 16.12.2005 09:19:56 von Mark Knochen
Hallo,
ich weiss, ist wahrscheinlich ne blöde Frage, aber ich steh irgendwie
auf meinem Gehirn:
ich habe eine DB übertragen bekommen, in der in diversen Spalten - alle
varchar(255) Zahlen und Beträge stehen mit denen ich nun mit PHP
Berechnungen anstellen soll.
Bekanntlich lässt sich aber mit varchar nicht so gut rechnen.
Allerdings kann ich auch nicht einfach den Spaltentyp ändern, weil ich
etwas Bedenken habe, die Werte zu verlieren.
Habt ihr Tipps dazu?
Danke
Mark
Re: Rechnen / varchar
am 16.12.2005 10:26:56 von Tobias Kutzler
Mark Knochen schrieb:
> Hallo,
>
> ich weiss, ist wahrscheinlich ne blöde Frage, aber ich steh irgendwie
> auf meinem Gehirn:
>
> ich habe eine DB übertragen bekommen, in der in diversen Spalten - alle
> varchar(255) Zahlen und Beträge stehen mit denen ich nun mit PHP
> Berechnungen anstellen soll.
>
> Bekanntlich lässt sich aber mit varchar nicht so gut rechnen.
> Allerdings kann ich auch nicht einfach den Spaltentyp ändern, weil ich
> etwas Bedenken habe, die Werte zu verlieren.
Also soweit ich mich erinnere versucht PHP immer automatisch Strings in
Zahlen zu konvertieren, wenn man mit ihnen Berechnungen durchführen
möchte. Siehe dazu:
http://www.php.net/manual/de/language.types.php
Da steht, dass der Typ ja in PHP nicht explizit vorgegeben wird, sondern
durch dessen Verwendung bestimmt wird.
Ergo: Einfach die "Strings" aus der DB holen und Berechnungen anstellen.
Einfach mal probieren. ;-)
Ciao,
Tobias
Re: Rechnen / varchar
am 16.12.2005 15:24:49 von Niels Braczek
Mark Knochen schrieb:
> ich habe eine DB übertragen bekommen, in der in diversen Spalten - alle
> varchar(255) Zahlen und Beträge stehen mit denen ich nun mit PHP
> Berechnungen anstellen soll.
Kaputt, aber zum Glücxk kein Problem.
> Bekanntlich lässt sich aber mit varchar nicht so gut rechnen.
Das gilt vielleicht für alle anderen, nicht aber für PHP. PHP mach wann
immer möglich eine automatische, meistens sogar sinnvolle Typenumwandlung.
> Allerdings kann ich auch nicht einfach den Spaltentyp ändern, weil ich
> etwas Bedenken habe, die Werte zu verlieren.
Die DB in Ordnung zu bringen, ist trotzdem eine gute Idee.
Kopiere am besten die betroffenen Spalten in eine neue mit korrektem
Typ. Dann kannst du prüfen, ob alle Daten angekommen sind, anschlieÃend
die alte löschen und schlieÃlich die neue umbenennen.
HTH
NIels
--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
`----------------------------------------------------------- -----´
Re: Rechnen / varchar
am 17.12.2005 14:25:35 von Helmut Schmuckermair
> ich habe eine DB übertragen bekommen, in der in diversen Spalten - alle
> varchar(255) Zahlen und Beträge stehen mit denen ich nun mit PHP
> Berechnungen anstellen soll.
Berechnungen würde ich von der Datenbank durchführen lassen, die kann
das schneller als PHP - also einfach die Feldtypen ändern (s.u.!)
> Bekanntlich lässt sich aber mit varchar nicht so gut rechnen.
in der Datenbank ja,
in PHP ist nach der Abfrage erst mal alles Text/String. Aufgrund der
automatischen Typenumwandlung musst du darauf keine Rücksicht nehmen -
ich selbst benutze aber gerne die explizite Typenumwandlung zB.
$gesamt = (int) $zeile['stueck'] * (float) $zeile['preis'];
wobei die $zeile einen Datensatz darstellt
http://www.php.net/manual/de/language.types.type-juggling.ph p#language.types.typecasting
> Allerdings kann ich auch nicht einfach den Spaltentyp ändern, weil ich
> etwas Bedenken habe, die Werte zu verlieren.
vorher *immer* ein Backup (dump) machen und ausprobieren!