如何从数据库中的数值创建进度条?

时间:2019-04-24 17:10:14

标签: php html ajax oracle

我正在尝试从数据库中的数值创建进度条。我在数据库中有两个字段,一个称为“ NEXT_STEP”,另一个称为“ MAX_STEPS”-当NEXT_STEP = MAX_STEPS + 1时,所有步骤均已完成,进度条应已满(100%)。这些步骤将实时发生,并且NEXT_STEP将随着后台进程的进行而增加。希望显示进度的网页会随之更新,因此需要使用AJAX。

为此,我尝试从数据库中检索这些数值,并将它们存储到PHP变量中,以便随后可以计算百分比并显示具有正确百分比的进度条。然后,利用AJAX和一个时间间隔,我可以重复调用该方法以更新进度条。

所以,我的问题是:

  • 如何从数据库中检索字段并将其存储到PHP变量中?
  • 我将如何检索多行数据,然后选择相关字段并计算百分比? (我假设有一个while循环,但不是完全确定)

我试图利用oci_define_by_name()将字段存储到PHP变量中。

此外,我尝试将oci_fetch()与oci_result()结合使用,以从查询DB时获取的数组中检索相关数据,但并不占优势。

$sql='select * from lookout_status order by TIMESTAMP_1 DESC';
     $stid= oci_parse($conn, $sql);
       echo $sql;

       oci_define_by_name($stid, 'NEXT_STEP', $next);
       echo $next;

       oci_execute($stid);

我没有得到期望值回显的输出,所以我很迷茫。

感谢您事先提供的帮助。

编辑:

我设法解决了这个问题-如果有人遇到此问题,以供将来参考,请使用oci_define_by_name()定义从DB到PHP变量的值。然后,执行sql查询,并在while循环内利用oci_fetch()检索数据的每一行的值。然后,您可以做任何需要处理的数据。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

使用oci_define_by_name()定义从DB到PHP变量的值。然后,执行sql查询,并在while循环内利用oci_fetch()检索数据的每一行的值。然后,您可以做任何需要处理的数据。

$stid= oci_parse($conn, $sql);
       echo $sql;
       echo "<br>";

       oci_define_by_name($stid, 'NEXT_STEP', $next);
       oci_define_by_name($stid, 'MAX_STEPS', $max);

       oci_execute($stid);

       while (oci_fetch($stid)){
         //Some code omitted here...
         $val = round($percent, 0);
         echo $val;
         $prog = "<progress value='$val' max='100'></progress>";
         echo $prog;
         echo "<br>";
         echo "<br>";
       }

答案 1 :(得分:-2)

您使用PDO类从数据库获取结果集。然后在获取的结果上循环并计算您想要的结果。