| Current Path : /var/www/cesa.co.za/ |
| Current File : /var/www/cesa.co.za/inc_reportquestionnaire.php |
<h1><?php echo htmlspecialchars($Questionnaire_Name); ?><!-- for <?php echo $CompanyName; ?>--><br>Consolidated Responses</h1>
<?php
$sql = "SELECT COUNT(*) AS NumResp, MAX(Response_Date) AS MaxDate
FROM AnonRespondees WHERE Questionnaire_ID='" . $Questionnaire_ID . "'
AND AnonRespondees.GroupID=" . $GroupID;
// echo $sql;
$recResp = mysqli_query($conn, $sql);
if ($rowResp = mysqli_fetch_assoc($recResp)) {
if ($rowResp["NumResp"] == 0) {
echo "<p>No responses received.</p>
</td></tr></table>
</body></html>";
die();
}
echo "<p>Total responses received to date (" . date("Y", strtotime($rowResp["MaxDate"])) . "): " . $rowResp["NumResp"] . "</p>";
$iGrandTotal = $rowResp["NumResp"];
$iYear = date("Y", strtotime($rowResp["MaxDate"]));
}
$iYearPrev = 0;
if (!empty($GroupID2)) {
$sql = "SELECT COUNT(*) AS NumResp, MAX(Response_Date) AS MaxDate
FROM AnonRespondees WHERE Questionnaire_ID='" . $Questionnaire_ID . "'
AND AnonRespondees.GroupID=" . $GroupID2 . "
ORDER BY AnonRespondees.Anon_Respondee_Name";
// echo $sql;
$recResp = mysqli_query($conn, $sql);
if ($rowResp = mysqli_fetch_assoc($recResp)) {
echo "<p>Total responses received to date (" . date("Y", strtotime($rowResp["MaxDate"])) . "): " . $rowResp["NumResp"] . "</p>";
$iGrandTotalPrev = $rowResp["NumResp"];
$iYearPrev = date("Y", strtotime($rowResp["MaxDate"]));
}
} else {
$iYear = "";
}
if ($HasScore == 1) {
$sql = "SELECT MIN(Score) AS MinScore, MAX(Score) As MaxScore, AVG(Score) As AvgScore FROM AnonRespondees WHERE Questionnaire_ID='" . $Questionnaire_ID . "' "
. "AND AnonRespondees.GroupID=" . $GroupID;
$recQ = mysqli_query($conn, $sql);
if ($rowQ = mysqli_fetch_assoc($recQ)) {
// var_dump($rowQ);
?>
<table border="0" cellspacing="0" cellpadding="5" width="700" style="page-break-after:always">
<tr>
<td colspan="2" bgcolor="#CCCCCC"><b><?php echo htmlspecialchars($Questionnaire_Name); ?></b><br>Overall Scores</td>
</tr>
<tr>
<td style="border:1px solid #cccccc" valign="top">
<div><b>Lowest Score</b></div>
</td>
<td style="border:1px solid #cccccc" valign="top">
<div><?php echo $rowQ["MinScore"]; ?> (<?php echo number_format($rowQ["MinScore"] / $Score * 100, 1); ?>%)</div>
</td>
</tr>
<tr>
<td style="border:1px solid #cccccc" valign="top">
<div><b>Highest Score</b></div>
</td>
<td style="border:1px solid #cccccc" valign="top">
<div><?php echo $rowQ["MaxScore"]; ?> (<?php echo number_format($rowQ["MaxScore"] / $Score * 100, 1); ?>%)</div>
</td>
</tr>
<tr>
<td style="border:1px solid #cccccc" valign="top">
<div><b>Average Score</b></div>
</td>
<td style="border:1px solid #cccccc" valign="top">
<div><?php echo number_format($rowQ["AvgScore"], 1); ?> (<?php echo number_format($rowQ["AvgScore"] / $Score * 100, 1); ?>%)</div>
</td>
</tr>
</table>
<?php
}
}
?>
<?php
$sql = "SELECT Questions.Question_ID, count(*) FROM Questions, Answers WHERE Questions.Questionnaire_ID=" . $Questionnaire_ID . " AND Questions.Question_ID=Answers.Question_ID AND Answers.Answer <> '' AND Answers.Answer IS NOT NULL GROUP BY Questions.Question_ID having count(*)>1";
// echo $sql;
$recS = mysqli_query($conn, $sql);
$arrQIDs = array();
while ($rowS = mysqli_fetch_assoc($recS)) {
$arrQIDs[] = $rowS["Question_ID"];
}
$MultiChoiceQs = join(",", $arrQIDs);
// echo $MultiChoiceQs;
if (!empty($MultiChoiceQs)) {
$sql = "SELECT * FROM Sections WHERE Questionnaire_ID='" . $Questionnaire_ID . "' AND Section_ID IN (SELECT Section_ID FROM Questions WHERE Question_ID IN (" . $MultiChoiceQs . ")) ORDER BY Display_Order, Section_ID";
$recS = mysqli_query($conn, $sql);
$iNumSteps = mysqli_num_rows($recS);
$iStep = 1;
while ($rowS = mysqli_fetch_assoc($recS)) {
// var_dump($rowS);
extract($rowS);
?>
<table border="0" cellspacing="0" cellpadding="5" width="700" style="page-break-after:always">
<tr>
<td colspan="2" bgcolor="#CCCCCC"><b><?php echo htmlspecialchars($Section_Name); ?></b></td>
</tr>
<?php
if (!empty($Section_Text)) {
?>
<tr>
<td colspan="2"><?php echo $Section_Text; ?></td>
</tr>
<?php
}
$sql = "SELECT * FROM Questions WHERE Questionnaire_ID='" . $Questionnaire_ID . "' AND Section_ID='" . $Section_ID . "' "
. "AND Question_ID IN (" . $MultiChoiceQs . ") ORDER BY Display_Order, Question_ID";
// echo $sql;
$recQ = mysqli_query($conn, $sql);
$iRow = 0;
while ($rowQ = mysqli_fetch_assoc($recQ)) {
extract($rowQ);
$iRow++;
?>
<tr<?php if ($iRow % 3 == 0) echo " style='page-break-after:always'"; ?>>
<td style="border:1px solid #cccccc; border-width:0px 0px 1px 0px; page-break-inside:avoid" width="400" valign="top">
<div><b><?php echo htmlspecialchars($Question); ?></b></div>
<?php
$sTableHTML = "";
$sTableHTMLPrev = "";
$bNumberColumn = true;
$strXML = "<graph decimalPrecision='0' bgColor='FBFBFB' bgAlpha='100' canvasBgColor='FBFBFB' showCanvasBg='0' canvasBaseColor='FE6E54'>"
. "<categories><category name='' /></categories>";
$arrColours = array('AFD8F8', 'F6BD0F', '8BBA00', 'FF8E46', '008E8E', 'D64646', '8E468E', '588526', 'B3AA00', '008ED6', '9D080D', 'A186BE');
if ($rowQ["IsMulti"] == 1) {
$sql = "SELECT DISTINCT Respondee_ID, Answer_Text FROM Anon_User_Answers WHERE Questionnaire_ID='" . $Questionnaire_ID . "' "
. "AND GroupID=" . $GroupID . " AND Question_ID=" . $Question_ID;
// echo 'Multi: ' . $sql;
$recB = mysqli_query($conn, $sql);
$arrAnswers = array();
$arrBars = array();
while ($rowB = mysqli_fetch_assoc($recB)) {
$sql = "SELECT Answer_ID, Answer, BarColour FROM Answers WHERE Answer_ID IN (" . $rowB["Answer_Text"] . ")";
//echo $sql;
$recC = mysqli_query($conn, $sql);
while ($rowC = mysqli_fetch_assoc($recC)) {
if (isset($arrAnswers[$rowC["Answer"]])) {
$arrAnswers[$rowC["Answer"]]++;
if (!empty($rowC["BarColour"])) {
$arrBars[$rowC["Answer"]] = $rowC["BarColour"];
} else {
$arrBars[$rowC["Answer"]] = "";
}
} else {
$arrAnswers[$rowC["Answer"]] = 1;
$arrBars[$rowC["Answer"]] = "";
}
}
mysqli_free_result($recC);
}
mysqli_free_result($recB);
// var_dump($arrAnswers);
$iColour = 0;
foreach ($arrAnswers as $key => $value) {
$sAnswerGiven = $key;
if (!empty($arrBars[$sAnswerGiven])) {
$sBarColour = $arrBars[$sAnswerGiven];
} else {
$sBarColour = $arrColours[$iColour];
$iColour++;
if ($iColour >= count($arrColours)) $iColour = 0;
}
$strXML .= "<dataset seriesname='" . htmlspecialchars(str_replace(array("/", "&", "'"), array("\\", "n", "`"), $sAnswerGiven)) . " " . $iYear . "' color='" . $sBarColour . "'><set value='" . $value . "' /></dataset>";
$sTableHTML .= "<tr><td>" . nl2br($sAnswerGiven) . "</td>";
$sTableHTML .= "<td>" . $value . "</td>";
$sTableHTML .= "<td>" . ($iGrandTotal > 0 ? number_format($value / $iGrandTotal * 100, 1) : "") . "%</td>";
$sTableHTML .= "</tr>";
}
if (!empty($GroupID2)) {
$sql = "SELECT DISTINCT Respondee_ID, IF(ISNULL(Anon_User_Answers.Answer_Text),'',Anon_User_Answers.Answer_Text) AS Answer_Text FROM Anon_User_Answers WHERE Questionnaire_ID='" . $Questionnaire_ID . "' AND GroupID=" . $GroupID2 . " AND Question_ID=" . $Question_ID;
//echo $sql;
$recB = mysqli_query($conn, $sql);
$arrAnswers = array();
$arrBars = array();
while ($rowB = mysqli_fetch_assoc($recB)) {
$sql = "SELECT Answer_ID, Answer, BarColour FROM Answers WHERE Answer_ID IN (" . $rowB["Answer_Text"] . ")";
//echo $sql;
$recC = mysqli_query($conn, $sql);
while ($rowC = mysqli_fetch_assoc($recC)) {
if (isset($arrAnswers[$rowC["Answer"]])) {
$arrAnswers[$rowC["Answer"]]++;
if (!empty($rowC["BarColour"])) {
$arrBars[$rowC["Answer"]] = $rowC["BarColour"];
} else {
$arrBars[$rowC["Answer"]] = "";
}
} else {
$arrAnswers[$rowC["Answer"]] = 1;
$arrBars[$rowC["Answer"]] = "";
}
}
mysqli_free_result($recC);
}
mysqli_free_result($recB);
//var_dump($arrAnswers);
$iColour = 0;
foreach ($arrAnswers as $key => $value) {
$sAnswerGiven = $key;
if (!empty($arrBars[$sAnswerGiven])) {
$sBarColour = $arrBars[$sAnswerGiven];
} else {
$sBarColour = $arrColours[$iColour];
$iColour++;
if ($iColour >= count($arrColours)) $iColour = 0;
}
$strXML .= "<dataset seriesname='" . htmlspecialchars(str_replace(array("/", "&", "'"), array("\\", "n", "`"), $sAnswerGiven)) . " " . $iYearPrev . "' color='" . $sBarColour . "'><set value='" . $value . "' /></dataset>";
$sTableHTMLPrev .= "<tr><td>" . nl2br($sAnswerGiven) . "</td>";
$sTableHTMLPrev .= "<td>" . $value . "</td>";
$sTableHTMLPrev .= "<td>" . number_format($value / $iGrandTotalPrev * 100, 1) . "%</td>";
$sTableHTMLPrev .= "</tr>";
}
}
} else {
$sql = "SELECT COUNT(Anon_User_Answers.Answer_ID) AS Num, Answers.Answer, IF(ISNULL(Answers.Answer) OR (Answers.Answer=''), "
. "IF(ISNULL(Anon_User_Answers.Answer_Text),'',Anon_User_Answers.Answer_Text),'') AS Answer_Text, BarColour FROM Anon_User_Answers "
. "RIGHT JOIN Answers ON (Anon_User_Answers.Answer_ID = Answers.Answer_ID AND GroupID=" . $GroupID . ") "
. "WHERE Questionnaire_ID='" . $Questionnaire_ID . "' AND Answers.Question_ID=" . $Question_ID . " "
. "GROUP BY Answer, IF(ISNULL(Answers.Answer) OR (Answers.Answer=''),IF(ISNULL(Anon_User_Answers.Answer_Text),'', "
. "Anon_User_Answers.Answer_Text),'') ORDER BY Answers.Answer_ID, Display_Order, Answer, Answer_Text";
// echo $sql;
$recB = mysqli_query($conn, $sql);
$iColour = 0;
while ($rowB = mysqli_fetch_assoc($recB)) {
if (!empty($rowB["Answer"])) {
$sAnswerGiven = $rowB["Answer"];
} else {
$sAnswerGiven = $rowB["Answer_Text"];
}
if (!empty($rowB["BarColour"])) {
$sBarColour = $rowB["BarColour"];
} else {
$sBarColour = $arrColours[$iColour];
$iColour++;
if ($iColour >= count($arrColours)) $iColour = 0;
}
$strXML .= "<dataset seriesname='" . htmlspecialchars(str_replace(array("/", "&", "'"), array("\\", "n", "`"), $sAnswerGiven))
. " " . $iYear . "' color='" . $sBarColour . "'><set value='" . $rowB["Num"] . "' /></dataset>";
$sTableHTML .= "<tr><td>" . nl2br($sAnswerGiven) . "</td>";
if ($rowQ["Answer_Type"] != "a") {
$sTableHTML .= "<td>" . $rowB["Num"] . "</td>";
$sTableHTML .= "<td>" . number_format($rowB["Num"] / $iGrandTotal * 100, 1) . "%</td>";
} else {
$bNumberColumn = false;
}
$sTableHTML .= "</tr>";
}
mysqli_free_result($recB);
if (!empty($GroupID2)) {
$sql = "SELECT COUNT(Anon_User_Answers.Answer_ID) AS Num,
Answers.Answer, IF(ISNULL(Answers.Answer) OR (Answers.Answer=''),IF(ISNULL(Anon_User_Answers.Answer_Text),'',Anon_User_Answers.Answer_Text),'') AS Answer_Text, BarColour
FROM Anon_User_Answers RIGHT JOIN Answers ON (Anon_User_Answers.Answer_ID = Answers.Answer_ID AND GroupID=" . $GroupID2 . ")
WHERE Questionnaire_ID='" . $Questionnaire_ID . "' AND Answers.Question_ID=" . $Question_ID . "
GROUP BY Answer, IF(ISNULL(Answers.Answer) OR (Answers.Answer=''),IF(ISNULL(Anon_User_Answers.Answer_Text),'',Anon_User_Answers.Answer_Text),'')";
// echo $sql;
$recB = mysqli_query($conn, $sql);
$iColour = 0;
while ($rowB = mysqli_fetch_assoc($recB)) {
if (!empty($rowB["Answer"])) {
$sAnswerGiven = $rowB["Answer"];
} else {
$sAnswerGiven = $rowB["Answer_Text"];
}
if (!empty($rowB["BarColour"])) {
$sBarColour = $rowB["BarColour"];
} else {
$sBarColour = $arrColours[$iColour];
$iColour++;
if ($iColour >= count($arrColours)) $iColour = 0;
}
$strXML .= "<dataset seriesname='" . htmlspecialchars(str_replace(array("/", "&", "'"), array("\\", "n", "`"), $sAnswerGiven)) . " " . $iYearPrev . "' color='" . $sBarColour . "'><set value='" . $rowB["Num"] . "' /></dataset>";
$sTableHTMLPrev .= "<tr><td>" . nl2br($sAnswerGiven) . "</td>";
if ($rowQ["Answer_Type"] != "a") {
$sTableHTMLPrev .= "<td>" . $rowB["Num"] . "</td>";
$sTableHTMLPrev .= "<td>" . number_format($rowB["Num"] / $iGrandTotalPrev * 100, 1) . "%</td>";
} else {
$bNumberColumn = false;
}
$sTableHTMLPrev .= "</tr>";
}
mysqli_free_result($recB);
}
}
$strXML .= "</graph>";
if (!empty($GroupID2)) echo "<p>" . $iYear . "</p>";
echo "<table border=1 cellpadding=2 cellspacing=0 width=400>" . $sTableHTML . "</table>";
if (!empty($GroupID2)) echo "<p>" . $iYearPrev . "</p>";
if (!empty($sTableHTMLPrev)) echo "<table border=1 cellpadding=2 cellspacing=0 width=400>" . $sTableHTMLPrev . "</table>";
echo "</td><td> </td></tr>";
}
mysqli_free_result($recQ);
?>
</table>
<?php
$iStep++;
}
mysqli_free_result($recS);
}
?>
</td>
</tr>
</table>
<?php
if ($Questionnaire_ID == 225) {
// Course evaluations - show the comments
?>
<p><b>Comments</b></p>
<?php
$sql = "SELECT Questions.Question_ID, Questions.Question FROM Questions WHERE Questions.Questionnaire_ID=" . $Questionnaire_ID . " AND Questions.Answer_Type='a' ORDER BY Section_ID, Display_Order";
// echo $sql;
$recQ = mysqli_query($conn, $sql);
while ($rowQ = mysqli_fetch_assoc($recQ)) {
?>
<p><?php echo $rowQ["Question"]; ?></p>
<ul>
<?php
$Question_ID = $rowQ["Question_ID"];
$sql = "SELECT DISTINCT Respondee_ID, Answer_Text FROM Anon_User_Answers WHERE Questionnaire_ID='" . $Questionnaire_ID . "' AND GroupID=" . $GroupID . " AND Question_ID=" . $Question_ID;
$recA = mysqli_query($conn, $sql);
while ($rowA = mysqli_fetch_assoc($recA)) {
echo "<li>" . $rowA["Answer_Text"] . "</li>";
}
?>
</ul>
<hr>
<?php
}
}
?>