Ik zoek de juiste oplossing om getallen voor een webshop te storen in de DB.

Ik wil namelijk 12.50 in de DB zetten maar de Mac doet automatische en punt ervan maken op het toetsenbord. Windows doet gewoon netjes een komma plaatsen.
Moet ik met PHP gaan tackelen hoe het in de DB komt te staan??

Help wanted badly.
De beste oplossing is om een DECIMAL-veld te gebruiken, en met money_format() het formaat aan te passen in de output. Bij de Rabobank worden met JS alle punten na een onBlur() event gereplaced naar een komma in de view.
@Aar, kan je met "decimal" gewoon alles erin plaatsen? Ik gebruikte nu het "double" type wat resulteerde in fouten.
Een decimal of een double moet altijd met een punt er tussen.
Je zal altijd te maken hebben met gebruikers die een komma invoeren ipv een punt, dus moet je dat in php regelen.
Ger van Steenderen op 04/01/2015 21:12:49

Een decimal of een double moet altijd met een punt er tussen.
Je zal altijd te maken hebben met gebruikers die een komma invoeren ipv een punt, dus moet je dat in php regelen.


Perfect, dat is precies wat ik wou weten. Gaan we dat even fixen in de code.
Bedankt weer!
decimal(13,2) om precies te zijn. Gebruik dan wel punten voor de komma-decimalen.
.. Het wil nog niet haha.
Ik probeer nu 10.50 in de DB (decimal-type) te plaatsen maar php of mysql maakt er 11 van.

Ik heb

<?php
number_format($this->input->post('product_price'), 2);
?>


Moet ik het anders doen, ik ben het kwijt nu haha.
Dat doet PHP.

number_format krijgt als eerste parameter een float niet een string.
Gebruik gewoon str_replace() (tenzij je verwacht dat er ook duizend scheiders ingevoerd worden!)
Verdomme nog aan toe!

10.50 invoeren in input veld. PHP code erover ( str_replace( ',', '.', $getal ) ); In de DB decimal opgegeven en gewoon fucking 11 ervan maken haha.
Wat doe ik fout xD ben al een half uur aan het kloten ermee. Oh wat haat ik getallen, tenzij ze in grote getalen naar mijn rekening komen haha
Heb je in de db wel het datatype van het veld op DECIMAL(8,2) staan?

Reageren