Avatar billede Slettet bruger
08. november 2002 - 11:42 Der er 13 kommentarer og
1 løsning

Hvilket felt er bedst til at indeholde priser med kr,ører ?

Hej!

Jeg bruger lige nu et felt af typen varchar, da jeg gerne vil have min pris til at fremgå som f.eks. 149,00

En pris kan også være på 119,75

Dertil er varchar fint, undtagen når man vil sortere priserne.

Der ville det jo være fint at sortere dem som tal, og ikke som tekst.

Men hvilket felttype er bedst?
Avatar billede zeroxer Nybegynder
08. november 2002 - 11:45 #1
Jeg tror at den hvor man sorter med tal er bedst - så kunder kunne finde fra de billigste til de dyrere produkter.

mvh zx
Avatar billede medions Nybegynder
08. november 2002 - 11:45 #2
Int

//>Rune
Avatar billede hyperactive Nybegynder
08. november 2002 - 11:46 #3
Du skal bruge decimal..... VarChar behandler data som tekst ikke som tal.
Avatar billede medions Nybegynder
08. november 2002 - 11:46 #4
Ahh ok fairn ko.. der er komma i! -Jamen så er VARCHAR det bedste felt i mySQL DB'en! -efter min egen mening ;o)

//>Rune
Avatar billede hyperactive Nybegynder
08. november 2002 - 11:49 #5
Forresten et godt lille link til at finde ud af, hvilke felttype man skal bruge:

http://www.mysql.com/doc/en/Column_types.html
Avatar billede mads_mao Nybegynder
08. november 2002 - 11:49 #6
Det må helt klart være decimal du skal bruge her. Læse mere på adressen:
http://www.mysql.com/doc/en/Numeric_types.html
Avatar billede aske2 Nybegynder
08. november 2002 - 11:50 #7
Hvorfor ikke bruge en float? Men se eventuelt her:

http://www.mysql.com/doc/en/Column_types.html
Avatar billede aske2 Nybegynder
08. november 2002 - 11:50 #8
Sorry havde ikke lige opdateret!
Avatar billede sthen Nybegynder
08. november 2002 - 11:52 #9
INT er nok bedst, men det kræver så, at du gemmer alle dine priser som ører (altså 119,75 gemmes som 11975) derefter kan du konvertere til decimaltal, når du echo'er.
Avatar billede flse Nybegynder
08. november 2002 - 11:57 #10
Jeg bruger selv DECIMAL(10,2) til kr/øre beløb (og anden valuta). Det giver dig 10 ciffre til beløbet, og heraf to til ørene.

Hvis du bruger alm. SQL til opdatering af felter, er formatet felt = 1234.56 (ingen tusindadskillelse, og punktum for decimaladskillelse).
Dvs. det fungerer med det formatet som de fleste script sprog bruger internt (både PHP, JSP og ASP.not).
Da det er et tal-format, kan du altid benytte en formateringsrutine til at få det vist pænt med punktum for tusindaskillelse og komma som decimalpunkt  :-)
Avatar billede Slettet bruger
08. november 2002 - 12:22 #11
Jeg brugte dit forslag flse, og det virker nu.

Et enkelt lille spm. dog ;)

Jeg bruger nu

$pris = number_format(str_replace(',', '.', $row['pris']),2,',','');

til at formattere min pris ved udtræk. Hvordan skal den se ud hvis jeg vil have tusindeseperator?
Avatar billede flse Nybegynder
08. november 2002 - 12:32 #12
Jeg gætter på at du benytter PHP ud fra dit eksempel.

$pris = number_format( $row["pris"], 2, ',', '.');

for at få 2 decimaler, benytte komma som decimalpunkt og punktum som tusindadskillelse.
Avatar billede Slettet bruger
08. november 2002 - 12:36 #13
Nu virker det jo super :)

Tak for hjælpen!
Avatar billede Slettet bruger
08. november 2002 - 12:36 #14
Og ja, jeg benytter PHP (glemte jeg lige at skrive)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester