Php 仅显示循环中的一组数据
我相信造成这个问题的原因是我设置的动态WHERE子句。下面是动态WHERE子句的工作原理:Php 仅显示循环中的一组数据,php,mysqli,Php,Mysqli,我相信造成这个问题的原因是我设置的动态WHERE子句。下面是动态WHERE子句的工作原理: q.SessionId=? 如果用户从student下拉菜单中选择single student,则将和sa.StudentId=?添加到WHERE子句中 如果用户从学生下拉菜单中选择Allstudents选项,则从WHERE子句中删除或不显示和sa.StudentId=? 如果用户从问题下拉菜单中选择单个问题,则将和q.QuestionId=?添加到WHERE子句中 如果用户从问题下拉菜单中选择Allq
q.SessionId=?
- 如果用户从student下拉菜单中选择single student,则将
添加到WHERE子句中和sa.StudentId=?
- 如果用户从学生下拉菜单中选择
students选项,则从WHERE子句中删除或不显示All
和sa.StudentId=?
- 如果用户从问题下拉菜单中选择单个问题,则将
添加到WHERE子句中和q.QuestionId=?
- 如果用户从问题下拉菜单中选择
questions选项,则从WHERE子句中删除或不显示All
和q.QuestionId=?
<select name="session" id="sessionsDrop">
<option value="26">POKUB1</option>
<option value="27">POKUB2</option>
</select>
<select name="student" id="studentsDrop">
<option value="0">All</option>
<option value="39">Luke Mcfadzen</option>
<option value="40">Chris Tucker</option>
</select>
<select name="question" id="questionsDrop">
<option value="0">All</option>
<option value="72">1</option>
<option value="73">2</option>
</select>
以下是$\u POST['student']
和$\u POST['question']
可能的变量转储:
单个学生和单个问题:
<select name="session" id="sessionsDrop">
<option value="26">POKUB1</option>
<option value="27">POKUB2</option>
</select>
<select name="student" id="studentsDrop">
<option value="0">All</option>
<option value="39">Luke Mcfadzen</option>
<option value="40">Chris Tucker</option>
</select>
<select name="question" id="questionsDrop">
<option value="0">All</option>
<option value="72">1</option>
<option value="73">2</option>
</select>
- 学生:克里斯·塔克-弦乐(2)“40”
- 问题:1-字串(2)“72”
<select name="session" id="sessionsDrop">
<option value="26">POKUB1</option>
<option value="27">POKUB2</option>
</select>
<select name="student" id="studentsDrop">
<option value="0">All</option>
<option value="39">Luke Mcfadzen</option>
<option value="40">Chris Tucker</option>
</select>
<select name="question" id="questionsDrop">
<option value="0">All</option>
<option value="72">1</option>
<option value="73">2</option>
</select>
- 学生:克里斯·塔克-弦乐(2)“40”
- 问题:全部-字符串(1)“0”
<select name="session" id="sessionsDrop">
<option value="26">POKUB1</option>
<option value="27">POKUB2</option>
</select>
<select name="student" id="studentsDrop">
<option value="0">All</option>
<option value="39">Luke Mcfadzen</option>
<option value="40">Chris Tucker</option>
</select>
<select name="question" id="questionsDrop">
<option value="0">All</option>
<option value="72">1</option>
<option value="73">2</option>
</select>
- 学生:全部-字符串(1)“0”
- 问题:1-字串(1)“72”
<select name="session" id="sessionsDrop">
<option value="26">POKUB1</option>
<option value="27">POKUB2</option>
</select>
<select name="student" id="studentsDrop">
<option value="0">All</option>
<option value="39">Luke Mcfadzen</option>
<option value="40">Chris Tucker</option>
</select>
<select name="question" id="questionsDrop">
<option value="0">All</option>
<option value="72">1</option>
<option value="73">2</option>
</select>
- 学生:全部-字符串(1)“0”
- 问题:全部-字符串(1)“0”
var\u dump($questions)代码>如果我选择All
学生和All
问题:
array(1) {
[39]=> array(4) {
["studentalias"]=> string(8) "u4838229"
["studentforename"]=> string(5) "Chris"
["studentsurname"]=> string(6) "Tucker"
["questions"]=> array(1) {
[72]=> array(11) {
["questionno"]=> int(1)
["content"]=> string(14) "What is a RAM?"
["optiontype"]=> string(3) "A-E"
["noofanswers"]=> int(1)
["answer"]=> string(7) "B,C,D,E"
["replytype"]=> string(6) "Single"
["questionmarks"]=> int(5)
["studentanswer"]=> string(9) "A,B,C,D,E"
["responsetime"]=> string(8) "00:00:07"
["mouseclick"]=> int(1)
["studentmark"]=> string(1) "2" } } } }
空的()
(菲律宾比索4,菲律宾比索5)
empty-如果变量为空,则确定变量是否为空返回FALSE
存在并具有非空,非零值。否则返回TRUE
您可能希望对All
选项使用0
以外的值。您是否可以尝试使用-1
作为All
选项,而不是0
?另外,执行前还要检查变量转储($selectedstudentanswerqry)
,检查它是否有效。您好,很抱歉,我刚刚跑腿,我现在回来了,我会尝试一下您的解决方案并让您知道。实际上,你能让我知道这个值应该被准确地称为value“…”
,因为我假设我不能只做value='empty'
我的意思是除了0
之外的所有<编程语言中的代码>0
==false
。而empty(0)
函数将为其返回false。$selectstudentanswerqry的var\u dump显示查询对每个选项都正确执行,但输出仍然是将所有学生答案合并为一个,并将所有答案合并为一个。所以,如果我选择所有学生,它将显示一个学生,一个问题,但随后将每个问题的所有答案显示为问题1,并将每个问题的所有学生答案显示为问题1。这有意义吗?