我正在尝试从数据库中的数值创建进度条。我在数据库中有两个字段,一个称为“ NEXT_STEP”,另一个称为“ MAX_STEPS”-当NEXT_STEP = MAX_STEPS + 1时,所有步骤均已完成,进度条应已满(100%)。这些步骤将实时发生,并且NEXT_STEP将随着后台进程的进行而增加。希望显示进度的网页会随之更新,因此需要使用AJAX。
为此,我尝试从数据库中检索这些数值,并将它们存储到PHP变量中,以便随后可以计算百分比并显示具有正确百分比的进度条。然后,利用AJAX和一个时间间隔,我可以重复调用该方法以更新进度条。
所以,我的问题是:
我试图利用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()检索数据的每一行的值。然后,您可以做任何需要处理的数据。
感谢您的帮助。
答案 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类从数据库获取结果集。然后在获取的结果上循环并计算您想要的结果。