私は助けが必要です...私はsqlテーブルからデータを取得しようとしていて、特定のIDのifステートメントと比較し、変数を更新しています。しかし、何らかの理由で変数が更新されていないようです。以下は私のコードは...sqlから配列を取得して条件をチェックする
$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'を意味するならば、複数の行を持っていると、すべてのループでそれ自身を上書きします。 – Rasclatt
また、 '$ id ['tProDone']'が本当であることを要求している場合は、その中のif($ id ['tProDone'] === true){} 'のラッパーだけでなく、スイッチをする?それはおそらく少しクリーナーだろう。あなたはすべての '&&($ id ['tProDone'] === TRUE')を必要としません。 – Rasclatt
はい$現在は更新されていません。異なるIDを持つ複数の行があります。 IDを更新し、それに応じて$ currentを更新します...もしそれが上書きされたとしても、最後には何らかの価値があるはずですが、ここでは出力が得られません... $ currentはまだ0です... – Sachin