PHP'de Para İşlemleri etiketine sahip kayıtlar gösteriliyor.
PHP'de Para İşlemleri etiketine sahip kayıtlar gösteriliyor.

PHP'de Para İşlemleri, MySQL Kolon Tipi ve Kullanımı

Bir proje hazırlıyorsanız,dışardan kullanıcıya para birimi girdirmek istiyorsanız ve bunu nasıl yapacağınızı bilmiyorsanız; mysql veri tipi ne olacak ? dışardan para birimini , (virgüllü) mü girsek . (noktalı) mı girsek veya girdirsek mi vs diyorsanız bu makale tam size göre.

Aşağıdaki temizle fonksiyonu dışardan girilen değeri düzenler, şimdi satır satır inceleyelim.
    function temizle($veri)
    {
    $veri1=substr($veri,0,-3); //Virgülden önceki değeri veri1 değişkenine alıyoruz.
    $veri2=substr($veri,-3,3); //virgül dahil son 3 karakteri veri2 değişkenine alıyoruz.
   
    $veri1=str_replace(",","",$veri1); //veri1 deki varsa ,(virgül) karakterini sildiriyoruz.
    $veri1=str_replace(".","",$veri1); //veri1 deki varsa .(nokta) karakterini sildiriyoruz.
  
    $veri2=str_replace(",",".",$veri2); //veri2 deki varsa ,(virgül) karakterini noktaya çeviriyoruz.
    $son=$veri1.$veri2; //ayarları yaptıktan sonra iki sayıyı birleştirip son değişkeninde yolluyoruz.
    return $son;
    }
bu fonksiyonu arayüz kodlarında kullanmak için;
$deger1=temizle("$deger1"); //değer1i temizle fonk. ile çağırdık.
$sonFiyat=number_format($deger1,2,",","."); //bu format türkiye para birimi için geçerli.
veritabanına kayıt yaparken kullanacağınız değişken $sonFiyat değişkenidir.
1.365,96 sayisi için işlemler şu şekilde ilerleyecek

önce;
veri1=1.365
veri2=,96

daha sonra;
veri1=1365
veri2=.96 olacak

sonra bu sayılar 1365.96 olarak $son değişkeninde yollanacak.
bu değer number_format fonksiyonuna girecek sondan 2 basamak aktif olacak şekilde son 2 rakam virgül ondan öncekiler . olacak şekilde ayıracak. yani 1.365,96 olarak database e yazıcaktır.

Mysql Sutun veri tipi ise varchar(255) optimum seviyededir. Bunu kullanmanız önerilir. Decimal,float vs belli bir seviyeden sonra uçuyor.

İyi çalışmalar.