解决方案 »

  1.   

    1.如果随机发放的话在卡后面再加一个字段,默认标1,领取后标0
    2.好的方法在设计的时候加入步长为1的自动增长字段ID,增加一个TMP字段默认为0
    每次有人领取后TMP加1,当ID=TMP时领取完毕
      

  2.   

    这个问题是关于并发的问题,解决办法是加锁,sql加一个行级锁就行了。以前我也做过类似的,这个必须加锁,可以在数据库里加锁,可以在代码中对那函数加锁, 你可以去查一下类似数据库加锁的资料。
      

  3.   

    用一个字段记录卡是否已被使用,然后利用mysql 的update 锁表来解决并发问题。例如表结构为
    id cardno cardpass used$sqlstr = "update table set used=1 where used=0 and cardno=xxxx";
    mysql_query($sqlstr);
    $affected_rows = mysql_affected_rows();
    if($affected_rows==1){ // 表示修改成功
       // 执行使用成功处理
    }else{
       // 执行卡已被使用处理
    }