Как создать динамическое предложение WHERE mysqli

У меня есть приложение здесь: Приложение

Приложение должно показать вам два раскрывающихся меню, которые я хочу использовать в качестве фильтра, чтобы получить ответы учеников на выбранные ученики, и вопрос (ы) выбраны из соответствующих выпадающих меню.

Чтобы увидеть выпадающие меню, в приложении выберите раскрывающееся меню « Assessment из Assessment и отправьте, вы увидите, как внизу отображаются меню и выпадающие меню учеников и вопросов.

Теперь я хочу создать динамическое предложение WHERE в зависимости от параметров, выбранных из раскрывающихся меню учеников (ов) и вопросов (ов), когда пользователь нажал кнопку « 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 выбрано из раскрывающегося меню Question, но, очевидно, имеет дело с QuestionId = ?