日期:2014-05-17  浏览次数:20768 次

请教:自动回复如何判断楼上的人是不是自己
假如2个人回复一个帖子
A=第一个人 B等于第二个人
A回复1 3 5 7 
B回复2 4 6 8
现在判断的是
我是B 现在到了9楼 我要判断8楼是不是我
是我就不执行 设置时钟等待一会再执行
但现在我看了网页代码中
没有可以判断的东西 自己没思路
楼层肯定不能判断
名字判断的话 8楼是我 呢 4楼 6楼 也是我 不知道怎么个思路
然后还能判断什么?


------解决方案--------------------
这些回复记录会写到数据库里面吗,如果可以记录到数据库的话,那么:
假设——
/* 这里为表结构:
回复人 楼层编号 帖子id .......
A 1 1
A 3 1
A 5 1
A 7 1
B 2 1
B 4 1
B 6 1
B 8 1
*/

declare @tb table
(
回复人 varchar(5),
楼层编号 int,
帖子id int
);
INSERT INTO @tb

SELECT 'A', 1, 1 UNION ALL
SELECT 'A', 3, 1 UNION ALL
SELECT 'A', 5, 1 UNION ALL
SELECT 'A', 7, 1 UNION ALL
SELECT 'B', 2, 1 UNION ALL
SELECT 'B', 4, 1 UNION ALL
SELECT 'B', 6, 1 UNION ALL
SELECT 'B', 8, 1 

DECLARE @currentReply varchar(10);
SET @currentReply = 'B'
if exists( select 1
from @tb
where(
case 
when (select MAX(楼层编号) from @tb t where 回复人 = @currentReply) = (select MAX(楼层编号) from @tb) then 1 
else 0 end) = 1
)
--执行延迟插入
print '1' --测试输出
ELSE
--插入最大MAX(楼层编号)+1和当前回复人
print '0' --测试输出

试试看可否满足你的要求?


------解决方案--------------------
declare @tb table
(
 回复人 varchar(5),
 楼层编号 int,
 帖子id int
);
INSERT INTO @tb

 SELECT 'A', 1, 1 UNION ALL
 SELECT 'A', 3, 1 UNION ALL
 SELECT 'A', 5, 1 UNION ALL
 SELECT 'A', 7, 1 UNION ALL
 SELECT 'B', 2, 1 UNION ALL
 SELECT 'B', 4, 1 UNION ALL
 SELECT 'B', 6, 1 UNION ALL
 SELECT 'B', 8, 1

DECLARE @currentReply varchar(10);
SET @currentReply = 'B'
if exists( select 1
 from @tb
 where(
 case
when (select MAX(楼层编号) from @tb t where 回复人 = @currentReply) = (select MAX(楼层编号) from @tb) then 1
else 0 end) = 1

--执行延迟插入
 print '1' --测试输出
ELSE
 --插入最大MAX(楼层编号)+1和当前回复人
 print '0' --测试输出

可直接在查询分析器里面运行,模拟回复人A或者B进行下一次回复

------解决方案--------------------
分析html代码
------解决方案--------------------
总得有个东西来记录吧,没保存记录的话第二次打开不是什么都没有了?
------解决方案--------------------
每条回复的记录你不保存吗?不保存下次怎么显示给别人看