在启用或禁用某些条件的情况下运行PHP代码

时间:2016-03-04 11:08:25

标签: php mysql sql arrays for-loop

我已经在这里问过这个问题。 Run php code conditionally

我对db进行了一些修改。 之前给出的答案可能是正确的,我已经尝试过但不起作用。 这些答案可能超出了我对PHP的理解。

以下是同一问题的改写版本。

我要替换的实际代码

if ($condition1 >= $offer1 AND $condition2 >= $offer2  AND 
$condition3 >= $offer3  AND  $condition4 >= $offer4     ) 
      {  //run code }
else {  //some error messages  }

$condition1 and all are numeric value 
$offer1  and all are numeric value

我想用新的代码替换此代码。以下示例。

if ($offercurrent[0]>=$offerpoints[0] AND $offercurrent[1]>=$offerpoints[1]  AND 
$offercurrent[2]>=$offerpoints[2] AND  $offercurrent[3]>=$offerpoints[3]     ) 
      {  //run code }
else {  //some error messages  }

$offerstatus = enabled or disabled
$offercurrent = numeric values
$offerpoints = numeric values


$offercurrent   $offerpoints  status
 50               51           enabled
100               99           enabled
122               865          disable
NNN               offern       disable

数据库值

      while($row = mysql_fetch_array($sql))  
{
$offername[] = $row['name'];
$offercurrent[] = $row['current'];
$offerstatus[] = $row['status'];
$offerpoints[] = $row['points'];

}

问题:

代码应该仅在offerstatus = enabled时运行。一个条件得到满足。它应该检查所有发生的当前和提供点的发生 我试图用这个代码替换以前的代码

    $check=false;
    for ($i=0;$i<count($offerstatus);$i++) { 
           //echo "$offerstatus[$i]";
            if ($offerstatus[$i]=="enabled")  { 
           if($offercurrent[$i]>=$offerpoints[$i]) {$check=true;}
            echo "$offername[$i]";}
                                          } 

    echo "$check";

if ($check=true) { //run code } 
else {//error messages}

使用此代码检查alyways返回1(true) 它只检查第一个值并忽略其余的值。

1 个答案:

答案 0 :(得分:0)

通过在代码中添加else来解决此问题。

$check=false;
for ($i=0;$i<=count($offerstatus);$i++) { 
       //echo "$offerstatus[$i]";
        if ($offerstatus[$i]=="enabled")  { 
       if($offercurrent[$i]>=$offerpoints[$i]) {$check=true;}
                       else{  $check=false;   
        break; //if $condition is less than $offer it will get out of loop.
                                   }
        }
                                      } 

if ($check=true) { //run code } 
else {//error messages}