为什么这个if else条件不能正常工作?

时间:2013-04-10 03:17:14

标签: php mysql if-statement

我正在使用带有foreach循环的if else条件来检查并插入新标签。

但两个条件(if和alse)同时被应用,无论mysql发现id是否等于foreach发布的ID。 Plz帮助

$new_tags = $_POST['new_tags'];   //forget the mysl security for the time being   

foreach ($new_tags as $fnew_tags)
{
    $sqlq = mysqli_query($db3->connection, "select * from  o4_tags limit 1");
    while($rowq = mysqli_fetch_array($sqlq)) {
        $id = $rowq['id'];

        if($id == $fnew_tags) {    //if  ID  of the tag is matched then do not insert  the new tags but only add the user refrence to that  ID
            mysqli_query($db3->connection, "insert into user_interests(uid,tag_name,exp_tags) values('$session->userid','$fnew_tags','1')");
        } 
        else 
        {   //if  ID  of the tag is not  matched then  insert  the new tags as well as  add the user refrence to that  ID
            $r = mysqli_query($db3->connection, "insert into o4_tags(tag_name,ug_tags,exp_tags) values('$fnew_tags','1','1')");
            $mid_ne = mysqli_insert_id($db3->connection);
            mysqli_query($db3->connection, "insert into user_interests(uid,tag_name,exp_tags) values('$session->userid','$mid_ne','1')");

        }
    }
}

2 个答案:

答案 0 :(得分:0)

我认为你正在插入

 $r = mysqli_query($db3->connection, "insert into o4_tags(tag_name,ug_tags,exp_tags)
 values('$fnew_tags','1','1')");$mid_ne = mysqli_insert_id($db3->connection);

然后您正在使用while($rowq = mysqli_fetch_array($sqlq))

现在有你刚插入的记录,因此你的if被执行

答案 1 :(得分:0)

我很确定下面的select查询将始终返回相同的记录。

$sqlq = mysqli_query($db3->connection, "select * from  o4_tags limit 1");

我认为大部分时间它会进入执行2插入的else。 你不应该写下面的查询吗?

select * from  o4_tags where id = $fnew_tags limit 1