OJ升级记

    为了完善OJ的功能,这几天对OJ的进行了升级,简单记录一下:

    为了方便对大一新生的管理,这学期对新生实行统一注册帐号,然后增加了按班级和按专业搜索排名的功能(老师统计学生的做题情况方便了)。我不懂php,一个学长写完然后我部署的,期间遇到了一些问题。

    首先是给数据库增加字段,由于原来的数据库里面没有班级和专业信息,所以要添加进去,刚学了一点sql语句就用到了,然后就是更新网页文件,这个也比较简单,直接scp网页文件到网站目录就是了,覆盖掉原来的文件。接下来就是给大一新生批量注册了。当然最好的方法就是根据用户的信息直接生成sql命令插入到数据库里面。本来老师给了一张excel学生信息格的,学长直接生成了sql语句,接下来就是导入,用source命令,这时候问题来了,由于sql文件是在windows下生成的,编码方式是gbk,但是服务器是linux,编码方式是utf-8,这样导入数据库里面后在网页上中文显示乱码。悲剧!然后我就开始用linux下的iconv命令来把gbk编码转换成utf-8编码,貌似一次没转成,因为遇到几个特殊的汉字,然后转换就停止了,我记得有个字是“”,还有个字是“喆”,貌似还有,记不清了。经过N次修改尝试后,终于转换完了,然后source命令导入,还是乱码!很神奇!没办法,继续搜资料,网上还有中说法说执行一条sql命令,叫set names="utf-8",这样就能把数据库的编码设置成utf-8,再次导入,乱码!然后就凌乱了,看看时间,快1点了,想想明天满课,就去睡觉了。第二天晚上继续,还叫了两个学弟一起过来帮忙研究,一个学弟提议:为什么不装个phpmyadmin呢,在网页上导入,当时考虑到在服务器上装这些东西麻烦,现在用命令行导入一直出错,就试试吧,装phpmyadmin前还要装apache2和php5,装完后把phpmyadmin目录连接到/var/www/目录下面,然后在路由器上设置端口转发,指定一个端口转发到内网数据库服务器的80端口。这样phpmyadmin就算装好了,接下来,登录,然后导入,导入的时候提示文件编码,然后选择gbk编码,在网页上一刷,显示居然正常了!orz。有时候,可能图形化的一些东西比命令行好用,或许这就是windows流行的原因。导入是导入了,但是后来使用查询功能时,用户信息不能全部检索出来,只显示一部分,后来学长说,这是因为新导入的字段原来的记录为NULL,NULL影响查询结果,把NULL替换成空字符串就行了,然后用update更新数据,查询功能也正常了!orz!OJ升级,新生注册任务就算基本完成了!

   数据库是个好东西,这学期要好好学学!

posted on 2012-09-25 17:04  ma6174  阅读(437)  评论(3编辑  收藏  举报

导航