PHP 进度条 : % Of 2 Numbers

标签 php mysql twitter-bootstrap progress-bar percentage

我对进度条百分比有疑问。我正在使用 MySQL 数据库创建投票系统(是/否),如果 2 个数字加起来超过 100,则进度条无法正常工作。 http://i.stack.imgur.com/uTpdM.png

我只需要将数字“转换”为百分比,即使票数超过 100。例如,如果有 1000 票(750 票赞成,250 票反对),结果应该是“75%是,25% 否”。

提前致谢!

    <body>
    <?php
        define('HOST', 'localhost');
        define('USER', 'root');
        define('PASSWORD', '');
        define('DB', 'rating');

        $db_connection = new mysqli(HOST, USER, PASSWORD, DB);

        $SQL_REQUEST = "SELECT Yes, No FROM `ratings`";

        $RESULT = $db_connection->query($SQL_REQUEST);

        if($RESULT->num_rows > 0)
        {
            while($ROW = $RESULT->fetch_assoc())
            {
                $gp = $ROW['Yes'];
                $bp = $ROW['No'];
            }
        }
    ?>

    <div class="container">
        <div class="panel panel-default panel-margin-top">
            <div class="transparent">
                <div class="panel-heading">
                    <div class="panel-title">
                        Rate It
                    </div>
                </div>
            </div>

            <div class="panel-body">
                <div class="progress">
                    <div class="progress-bar progress-bar-success" style="width:<?php echo $gp ?>%"><?php echo $gp ?>% users voted Yes</div>

                    <div class="progress-bar progress-bar-danger" style="width:<?php echo $bp ?>%"><?php echo $gp ?>% users voted No</div>
                </div>
            </div>
        </div>
    </div>
</body>

最佳答案

你覆盖了yes , 和 no在每次迭代中。

while($ROW = $RESULT->fetch_assoc())
    {
    $gp = $ROW['Yes'];
    $bp = $ROW['No'];
    }

您重新分配值。我会这样做:

$gp = 0;
$bp = 0;
while($ROW = $RESULT->fetch_assoc())
    {
    $gp = !empty($ROW['Yes']) ? $gp + 1 : $gp;
    $bp = !empty($ROW['No']) ? $bp + 1 : $bp;
    }

或者如果$ROW['Yes']$ROW['No']是 tinyints....

$gp = 0;
$bp = 0;
while($ROW = $RESULT->fetch_assoc())
    {
    $gp += $ROW['Yes'];
    $bp += $ROW['No'];
    }

因为您只有一行,所以不需要循环获取。

if($RESULT->num_rows > 0)
   {
        $ROW = $RESULT->fetch_assoc())
        $gp = empty($ROW['Yes']) ? 0 : $ROW['Yes'];
        $bp = empty($ROW['No']) ? 0 : $ROW['No'];
        $yes_vote_average = round(($gp / ($gp + $bp)) ,2) * 100;
        $no_vote_average = round(($bp / ($gp + $bp)), 2) * 100;
   }

然后使用 $yes_vote_average$no_vote_average<div>...</div>分别输出。

关于PHP 进度条 : % Of 2 Numbers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39191768/

相关文章:

php - RecursiveIteratorIterator 和 RecursiveDirectoryIterator 到嵌套的 html 列表

php - 连接 html、javascript、php 和 mysql

html - Bootstrap - 为什么我需要两个类来设置按钮样式?

Javascript 不等待使用 bootstrap-wizard.js 的 ajax

php - 我如何检查数组中的所有键是否在 PHP 中都有空值?

php - 在不使用子查询的情况下在 MySQL 中运行多个查询

php - PayPal IPN 到 mysql 数据库无法正常工作

gwt中的mysql数据库

mysql - 在子查询中动态设置列名

html - 如何设计具有透明边框和背景间距的表格