首页
课程
路径
文章
PHP培训
精品课
下载
技术文章
>
后端开发
>
php教程
SESSION数组怎么使用
原创
2016-06-13 13:12:29
743浏览
SESSION数组如何使用?
代码如下
……连接数据库部分
while($row=mysql_fetch_array($myquery)){
$arrayid[]=$row[id];
$array[]=$row[question];
……将对应的列赋给相应数组
}
$cnt=count($arrayid);
$answer[]=$_POST['style1'];
$_SESSION[]=$answer;//这里遇到了问题?>
echo
"
".
"A." . $arrayA[$i]."".
`````````````省略B,C,D选项
?>
我在做一个在线答题系统,通过$answer[]数组接收每次用户的选项。我想用一个$_SESSION[]数组批量存储用户的选项(即一次性把用户的答题结果存储完)
页面每次读取一个选择题,而不是一组,点击提交之后会在“同一页面”刷新出下一个题。也就是每点击一次提交相当于刷新一次页面,会不会是$_SESSION[]的机制是只能只能记录一次性提交的数据,第二次提交的数据会把第一次的数据覆盖掉。
我现在一共尝试了两种方法,但是读没有成功
方法1:
$answer[]=$_POST['style1'];
for($i=0;$i<$cnt;$i++){
$_SESSION[$i+1]=$answer[$i];
}
虽然是循环赋值,但由于POST每次只传出一个值给$answer[],因此其实只有$array[0]中有用户提交的答案,赋值给$_SESSION[]之后同样只有$_SESSION[1]中有答案,其他的键值均没有答案。
打印出的结果
Array ( [1] => A [2] => [3] => [4] => [5] => )
方法2:
$answer=$_POST['style1'];注意这里的$answer不是数组而是变量
$i = $i+1;
$_SESSION[$i]=array("id"=>$i,"answer"=>$answer);
print_r($_SESSION);
目的是用$_SESSION创建一个二维数组,其中id用来记录题号,answer用来记录选项。
每题打印出的结果为
Array ( [0] => Array ( [id] => 0 [answer] => ) ) 未点击提交按钮
Array ( [1] => Array ( [id] => 1 [answer] => A ) ) 点击一次提交按钮,这里记录了题号1和用户选项A……
但是当我答完所有的选择题
print_r($_SESSION[5]);
print($_SESSION[4]);的时候,只有$_SESSION[5]中有值,这个是最后一个题,也就是说$_SESSION[$i]中只有最后一个题。
$_SESSION[1]――$_SESSION[4]里面的值去哪里了,为什么没有被记录?
麻烦大家帮我想想有没有好的方法,提一些修改建议
------解决方案--------------------
你没做过实际调查项目(线下和线上)吧?
问卷和答卷没必要合并的,合并的唯一作用就是最后输出报告省去一次读取数据库(问卷部分)的工作而已
即使中间的统计过程一般都是忽略问卷的,如果答卷也是入库的话就更加没必要了
另外,问卷的问题量不会太大的,如果很大,去回答就不是人,而是一台机器了
一般情况下一次读出放入session就行,输出到客户端就视乎调查需要逐题或一次输出
特殊情况是后续题目不定(题库),而且跟前一个答案有关(跳转且分支庞大,逻辑关系复杂),这样才需要每题读库
基于上述两点,一般情况-->读题一次过记入session,答案逐个记入session
特殊情况,每次读题把id记入session
基本原则是题目在读取就记入session,然后才向客户端发送,而不是客户端答题后才记入session,小心处理好它们的对应关系就行了
SESSION
quot
nbsp
answer
array
PHP课程
HTML视频教程
CSS视频
JS视频教程
Vue视频教程
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
上一条:
关于txt文件导入数据库编码的有关问题
下一条:
自定义发送邮件解决思路
编程学习群
技术答疑交流
关注公众号
获取学习资源
相关文章
查看更多
PHP和OpenCV库:如何进行手势识别?
教你用EasyWeChat和PHP构建微信小程序的视频直播功能
如何使用PHP和Elasticsearch构建实时搜索功能
如何使用PHP和Elasticsearch实现搜索结果的展示和导航
PHP和Unity3D如何结合使用Workerman打造高效的网络通信系统
热门课程
PHP Workerman 基础与实战:即时通讯聊天系统(ThinkPHP6)
¥189
¥399
已抢16535个
抢
自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)
¥59
¥199
已抢49483个
抢
前端基础到实战(HTML5+CSS3+ES6+NPM)
¥800
¥1200
已抢16581个
抢
PHP基础到实战(PHP+MySQL)
¥800
¥1200
已抢8759个
抢
前端开发(基础+实战项目合集)
¥800
¥1200
已抢4393个
抢
PHP编程(基础知识点汇总)
¥800
¥1200
已抢4359个
抢
打开APP,随时随地在线学习!
无奋斗 不青春
解锁编程技能,一站式学习PHP!
立即学习
首页
课程
文章
问答
博客
词典
手册
资源
搜索
APP下载
PHP培训
新
首页
课程
路径
文章
PHP培训
精品课
下载