top字段为set类型字段,里面包括数据”a,b,c,d,e“
$top = str_replace("c,","",str_replace(",c","",$row['top']));
$uptop = "update `biao1` set top='$top',topday ='0' where id=".$row['id'];
$up=mysql_query($uptop);这样更新只能更新topday为0 但是不可以更新top字段里面的数据,我试了 里面直接输入字符更新也不可以!
但是”where id=".$row['id'];“ 这里直接换成查询id就可以更新不换就只能更新topday里面数字为0
”where id = 140";“这样就可以全部更新 请问这是什么问题?以上代码在一个for循环里面执行的,判断每条信息是否符合我定的要求,达到否则执行以上代码

解决方案 »

  1.   


    $uptop = "update `biao1` set top='$top',topday ='0' where id=".$row['id'];
    echo $uptop
    $up=mysql_query($uptop);
    看一下实际内容是什么?
      

  2.   


    $row['top']里面的数据是“a,b,c,d,e”
    str_replace("c,","",str_replace(",c","",$row['top'])); 
      

  3.   

    把执行有错误的情况下的sql字符串打印供出来,如1楼的方法,然后在数据库里面执行,看看能不能运行成功。估计还是sql字符串有问题。
      

  4.   

    问问题还是先想想怎么描述问题,比如把表语句导出,然后把想要实现的功能说明清楚,人家才会帮你更好的解决问题,反正你现在说的我没看清楚,我还以为你说top字段类型是set,我一下子糊涂了,mysql数据类型有set么?原来说的是update的set子语句,按我说的把问题表达清楚再说
      

  5.   


    $top = str_replace("c,","",str_replace(",c","",$row['top'])); 
    //看一下echo $top;这个值是你需要的吗?
    $uptop = "update `biao1` set top='$top',topday ='0' where id=".$row['id']; 
    $up=mysql_query($uptop);