我正在使用带有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')");
}
}
}
答案 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