0

新しいタグをチェックして挿入するために、foreach ループで if else 条件を使用しています。

しかし、mysql で見つかった ID が foreach の投稿された ID と等しいかどうかに関係なく、両方の条件 (if と alse) が同時に適用されます。助けてください

$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')");

        }
    }
}
4

2 に答える 2

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が実行されます

于 2013-04-10T03:22:19.527 に答える