我想检查所有行的某个字段是否符合条件。
因此,如果所有行都在状态字段'RUN'中作为值,则回显“成功”。 如果有一行以END作为值,则回显“失败”:
我猜我需要循环和IF语句? 我在想这样的东西,但它没有回报任何东西:
while($source_row = mysqli_fetch_array($source_selection)){
if ( ($source_row['Stat']) == ("Run" ) {
echo "Success<br />";
} else
echo "Fail";
}
我不想回显每一行,我希望所有行都匹配一个条件然后回显,如果一个符合条件,那么回声也是。
答案 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";
}