Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP进度条:%2个数字_Php_Mysql_Twitter Bootstrap_Progress Bar_Percentage - Fatal编程技术网

PHP进度条:%2个数字

PHP进度条:%2个数字,php,mysql,twitter-bootstrap,progress-bar,percentage,Php,Mysql,Twitter Bootstrap,Progress Bar,Percentage,我对进度条百分比有问题。我正在用MySQL数据库创建一个投票系统(是/否),如果两个数字加起来超过100,进度条就不能正常工作。 我所需要的只是把数字转换成百分比,即使投票超过100票。例如,如果有1000票(750票赞成,250票反对),结果应该是“75%赞成,25%反对” 提前谢谢你 <body> <?php define('HOST', 'localhost'); define('USER', 'root');

我对进度条百分比有问题。我正在用MySQL数据库创建一个投票系统(是/否),如果两个数字加起来超过100,进度条就不能正常工作。

我所需要的只是把数字转换成百分比,即使投票超过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']
是Tinyint

$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\u vote\u average
$no\u vote\u average

谢谢你的回答,但是你的方法中没有人不起作用。你能重新措辞吗?有错误吗?数据不正确?表中只有一行有百分比吗?这是我从第一个方法得到的:|第二个方法:|这些是我的DB的值:这个答案也总是假设
$RESULT->num_rows
总是正确的,如果不是,你会得到未定义的变量错误。您可以将变量初始化为默认值以避免这种情况。如果这解决了您的问题,请记住接受它。您是否使用了新变量?