所以我有六个类别,我的数据库中的条目被标记。插入原始条目后,将从复选框形式中选择它们,将POSTED作为数组并按如下方式插入:
foreach ($cat as $item)
{
$sql =
"INSERT INTO tag_relational (job_id, tag_id) VALUES ('$job_id', '$item')";
$result=mysql_query($sql);
}
我现在有一个'编辑'部分,人们可以编辑他们的列表,但我有点卡住如何更新标签。我试过这个:
foreach ($cat as $item)
{
$sql =
"UPDATE tag_relational SET tag_id ='$item' where job_id = $job_id";
$result=mysql_query($sql);
}
但它似乎只是将每个现有条目设置为相同的tag_id。
例如,假设原帖有四个不同的标签(这些标签都是预设的,它们只能从某个列表中选择),上面会将每个原始的job_id条目设置为最后一个,新的,编辑表单上的tag_id,而不是所选的任何新标签。这有意义吗?
任何人都可以帮忙编辑我的更新查询吗?
答案 0 :(得分:0)
根据我的理解,我认为您需要先操纵数据......
示例:
$availableTags=array(1,2,3,4,5);
$existingTags=array(2,3,5);
$newTags=array(1,2);
foreach ($availableTags as $value)
{
if(in_array($value,$newTags)){ //This SHOULD be in your table
if(in_array($value,$existingTags)){/* Already in tag_relational, ignore it*/}
else {/* INSERT it into tag_relational */}
}
else { //This should NOT be in your table, check if it already existed
if(in_array($value,$existingTags)){/* DELETE it from tag_relational*/}
}
}
希望这是有道理的。应该可以编写一个更简洁的代码版本!