【发布时间】:2016-08-04 00:08:12
【问题描述】:
我需要帮助...我正在尝试从 sql 表中检索数据并将其与某些 ID 的 if 语句进行比较,并相应地更新变量。但似乎该变量由于某种原因没有更新。下面是我的代码..
$query2 = "SELECT prcID, tProDone
FROM vw_fdwTracker
WHERE AgrNo = '$agreement'";
$result2= sqlsrv_query($conn, $query2);
if ($result2==false){
die( "<pre>".print_r(sqlsrv_errors(), true));
}
$current = 0;
while($id= sqlsrv_fetch_array($result2, SQLSRV_FETCH_ASSOC)){
//echo $id['prcID']." ". $id['tProDone'].'<br>';
if(($id['prcID']===3) && ($id['tProDone']===TRUE)){
$current=12.5;
}elseif(($id['prcID']===4) && ($id['tProDone']===TRUE)){
$current=25;
}elseif(($id['prcID']===5) && ($id['tProDone']===TRUE)){
$current=37.5;
}elseif(($id['prcID']===9) && ($id['tProDone']===TRUE)){
$current=50;
}elseif(($id['prcID']===10) && ($id['tProDone']===TRUE)){
$current=62.5;
}elseif(($id['prcID']===14) && ($id['tProDone']===TRUE)){
$current=75;
}elseif(($id['prcID']===12) && ($id['tProDone']===TRUE)){
$current=87.5;
}elseif(($id['prcID']===17) && ($id['tProDone']===TRUE)){
$current=100;
}else{
$current=0;
}
}
【问题讨论】:
-
你的意思是
$current没有更新吗?如果你的意思是$current,那么如果你有多行,它会在每个循环中覆盖自己。 -
另外,如果他们都要求
$id['tProDone']为真,为什么不为if($id['tProDone'] === true) { }做一个包装,然后在里面做一个开关?它可能会更干净一些。这样你就不需要所有的&& ($id['tProDone']===TRUE。 -
是的 $current 没有更新..我有多个具有不同 ID 的行,我想检查某些 ID 并相应地更新 $current...所以即使它自己覆盖它也应该有一些价值最后,但在这里我没有得到任何输出......最后 $current 仍然是 0....
-
您确定需要
===而不仅仅是==? -
=== 和 == 都没有给我任何结果...虽然我不需要 === 我只是把它放在那里检查它是否提供任何输出..
标签: php sql arrays while-loop