好象利用现有api是不可能的,只有通过自己写api才可以实现,至少我认为的,用一个数据库来记录当前是否有人登陆,1,0来判断

解决方案 »

  1.   

    一个小建议:把数据存个文件,把价格存在里面,写文件flock(),如果读取文件有写同样的价格,返回个值
      

  2.   

    将你的表改为innoDB,用事务处理.
      

  3.   

    建一个出价表(cj): id spid maxgold renid
    某人出价时:
    //如果出价高于已经存在的最高价,则更新最高出价金额及出价人ID
    $sql="update cj set maxgold=出价,renid=出价人ID where spid=商品ID and maxgold<出价"
    $result=@mysql_db_query($conf_db,$sql,$dblink);
    //查询最高出价人ID是否为本人
    $sql="select id from cj where renid=出价人ID and spid=商品ID"
    $result=@mysql_db_query($conf_db,$sql,$dblink);
    if ($rst=@mysql_fetch_assoc($result))
    {
    //如果能查到这条记录证明还没有出价超过他的人
    //证明出价成功,可以在这里进行减其金额或其它处理
    }
      

  4.   

    先谢谢各位热心回答!
    回: twt326(天地小子) 
    你的//查询最高出价人ID是否为本人的意思不太懂。
    两个人同时在12:00出价200块,这种情况下查询最高出价人有什么用呢?ps:我刚突然想到,把价格那个字段设成唯一的是不是就可以避免这种情况?:)
      

  5.   

    任何数据库处于多用户环境下都会出现共享冲突,而共享冲突主要发生于update时。即多个用户同时请求修改同一记录。
    因为数据库只是个容器,他并不能预先知道将会发生什么样的冲突。所以他只能提供一些预防冲突的手段,供程序员使用。大型数据库多提供表锁和记录锁,mysql是轻型数据库,只提供表锁。