• 02-06-2015, 15:32:54
    #1
    merhaba arkadaşlar ben databaseye rakamları yazdırıyorum örnek vereyim,

    1000 olan 1k
    10000 olan 10k
    100000 olan 100k
    1000000 olan 1m
    1200000 olan 1m 200k
    şeklinde göstermek istiyorum ben mysqlden çekince olduğu gibi bilgi geliyor yardımcı olurmusunuz?

    function paraHesapla($miktar){
        $m=""; $k=""; $donus="";
        settype($miktar,"integer");
        $m = floor(($miktar/1000000));
        if($m>0)    $donus .= $m . " m ";
        $miktar -= $m*1000000;
        $k = floor(($miktar/1000));
        if($k>0)    $donus .= $k . " k ";
        $miktar -= $k*1000;
        if($miktar>0)    $donus .= $miktar . " gp ";
        if($donus){$donus = substr($donus,0,-1);
        $donus .=".";}else $donus = "1 k.";
        return $donus;} 
    	
    echo (paraHesapla(991400000));
    Teşekkür ederim arkadaşlar sonunda başardım yapmayı sağolun.
  • 02-06-2015, 15:41:30
    #2
    Gdefender adlı üyeden alıntı: mesajı görüntüle
    merhaba arkadaşlar ben databaseye rakamları yazdırıyorum örnek vereyim,

    1000 olan 1k
    10000 olan 10k
    100000 olan 100k
    1000000 olan 1m
    1200000 olan 1m 200k
    şeklinde göstermek istiyorum ben mysqlden çekince olduğu gibi bilgi geliyor yardımcı olurmusunuz?

    <?php
    /**
     * Shorten large numbers into abbreviations (i.e. 1,500 = 1.5k)
     *
     * @param int    $number  Number to shorten
     * @return String   A number with a symbol
     */ 
    function numberAbbreviation($number) {
        $abbrevs = array(12 => "T", 9 => "B", 6 => "M", 3 => "K", 0 => "");
    
        foreach($abbrevs as $exponent => $abbrev) {
            if($number >= pow(10, $exponent)) {
            	$display_num = $number / pow(10, $exponent);
            	$decimals = ($exponent >= 3 && round($display_num) < 100) ? 1 : 0;
                return number_format($display_num,$decimals) . $abbrev;
            }
        }
    }
    
    echo numberAbbreviation('SAYI YAZ');
    ?>
  • 02-06-2015, 15:44:34
    #3
    @celalyesil

    hocam teşekkür ederim sizinki daha güzelmiş 1.5 m olarak gösterior
  • 02-06-2015, 15:47:23
    #4
    Güle güle kullanın hocam
  • 02-06-2015, 16:21:40
    #5
    Selamlar Gdefender,

    Burdaki ornek umarim sana yardimci olur. Sorularin varsa, sor.

    Browserdeki sonuc:


    Database:



    Ve php kodumuz:

    <?php
    
    
      function format_num($num, $precision = 2) {
       if ($num >= 1000 && $num < 1000000) {
        $n_format = number_format($num/1000,$precision).'K';
        } else if ($num >= 1000000 && $num < 1000000000) {
        $n_format = number_format($num/1000000,$precision).'M';
       } else if ($num >= 1000000000) {
       $n_format=number_format($num/1000000000,$precision).'B';
       } else {
       $n_format = $num;
        }
      return $n_format;
      } 
    
    
      function rev_format_num($num, $precision = 2) {
       if (strpos($num,'K') !== false) {
       $n_format = str_replace('K', " ", number_format($num*1000,$precision));
       } 
          else if (strpos($num,'M') !== false) {
        $n_format = str_replace('M', " ", number_format($num*1000000,$precision));
       } 
          else if (strpos($num,'B') !== false) {
      $n_format = str_replace('B', " ", number_format($num*1000000000,$precision));
       } 
          else {
       $n_format = $num;
        }
      return $n_format;
      } 
    
    
    
    
    // Function Calls
    $num1 = format_num(1200,1);
    $num2 = format_num(1230000);
    $num3 = format_num(1234000000,3);
    
    echo format_num(1200,1);
    echo format_num(1230000);
    echo format_num(1234000000,3);
    
    
    $con=mysqli_connect("localhost","root","","ornek");
    // Check connection
    if (mysqli_connect_errno())
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }
    echo"<ul>"; 
    
    $koy=mysqli_query($con,"INSERT INTO formatnumbertable (number1, number2, number3)
    VALUES ('$num1', '$num2', '$num3')");
    if($koy === FALSE) { 
        die(mysql_error()); // TODO: better error handling
    }
    
    $cek = mysqli_query($con, "SELECT number1,number2,number3 FROM formatnumbertable ");
    if($cek === FALSE) { 
        die(mysql_error()); // TODO: better error handling
    }
    while($yaz = $cek->fetch_assoc()){ 
        $name1=$yaz["number1"]; 
         $name2=$yaz["number2"]; 
         $name3=$yaz["number3"]; 
        echo rev_format_num($name1); 
        echo "<br /> "; 
         echo rev_format_num($name2); 
        echo "<br /> "; 
         echo rev_format_num($name3); 
        echo "<br /> "; 
    } 
    
    
    ?>
  • 02-06-2015, 17:59:35
    #6
    @dbd

    çok teşekkürler.