首先你的记录里面应该有个KEY的字段
$query1="select * from where field=$你从FORM等得到的变量(得是能区分的的记录的变量,也可以是好几个字段) and field=$另外的变量 and ...";
$result=mysql_query($query1);
$row=@mysql_num_rows($result)(加@是为了避免当没有重复记录的时候返回错误)
if (!$row) {$query="insert into $tb valuse(....)";
$result=mysql_query($query);
 if ($result) {echo "添加成功!";}
}
//如果你是想修改已经有的记录,只要把if 那段改成
if ($row)

for ($i=0;$i<size($result);$i++)
{ list(变量)=mysql_fetch_array($result[$i])
  $query="update $tb set 字段=变量;
$lresult=mysql_query($query);
}}
试试吧应该没有问题

解决方案 »

  1.   

    where fields=...
    mysql_num_rows(...)==0  // noBtw:
    如果是非主键属性, 出现一定重复也是正常, 实在不行你可以重新设计数据库, 使其更加规范, 精练, 避免redundancy若是记录唯一标识还可能出现重复的话, 数据库设计肯定不合理
      

  2.   

    我在数据库中有两个字段,AreaCityNo,AreaCountryName
    $query="select * from AreaCountry where AreaCityNo='$areacityno' and AreaCountryNo='$areacountryno'";
    当两个字段都不相同时,才能实现添加数据库,当任一字段相同时都不能执行
      

  3.   

    to in29(小路)
    你的表达式和你的愿望是不同的啊
    是不是该这样?
    $query="select * from AreaCountry where AreaCityNo='$areacityno' or
    AreaCountryNo='$areacountryno' ";
    这样,只要有一个字段的值是存在的,就不执行
    不过,看你的字段命名的意思,好象是说城市和城市代码吧,这样有相同的记录应该是可以的吧,我不了解你的数据表的用途,所以只是给你提个建议