脚本宝典收集整理的这篇文章主要介绍了它的输出详细信息在php / html中不正确,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
Notice: Undefined offset: ... in .... on line 605
605行是:
echo '<p><strong>Question:</strong> ' .htMLsPEcialchars($arrQuestionNo[$key]). ': ' .htmlspecialchars($arrQuestionContent[$key]). '</p>' . PHP_EOL;
我的问题是如果用户选择所有选项,如何修复错误并显示所有问题?
按照以下步骤:
>在Module下拉菜单中,选择System Stratergy并提交
>出现评估下拉菜单时,选择POKub1并提交
>您将看到学生和问题下拉菜单.你可以看到,如果你打开下拉菜单,那里有3个学生和2个问题.请选择一个学生和所有问题和ubmIT.在这里您可以看到错误,我想在此处显示所有问题的详细信息.
码:
问题下拉菜单:
<select name="question" id="questionsDrop"> <option value="0">All</option> <option value=23">1</option> <option value=32">1</option> </select>
function Studentanswers() { $selectedstudentanswerqry = " SELECT sa.StudentId,StudentAlias,StudentForename,StudentSurname,q.SessionId,QuestionNo,QuestionContent,o.OptionType,q.Noofanswers,GROUP_CONCAT( DISTINCT Answer ORDER BY Answer SEPARATOR ',' ) AS Answer,r.ReplyType,QuestionMarks,GROUP_CONCAT(DISTINCT StudentAnswer ORDER BY StudentAnswer SEPARATOR ',') AS StudentAnswer,ResponseTime,MouseClick,StudentMark From Student st INNER JOIN Student_Answer sa ON (st.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 "; // Initially empty $where = array('q.SessionId = ?'); $parameters = array($_POST["session"]); $parameterTypes = 'i'; // Check whether a specific question was selected $p_question = empty($_POST["question"])?'':$_POST["question"]; switch($p_question){ case 0: //dont' add where filters break; default: $where[] = 'q.QuestionId = ?'; $parameters[] .= $_POST["question"]; $parameterTypes .= 'i'; } // If we added to $where in any of the conditionals,we need a WHERE clause in // our query if(!empty($where)) { $selectedstudentanswerqry .= ' WHERE ' . implode(' AND ',$where); global $MysqLi; $selectedstudentanswerstmt=$MysqLi->PRepare($selectedstudentanswerqry); // You only need to call bind_param once if (count($where) == 1) { $selectedstudentanswerstmt->bind_param($parameterTypes,$parameters[0]); } else if (count($where) == 2) { $selectedstudentanswerstmt->bind_param($parameterTypes,$parameters[0],$parameters[1]); } } $selectedstudentanswerqry .= " group by sa.StudentId,q.QuestionId ORDER BY StudentAlias,QuestionNo "; // get result and assign VARiables (prefix with db) $selectedstudentanswerstmt->execute(); $selectedstudentanswerstmt->bind_result($detailsStudentId,$detailsStudentAlias,$detailsStudentForename,$detailsStudentSurname,$detailsSessionId,$detailsQuestionNo,$detailsQuestionContent,$detailsOptionType,$detailsNoofAnswers,$detailsAnswer,$detailsReplyType,$detailsQuestionMarks,$detailsStudentAnswer,$detailsResponseTime,$detailsMouseClick,$detailsStudentMark); $selectedstudentanswerstmt->Store_result(); $selectedstudentanswernum = $selectedstudentanswerstmt->num_rows(); $question = array(); while ($selectedstudentanswerstmt->fetch()) { $arrQuestionNo = array(); $arrQuestionContent = array(); $arrQuestionNo[ $detailsStudentId ] = $detailsQuestionNo; $arrQuestionContent[ $detailsStudentId ] = $detailsQuestionContent; $questions[] = $arrQuestionNo; $questions[] = $arrQuestionContent; } $selectedstudentanswerstmt->close(); ?> ........................................................................................... <h2>STUDENT'S ANSWERS</h2> <?PHP foreach ($questions as $key=>$question) { echo '<p><strong>Question:</strong> ' .htmlspecialchars($arrQuestionNo[$key]). ': ' .htmlspecialchars($arrQuestionContent[$key]). '</p>' . PHP_EOL; } } ?>
更新:
学生表结构:
CREATE TABLE `Student` ( `StudentId` int(10) NOT NULL AUTO_INCREMENT,`StudentForename` vArchar(25) NOT NULL,`StudentSurname` varchar(25) NOT NULL,`StudentAlias` varchar(15) NOT NULL,`StudentEmail` varchar(50) NOT NULL,`StudentUsername` varchar(20) NOT NULL,`StudentPassword` varchar(50) NOT NULL,`StudentDOB` date NOT NULL,`Year` int(2) NOT NULL,`Courseid` int(6) NOT NULL,`Active` tinyint(1) NOT NULL DEFAULT '1',Primary KEY (`StudentId`),KEY `FK_Course` (`CourseId`) ) ENginE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=utf8
问题表结构:
CREATE TABLE `Question` ( `QuestionId` int(10) NOT NULL AUTO_INCREMENT,`SessionId` int(10) NOT NULL,`QuestionNo` int(3) NOT NULL,`QuestionContent` varchar(5000) NOT NULL,`NoofAnswers` int(2) NOT NULL,`ReplyId` int(1) NOT NULL,`QuestionMarks` int(4) NOT NULL,`OptionId` int(2) NOT NULL,PRIMARY KEY (`QuestionId`) ) ENGINE=InnoDB AUTO_INCREMENT=357 DEFAULT CHARSET=utf8
$question = array(); while ($selectedstudentanswerstmt->fetch()) { // assuming you don't need the StudentId $questions[] = array('no' => $detailsQuestionNo,'content' => $detailsQuestionContent); }
和
foreach ($questions as $key => $question) { echo '<p><strong>Question:</strong> ' . htmlspecialchars($question['no']) . ': ' . htmlspecialchars($question['content']) . '</p>' . PHP_EOL; }
EDITED
或者,如果您按问题分组,可以试试这个:
$question = array(); while ($selectedstudentanswerstmt->fetch()) { if (true === isset($questions[$detailsQuestionId])) { $questions[$detailsQuestionId]['students'][] = $detailsStudentId; } else { $questions[$detailsQuestionId] = array(); $questions[$detailsQuestionId]['no'] = $arrQuestionNo; $questions[$detailsQuestionId]['content'] = $arrQuestionContent; $questions[$detailsQuestionId]['students'] = array(); $questions[$detailsQuestionId]['students'][] = $detailsStudentId; } } foreach ($questions as $questionId => $question) { // $question['no'] // $question['content'] foreach($question['students'] AS $key => $studentId) { // $studentId } }
或者,如果您按用户ID分组…
$students = array(); while ($selectedstudentanswerstmt->fetch()) { if (false === isset($students[$detailsStudentId])) { $students[$detailsStudentId] = array(); } $students[$detailsStudentId][$detailsQuestionId] = array('no' => $arrQuestionNo,'content' => $arrQuestionContent; } foreach ($students AS $studentId => $questions) { // $studentId foreach ($questions AS $questionId => $question) { // $questionId // $question['no'] // $question['content'] } }
以上是脚本宝典为你收集整理的它的输出详细信息在php / html中不正确全部内容,希望文章能够帮你解决它的输出详细信息在php / html中不正确所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。