L7-6

新手涉及到的教学或入门贴,推荐新手必看,版主维护
头像
TeliuTe
论坛版主
帖子: 7675
注册时间: 2007-11-25 13:29
系统: 16/18/20/w7
来自: 新疆博乐
联系:

Re: L7-6

#16

帖子 TeliuTe » 2012-03-08 22:04

:em06 关键是这些都不会啊,脑子里早已经装不进东西了,改一下现成的都困难,自己做肯定不行了
头像
TeliuTe
论坛版主
帖子: 7675
注册时间: 2007-11-25 13:29
系统: 16/18/20/w7
来自: 新疆博乐
联系:

Re: L7-6

#17

帖子 TeliuTe » 2012-03-08 23:44

基本弄成功,把数据表添加一项当前成绩的score_now字段,
然后照着score的代码修改save.php存取数据表的操作
在zflx.php中添加读取score_now的句子: if($uid==$value['uid']) $score_now = $value['score_now'];
在index.htm中添加一行显示当前的成绩: <li>我的得分:<!--{$score_now}--></li>

代码: 全选

$tmpArr = is_array($query)?$query['score']:0;
$tmpArr_now = is_array($query)?$query['score_now']:0;

if(is_array($query)) {

	if($score<$tmpArr) {
		if($score_now>$tmpArr_now) {
				$_SGLOBAL['db']->query("UPDATE ".tname("app_zflx")." SET `score_now` = '".$score_now."' WHERE uid =".$uid);
	}
		showmessage('本次得分小于最高得分,最高分纪录不变!','zflx.php?back=1');
	} else {
		$_SGLOBAL['db']->query("UPDATE ".tname("app_zflx")." SET `score` = '".$score."',`gtime` = '".$gtime."' WHERE uid =".$uid);
		if($score_now>$tmpArr_now) {
				$_SGLOBAL['db']->query("UPDATE ".tname("app_zflx")." SET `score_now` = '".$score_now."' WHERE uid =".$uid);
	}
		showmessage('新纪录提交成功!','zflx.php?back=1'); 
	}	
} else {

	
	$_SGLOBAL['db']->query("INSERT INTO ".tname("app_zflx")." (`id`, `type`, `uid`, `score`, `score_now`,`gtime`) VALUES (NULL, '".$type."', '".$uid."', '".$score."', '".$score_now."', '".$gtime."')");
	showmessage('成绩保存成功!','zflx.php?back=1'); 
}
附件
zflx.png
头像
TeliuTe
论坛版主
帖子: 7675
注册时间: 2007-11-25 13:29
系统: 16/18/20/w7
来自: 新疆博乐
联系:

Re: L7-6

#18

帖子 TeliuTe » 2012-03-10 20:44

用数据库存储当前成绩出现一个问题,本次还没练习页面上已经读出了上次保存的成绩
这样就得加个时间判断,如果当前会话时间和数据库里存储的时间相差太大就不读取,这样每次还得更新数据库里的时间
遂改用session来存储本次得分,用两个变量来记录当前最高的成绩和本次得分,同时只显示40分钟(一节课)和24小时(一天)的排行榜

代码: 全选

	if($score<$tmpArr) {
		if($_SESSION['score_now1'] > $_SESSION['tmpArr_now']) {
			$_SESSION['tmpArr_now'] = $_SESSION['score_now1'];
		}//把高分放入中间变量里
		showmessage('成绩低于最高得分,不参与排行榜比赛!','zflx.php?back=1');
	} else {
		$_SGLOBAL['db']->query("UPDATE ".tname("app_zflx")." SET `score` = '".$score."',`gtime` = '".$gtime."' WHERE uid =".$uid);
		if($_SESSION['score_now1'] > $_SESSION['tmpArr_now']) {
			$_SESSION['tmpArr_now'] = $_SESSION['score_now1'];
		}//把高分放入中间变量里
		showmessage('新纪录提交成功!','zflx.php?back=1'); 
	}	
附件
zflx.png
回复