如果for循环中的语句只执行一次

时间:2014-05-06 07:33:56

标签: php mysql

我正在尝试比较来自数据库的检索到的json数据,并且for循环中有一个嵌套的if语句。问题是'if'语句只执行一次(当它找到数据库中的第一条记录时),然后在进一步的迭代中被跳过。 我正在使用PHP和MySQL(用于数据库)。

for ($i=0;$i<count($obj['datalist']);$i++){
    $name[]=$obj['datalist'][$i]['name'];
    if ($name[$i]===$row['user']){ //once it finds the first record, it goes to the 'else' part for the rest of the for loop
    //if ($row['user']==$name[$i]){
        echo "<p class='testclass'>".$name[$i] ." is in the database! ".$i."<br />";
    } else {
        echo "<p class='testclass'>". $name[$i] ." is NOT in the database! ".$i."</p>";
    }
}

也可以找到代码here

2 个答案:

答案 0 :(得分:1)

你的代码不应该是这样的:

$name=$obj['datalist'][$i]['name'];

//if ($name[$i]===$row['user']){
if ($row['user']==$name){

您已经从该集合中获取了该名称,并且您想将其与$ row isnt进行比较?

答案 1 :(得分:1)

您在每个循环中重新创建相同的$ name。

你应该使用这一行:

$name[$i]=$obj['datalist'][$i]['name'];

或者,如果您不需要重复使用$ name集合/数组,那么您只需使用以下命令覆盖它:

$name = $obj['datalist'][$i]['name'];

并根据此变量修改if语句