很多用户同时访问同一页面,我想对他们进行先后顺序执行页面,而不是同时执行改页面 那么首要的问题就是不同进程之间的通讯,就需要一个他们都能同时访问的媒介,可以选择文本文件,数据库,或者memcache!之后就简单了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用户1访问页面->信息存储进数据库,同时做session.其他用户再访问,根据session判断用户是否在线,再访问数据库查看用户1是否在该页面 偶看懂了,只是通过中间媒介的方式也很麻烦,有没有更好的办法apache能不能控制到该页面,使得它只同时响应1个请求,而其他多余的请求在队列中。 php有同asp,aspnet的application对象吗??我看的php电子图书好像是没有,要不可以使用application来保存被修改的记录,然后遍历下修改的记录是否在application里面一个办法就是建立一个修改表,当用户进入修改页面时,先遍历这个表看是否这条记录已经被其他用户修改,没有就把用户id和记录号写入表中更新完数据库时记得及时从表中删除对应的记录 这个功能,单纯用PHP无法实现。必须通过一个外部事务处理程序来实现。可以用数据库,但是,Mysql的话桌面引擎必须是InnoDB;但是最好用像Java这样有多线程控制功能的语言来写一个服务器。 创建一个库名为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/>";这是我对你的问题理解,但确实不知道你想干什么.而且在正常情况下绝对不推荐这样去做 创建一个库名为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/>";这是我对你的问题理解,但确实不知道你想干什么.而且在正常情况下绝对不推荐这样去做 50分问一个基础问题,欢迎大家来抢分! 如何运行调试PHP程序 请教一个关于include的问题 XAMPP 无法启动MYSQL 求php解密解码,这个是PHPJM加密的吗 关于fopen的问题.着急中!!!!!! “仙人”指路。。。。 ==为显示数据库记录的问题郁闷两天了==高分请教啊!我是cai 如何判别客户端浏览器当前使用的是简体还是繁体? LINUX下安装问题? 像"12,13,45,48,14,15,16"这样的字符串,怎么样删除其中的一个呢? IFRAME无法接受值问题
其他用户再访问,根据session判断用户是否在线,再访问数据库查看用户1是否在该页面
apache能不能控制到该页面,使得它只同时响应1个请求,而其他多余的请求在队列中。
必须通过一个外部事务处理程序来实现。
可以用数据库,但是,Mysql的话桌面引擎必须是InnoDB;
但是最好用像Java这样有多线程控制功能的语言来写一个服务器。
`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/>";这是我对你的问题理解,但确实不知道你想干什么.
而且在正常情况下绝对不推荐这样去做
`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/>";这是我对你的问题理解,但确实不知道你想干什么.
而且在正常情况下绝对不推荐这样去做