如何检查所有行是否与PHP中的条件匹配

时间:2015-05-20 11:58:19

标签: php if-statement mysqli while-loop

我想检查所有行的某个字段是否符合条件。

因此,如果所有行都在状态字段'RUN'中作为值,则回显“成功”。 如果有一行以END作为值,则回显“失败”:

我猜我需要循环和IF语句? 我在想这样的东西,但它没有回报任何东西:

while($source_row = mysqli_fetch_array($source_selection)){
    if ( ($source_row['Stat']) == ("Run" ) {
        echo "Success<br />";
    } else
        echo "Fail";
}

我不想回显每一行,我希望所有行都匹配一个条件然后回显,如果一个符合条件,那么回声也是。

4 个答案:

答案 0 :(得分:3)

这应该适合你:

首先,您必须使用MATCH (a:user{id:"1"})-[r:`rating`]->(b), (w:user{id:"3"})-[rw:`rating`]->(b) RETURN DISTINCT b,r.rating_val ,rw.rating_val 获取所有行。在此之后,我仅使用mysqli_fetch_all()提取Stat列。然后,我只是array_column()一个带有X值的数组,就像array_fill()中的值一样,值为&#34;运行&#34;。并检查每个值是否等于。

$states

答案 1 :(得分:1)

代码中有一些错误,你可以使用计数来匹配 -

$count = 0;
while($source_row = mysqli_fetch_array($source_selection)){
  if ($source_row['Stat'] == "Run" ) {
      $count++;
  }
}
if($count != mysqli_num_rows($source_selection)) {
  echo "Fail";
} else echo "Success";

答案 2 :(得分:1)

为了获得最佳性能,您可以直接在SQL上执行此操作:

select count(*) from table where Stat <> 'Run'; 

然后测试返回值以检查是否大于零。

要使用php执行此操作,您应该知道当您发现错误时可以停止迭代。代码看起来像这样:

while($source_row = mysqli_fetch_array($source_selection)){
   if ( $source_row['Stat'] != "Run" ){
      $fail = true;
      break;
   }
}

if ($fail) {
  echo "Fail";
} else
  echo "Success";
}

答案 3 :(得分:-1)

试试这个

$success=true;
while($source_row = mysqli_fetch_array($source_selection)){
  if ( ($source_row['Stat']) != ("Run" ) {
    $success=false;
  }
}
if ($success) {
  echo "Success";
} else {
  echo "Fail";
}