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引导MYSQL数据的进度条?_Php_Mysql_Twitter Bootstrap - Fatal编程技术网

使用PHP引导MYSQL数据的进度条?

使用PHP引导MYSQL数据的进度条?,php,mysql,twitter-bootstrap,Php,Mysql,Twitter Bootstrap,我在MYSQL数据库中有一个表,有14586条记录 每个记录都有一个名为active的行,其值为0 在某个点上,此活动行的值变为1 我需要做的是简单地显示一个bootstrap进度条,显示进度条中有active=1的字段 我试过这样的方法: PHP: $result = mysqli_query($db_conx, "SELECT count(*) FROM mytable WHERE active=1"); $row = mysqli_fetch_row($result); $num = $r

我在MYSQL数据库中有一个表,有14586条记录

每个记录都有一个名为
active
的行,其值为0

在某个点上,此
活动
行的值变为1

我需要做的是简单地显示一个
bootstrap进度条
,显示进度条中有
active=1
的字段

我试过这样的方法:

PHP:

$result = mysqli_query($db_conx, "SELECT count(*) FROM mytable WHERE active=1");
$row = mysqli_fetch_row($result);
$num = $row[0];
  <div class="progress">
    <div class="progress-bar progress-bar-striped active" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width:<?php echo $num; ?>%">
      <?php echo $num; ?>%
    </div>
     </div>
引导HTML:

$result = mysqli_query($db_conx, "SELECT count(*) FROM mytable WHERE active=1");
$row = mysqli_fetch_row($result);
$num = $row[0];
  <div class="progress">
    <div class="progress-bar progress-bar-striped active" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width:<?php echo $num; ?>%">
      <?php echo $num; ?>%
    </div>
     </div>


您需要获取不带
的总记录,其中
过滤器,以及带
的总记录,其中active=1
。这将允许您计算0到100之间的百分比值

[total active=1] / [total records] * 100 = [percent from 0 - 100]
示例:
7293/14586=0.5*100=50%


请参阅:

您将需要表中的总行数,在您的情况下是14586,即100%。该函数获取示例中的数字并除以100。然后使用
round((float)$num*100)。“%”
对数字进行四舍五入以获得百分比。

假设要将百分比显示到小数点后2位,则可以将其用作mysqli\u查询语句:

"select format(100*sum(active)/count(active),2) from mytable"
要获得一个四舍五入的数字,您可以将上述format函数的最后一个参数更改为0

说明:
sum(active)
将这些值相加,这相当于对它们进行计数,假设该列中只有其他值为零或空。另一方面,
count(active)
计算1和0,忽略空值(如果有的话)

如果您希望分母总数包括
active
列既不是0也不是1的偶数行,包括空值,那么您可以使用
count(active)
而不是
count(*)
,它将统计表中的所有记录


此外,如果您不确定
active
列中是否有其他数字(可能错误,例如2、5等),则使用更精确的
sum(active=1)
来代替
sum(active)
,这意味着active=1时的active之和。

数字应该是多少be@Akintunde,进度条通常在0到100之间。您可以执行基本的算术运算。获取处于活动状态的行数,然后除以100%或除以表中的行总数。我将使用
cout(id)
count(active)
而不是使用
count(*)
来选择所有列,以加快查询速度。
count(*)
有时可以对特定列进行计数。这允许MySQL尝试为您的查询选择最佳索引列。另一点需要注意的是,如果您选择要计数的列中存在
null
值,则这些值将被忽略。始终为您的应用程序测试多种计数行的方法,因为对其他人最有效的方法可能对您最无效。