• 02-07-2015, 01:55:07
    #1
    Merhaba;

    Bir eticaret sitesinin sepet bölümünde Ürün fiyatlarının yazılı olduğu tablo verilerini SUM fonksiyonu ile topluyorum.

    Sepete teker teker ürün ekleyince sorun olmuyor ancak bir anda 10-20 adet seçilip eklendiğinde mesela 3.980,00 TL olması gereken ürün fiyatı 3,98 TL olarak görünüyor. ve bu şekilde işlem görüyor.

    Sorun neden kaynaklı olabilir. ?

    Kullandığım Sorgu Kodu

    <?php 								
    	$SepetTopla			=	mysql_query("SELECT sum(uruntoplam) from sepet uruntoplam WHERE uyeid='$uye'");
    	$sepetSor			=	mysql_fetch_array($SepetTopla);
    							echo	$fiyat =	number_format($sepetSor["sum(uruntoplam)"],2,",",".");
    									
    ?>
  • 02-07-2015, 11:57:16
    #2
    Ankon adlı üyeden alıntı: mesajı görüntüle
    Merhaba;

    Bir eticaret sitesinin sepet bölümünde Ürün fiyatlarının yazılı olduğu tablo verilerini SUM fonksiyonu ile topluyorum.

    Sepete teker teker ürün ekleyince sorun olmuyor ancak bir anda 10-20 adet seçilip eklendiğinde mesela 3.980,00 TL olması gereken ürün fiyatı 3,98 TL olarak görünüyor. ve bu şekilde işlem görüyor.

    Sorun neden kaynaklı olabilir. ?

    Kullandığım Sorgu Kodu

    <?php 								
    	$SepetTopla			=	mysql_query("SELECT sum(uruntoplam) from sepet uruntoplam WHERE uyeid='$uye'");
    	$sepetSor			=	mysql_fetch_array($SepetTopla);
    							echo	$fiyat =	number_format($sepetSor["sum(uruntoplam)"],2,",",".");
    									
    ?>
    tahminimce sıkıntın bizdeki para standartları ile avrupa para standartının farklı olmasından kaynaklanıyor. Şöyle ki biz 3.980,15 yazarken onlar 3,980.15 yada 3980.15 yazıyorlar. sen de verilerini girerken onların standartına göre gir. o zaman düzeleceğini tahmin ediyorum.
  • 02-07-2015, 23:30:16
    #3
    sDenizhan adlı üyeden alıntı: mesajı görüntüle
    tahminimce sıkıntın bizdeki para standartları ile avrupa para standartının farklı olmasından kaynaklanıyor. Şöyle ki biz 3.980,15 yazarken onlar 3,980.15 yada 3980.15 yazıyorlar. sen de verilerini girerken onların standartına göre gir. o zaman düzeleceğini tahmin ediyorum.
    Peki Hocam Sum Fonksiyonunu Kullanmadan aynı işlemi nasıl yapmamı tavsiye ederisniz ?
  • 03-07-2015, 01:51:39
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    @Ankon; para birimlerini belirtmek için bu paketi kullanabilirsiniz.

    Composer ile paketi yükledikten sonra şu şekilde kullanabilirsiniz. (v1.6.1 sürümü için geçerlidir.)

    <?php
    
    	header('Content-Type: text/plain; charset=UTF-8');
    
    	require('vendor/autoload.php');
    
    	use SebastianBergmann\Money\Currency;
    	use SebastianBergmann\Money\IntlFormatter;
    	use SebastianBergmann\Money\Money;
    
    	$money = new Money(123456789, new Currency('TRY'));
    
    	$formatter = new IntlFormatter('tr_TR');
    
    	print $formatter->format($money); // Çıktı: 1.234.567,89 ₺
  • 03-07-2015, 07:55:44
    #5
    Ankon adlı üyeden alıntı: mesajı görüntüle
    Peki Hocam Sum Fonksiyonunu Kullanmadan aynı işlemi nasıl yapmamı tavsiye ederisniz ?
    veri tabanında string türünde mi float mı yoksa decimal olarak mı tutuyorsunuz. Sum ile gelen değer nedir mysql tarafından?
  • 09-07-2015, 14:09:34
    #6
    Ankon adlı üyeden alıntı: mesajı görüntüle
    Peki Hocam Sum Fonksiyonunu Kullanmadan aynı işlemi nasıl yapmamı tavsiye ederisniz ?
    daha önceden database'e nasıl bir veri yazdırdığını bilemiyoruz. eğer sum kullanmayacaksan db'den aldığın verileri para birimleri şeklinde düzenleyen bir fonksiyon yazman gerekecek.