那么首要的问题就是不同进程之间的通讯,
就需要一个他们都能同时访问的媒介,可以选择文本文件,数据库,或者memcache!之后就简单了

解决方案 »

  1.   

    用户1访问页面->信息存储进数据库,同时做session.
    其他用户再访问,根据session判断用户是否在线,再访问数据库查看用户1是否在该页面
      

  2.   

    偶看懂了,只是通过中间媒介的方式也很麻烦,有没有更好的办法
    apache能不能控制到该页面,使得它只同时响应1个请求,而其他多余的请求在队列中。
      

  3.   

    php有同asp,aspnet的application对象吗??我看的php电子图书好像是没有,要不可以使用application来保存被修改的记录,然后遍历下修改的记录是否在application里面一个办法就是建立一个修改表,当用户进入修改页面时,先遍历这个表看是否这条记录已经被其他用户修改,没有就把用户id和记录号写入表中更新完数据库时记得及时从表中删除对应的记录
      

  4.   

    这个功能,单纯用PHP无法实现。
    必须通过一个外部事务处理程序来实现。
    可以用数据库,但是,Mysql的话桌面引擎必须是InnoDB;
    但是最好用像Java这样有多线程控制功能的语言来写一个服务器。
      

  5.   

    创建一个库名为locktestCREATE TABLE `locktb` (
      `name` varchar(100) NOT NULL default '',
      `sn` int(11) NOT NULL,
      PRIMARY KEY  (`name`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;<?php$connId = mysql_connect('localhost','root','root') or die(mysql_error());
    mysql_select_db('locktest',$connId) or die(mysql_error());
    mysql_query("start transaction");
    mysql_query("select * from locktb where name='lock' for update");
    sleep(10);
    mysql_query("update locktb set sn=sn+1 where name='lock'");
    $result = mysql_query("select sn from locktb where name='lock'");
    mysql_query("commit");
    $row = mysql_fetch_row($result);
    echo "我的序号:{$row[0]}<br/>\n";
    echo "开始时间:{$_SERVER['REQUEST_TIME']}<br/>\n";
    echo "结束时间:".time()."<br/>";这是我对你的问题理解,但确实不知道你想干什么.
    而且在正常情况下绝对不推荐这样去做
      

  6.   

    创建一个库名为locktestCREATE TABLE `locktb` (
      `name` varchar(100) NOT NULL default '',
      `sn` int(11) NOT NULL,
      PRIMARY KEY  (`name`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;<?php$connId = mysql_connect('localhost','root','root') or die(mysql_error());
    mysql_select_db('locktest',$connId) or die(mysql_error());
    mysql_query("start transaction");
    mysql_query("select * from locktb where name='lock' for update");
    sleep(10);
    mysql_query("update locktb set sn=sn+1 where name='lock'");
    $result = mysql_query("select sn from locktb where name='lock'");
    mysql_query("commit");
    $row = mysql_fetch_row($result);
    echo "我的序号:{$row[0]}<br/>\n";
    echo "开始时间:{$_SERVER['REQUEST_TIME']}<br/>\n";
    echo "结束时间:".time()."<br/>";这是我对你的问题理解,但确实不知道你想干什么.
    而且在正常情况下绝对不推荐这样去做