была ошибка в php, когда функция была помещена внутрь - PullRequest
0 голосов
/ 10 апреля 2020

Я пытался получить результаты, такие как Facebook, но это не работает с моим кодом, вы можете сказать мне, где я ошибся? извините, потому что я только что узнал php

Это мой код:

                <?php try {
            $news_popular        = "SELECT * FROM dUfA1_article ORDER BY id DESC";
            $news_popular1       = $pdo->prepare($news_popular);
            $news_popular1       ->execute(); } 
                catch (PDOException $exception) {
                    echo "ada kesalahan pada query : ".$exception->getMessage();
                }
                while ($data = $news_popular1->fetch(PDO::FETCH_ASSOC)) {  
                $ttl_likes              = $data['likes'];

                function number_format_short( $ttl, $precision = 1 ) {
                    if ($ttl < 900) {
                        $n_format = number_format($ttl, $precision);
                        $suffix = '';
                    } else if ($ttl < 900000) {
                        $n_format = number_format($ttl / 1000, $precision);
                        $suffix = 'K';
                    } else if ($ttl < 900000000) {
                        $n_format = number_format($ttl / 1000000, $precision);
                        $suffix = 'M';
                    } else if ($ttl < 900000000000) {
                        $n_format = number_format($ttl / 1000000000, $precision);
                        $suffix = 'B';
                    } else {
                        $n_format = number_format($ttl / 1000000000000, $precision);
                        $suffix = 'T';
                    }
                    if ( $precision > 0 ) {
                        $dotzero = '.' . str_repeat( '0', $precision );
                        $n_format = str_replace( $dotzero, '', $n_format );
                    }
                    return $n_format . $suffix;
                    }
                    $likes = number_format_short($ttl_likes);

                    echo " hasil = $likes <br>";
                }?>

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020
<?php 

function number_format_short( $ttl, $precision = 1 ) {
    if ($ttl < 900) {
        $n_format = number_format($ttl, $precision);
        $suffix = '';
    } else if ($ttl < 900000) {
        $n_format = number_format($ttl / 1000, $precision);
        $suffix = 'K';
    } else if ($ttl < 900000000) {
        $n_format = number_format($ttl / 1000000, $precision);
        $suffix = 'M';
    } else if ($ttl < 900000000000) {
        $n_format = number_format($ttl / 1000000000, $precision);
        $suffix = 'B';
    } else {
        $n_format = number_format($ttl / 1000000000000, $precision);
        $suffix = 'T';
    }
    if ( $precision > 0 ) {
        $dotzero = '.' . str_repeat( '0', $precision );
        $n_format = str_replace( $dotzero, '', $n_format );
    }
    return $n_format . $suffix;
}

try {
    $news_popular = "SELECT * FROM dUfA1_article ORDER BY id DESC";
    $news_popular1 = $pdo->prepare($news_popular);
    $news_popular1->execute(); 
} catch (PDOException $exception) {
    echo "ada kesalahan pada query : ".$exception->getMessage();
}

while ($data = $news_popular1->fetch(PDO::FETCH_ASSOC)) {  
    $ttl_likes = $data['likes'];
    $likes = number_format_short($ttl_likes);
    echo " hasil = $likes <br>";
}

?>

0 голосов
/ 10 апреля 2020

Вы можете объявить функцию с таким же только один раз. Ваша декларация number_format_short () написана внутри while l oop, так что если вы выполняете l oop в то время, как 5 раз, number_format_short () объявляет 5 раз с одинаковыми.

Используйте код ниже

try {
    $news_popular = "SELECT * FROM dUfA1_article ORDER BY id DESC";
    $news_popular1 = $pdo->prepare($news_popular);
    $news_popular1->execute();
} catch (PDOException $exception) {
    echo "ada kesalahan pada query : " . $exception->getMessage();
}
while ($data = $news_popular1->fetch(PDO::FETCH_ASSOC)) {
    $ttl_likes = $data['likes'];
    $likes = number_format_short($ttl_likes);

    echo " hasil = $likes <br>";
}
function number_format_short($ttl, $precision = 1) {
        if ($ttl < 900) {
            $n_format = number_format($ttl, $precision);
            $suffix = '';
        } else if ($ttl < 900000) {
            $n_format = number_format($ttl / 1000, $precision);
            $suffix = 'K';
        } else if ($ttl < 900000000) {
            $n_format = number_format($ttl / 1000000, $precision);
            $suffix = 'M';
        } else if ($ttl < 900000000000) {
            $n_format = number_format($ttl / 1000000000, $precision);
            $suffix = 'B';
        } else {
            $n_format = number_format($ttl / 1000000000000, $precision);
            $suffix = 'T';
        }
        if ($precision > 0) {
            $dotzero = '.' . str_repeat('0', $precision);
            $n_format = str_replace($dotzero, '', $n_format);
        }
        return $n_format . $suffix;
    }
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...