Files
LMS-Estafeta/encuestas/getResult.php
T

128 lines
2.8 KiB
PHP

<?php
require_once "../config.php";
$idencuesta = $_POST['idencuesta'];
$sql="SELECT
e.idencuesta,
e.titulo,
e.descripcion
FROM
encuestas as e
WHERE
e.idencuesta = $idencuesta";
$sqlQ="SELECT
ep.idpregunta,
ep.titulo,ep.descripcion_p,
ep.orden_p
FROM
encuestas_preguntas as ep
WHERE
ep.idencuesta = $idencuesta
ORDER BY ep.orden_p asc";
global $link;
dbConnect();
$return = new stdClass();
$return->questions = [];
if($result = mysqli_query($link, $sql)){
if ( mysqli_num_rows($result) <= 0) {
$return->code = "300";
$return->icon = "warning";
$return->msg="Sin encuestas";
}else{
while ($row = mysqli_fetch_assoc($result)){
$return->datos = $row;
}
if($resultQ = mysqli_query($link, $sqlQ)){
if ( mysqli_num_rows($result) <= 0) {
$return->code = "300";
$return->icon = "warning";
$return->msg="Sin preguntas";
}else{
while ($row = mysqli_fetch_assoc($resultQ)){
$questions[] = $row;
}
$alerts = [];
$totalPreguntasRespuestas = 0;
$total_votes = 0;
foreach ($questions as $key => $q) {
$total_votes = 0;
$answers = [];
$sqlAns = "SELECT
*
FROM
encuestas_respuestas as er
WHERE
er.idpregunta = ".$q['idpregunta']."";
if($resultAns = mysqli_query($link, $sqlAns)){
if ( mysqli_num_rows($resultAns) <= 0) {
array_push($alerts, "Sin respuestas");
$answers = [];
}else{
$totalPreguntasRespuestas++;
while ($row = mysqli_fetch_assoc($resultAns)){
$total_votes += $row['votos'];
$answers[] = $row;
}
}
$questions[$key]['total_votos'] = $total_votes;
foreach ($answers as $keyans => $val) {
if ($val['votos'] == 0) {
$promedio = 0;
}else{
$promedio = round(($val['votos']/$total_votes)*100);
}
$answers[$keyans]['promedio'] = $promedio;
}
$questions[$key]['respuestas'] = $answers;
}else{
$return->code = "300";
$return->icon = "warning";
$return->msg="Sin respuestas";
array_push($alerts, "Consulta fallo! SQL: ".$sqlAns."<br><br> Error: ".mysqli_error($link));
}
}
if ($totalPreguntasRespuestas == sizeof($questions)) {
$return->code = "200";
$return->icon = "success";
$return->msg="Encuestas";
}else{
$return->code = "300";
$return->icon = "error";
$return->msg="Ocurrio un error al recuperar las respuestas";
}
}
}else{
}
}
}else{
$return->code = "400";
$return->icon = "error";
$return->msg="No se pudieron cargar los datos de la encuesta intenta más tarde.";
}
$return->questions = $questions;
echo json_encode($return, JSON_UNESCAPED_UNICODE);
exit;
?>