我这里有一个应用程序: 应用程序
该应用程序有没有向你展示两个下拉菜单我想作为一个过滤器来使用能够获得学生的答案确定所选的学生(S)和问题(S)选择的形式各自的下拉菜单。
看到下拉菜单,在应用程序中选择一个Assessment
从Assessment
下拉菜单并提交,你会看到学生和问题下拉下方显示的菜单。
现在我要做的就是WHERE子句依赖于从学生(S)和问题(S)下拉菜单中选择时,用户在点击该选项来创建一个动态的Get Student Answers
按钮。
下面是当前查询。 查询必须有违约条款SessionId = ?
在WHERE子句中的所有时间。 其他条款studentId = ?
和questionId = ?
取决于用户已经从两个下拉菜单中选择的选项。
$selectedstudentanswerqry = "
SELECT
StudentAlias, q.SessionId, QuestionNo, QuestionContent, o.OptionType, GROUP_CONCAT( DISTINCT Answer
ORDER BY Answer SEPARATOR ',' ) AS Answer, r.ReplyType,
GROUP_CONCAT(DISTINCT StudentAnswer ORDER BY StudentAnswer SEPARATOR ',') AS StudentAnswer, ResponseTime
FROM Student s
INNER JOIN Student_Answer sa ON (s.StudentId = sa.StudentId)
INNER JOIN Student_Response sr ON (sa.StudentId = sr.StudentId)
INNER JOIN Question q ON (sa.QuestionId = q.QuestionId)
INNER JOIN Answer an ON q.QuestionId = an.QuestionId
LEFT JOIN Reply r ON q.ReplyId = r.ReplyId
LEFT JOIN Option_Table o ON q.OptionId = o.OptionId
WHERE (SessionId = ?)
GROUP BY sa.StudentId, q.QuestionId
ORDER BY StudentAlias, q.SessionId, QuestionNo
";
global $mysqli;
$selectedstudentanswerstmt=$mysqli->prepare($selectedstudentanswerqry);
// You only need to call bind_param once
$selectedstudentanswerstmt->bind_param("i",$_POST["session"]);
// get result and assign variables (prefix with db)
$selectedstudentanswerstmt->execute();
$selectedstudentanswerstmt->bind_result($detailsStudentAlias,$detailsSessionId,$detailsQuestionNo,
$detailsQuestonContent,$detailsOptionType,$detailsAnswer,$detailsReplyType,$detailsStudentAnswer,$detailsResponseTime);
$selectedstudentanswerstmt->store_result();
$selectedstudentanswernum = $selectedstudentanswerstmt->num_rows();
以下是学生和问题的下拉菜单为样本HTML:
学生下拉菜单:
<select name="student" id="studentsDrop">
<option value="All">All</option>
<option value="3">u0499220 - Jack Briggs</option>
<option value="7">u0093220 - Mary Kay</option>
</form>
问题下拉菜单:
<select name="question" id="questionsDrop">
<option value="All">All</option>
<option value="34">1</option>
<option value="35">2</option>
<option value="36">3</option>
</form>
我想到的是这样如果选择特定学生则包括StudentId = ?
WHERE子句中,如果选择特定的问题号然后包括QuestionId = ?
在WHERE子句。 但是,如果All
值在学生选择的下拉菜单,然后删除StudentId = ?
从WHERE子句,因为我们是寻找所有的学生,不削下来了特定学生。 因为如果这是相同All
值是从问题中选择了下拉菜单,但显然处理QuestionId = ?