这个很正常,刷新一次等于再执行一次本页面的代码。
方法有很多。先删除相同字段
1:如果使用支持子查询(嵌套查询)的数据库
select * from tablename where primary字段 =(select max(相同的primary字段) from tablename tb where tablename.字段=tb.对应字段 and.....
(其中tablename为一个字段名)
上面是判断重复记录的
删除重复记录
delete 下面的代码与上面的相同
2:如果不支持嵌套
select * from tablename1 left outer join tablename2 on tablename1.字段=tablename2.字段
tablename2为临时表
删除把select改成delete防止插入相同记录的方法:
1:比较笨的,先select一下表,看是否有完全相同的(或者关键字相同的)然后决定是否插入
2:在php.ini记得有禁止发送的选项---好久没有弄忘了

解决方案 »

  1.   

    这是很正常的,因为你在提交FORM后,所执行的那个程序就是向数据库进行相应的操作,当你刷新后程序又向服务发出执行这个程序的请求,而此时的一些变量就是上一次所提交的值,要解决这个问题,我见意一个办法,就是设一个SESSION的值,因为SESSION的值是全局变量,在第一次执行这个页面时之前,先给它一个值,比如:
    在form页中加入一句:
    <?php
      session_start();
      $_SESSION['a'] = 0;
    ?>
    提交页这样写:
    <?php
      session_start();
      $_SESSION['a'] = $_SESSION['a']+1;   
      if ($_SESSION['a'] > 1) {
          exit;
          ;说明已经第二次执行这个程序了,退出去。
      } else {
          ;第一次执行程序;
           执行相应的数据库操作。
     }  
    ?>
    说明:只要当重新执行FORM那个页时时,$_SESSION['a']的值才会重新为0,而提交后它的值也只为1,因此可以执行操作,当你刷新时,这时它的值为加1,执行下一句时,判断它的值为2,即(**FORM提交后**)第二次执行这个程序,则必须退出。
    你自已去体会,慢慢理解,我也说的不大清楚,当然,程序也许会有问题,还请包含。