entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Hola amigos mi problema es algo raro no se que hacer ya que estoy intentando traer la suma de cada conjunto de preguntas que le pertenecen a un solo perfil, es decir: tengo 5 preguntas del perfil 1, con los id: 1,2,3,4 y 5 ahora sumo los valores del campo 'respuesta' que poseen esos id_pregunta, como resultado final tendría que darme: 5 preguntas por 8 sería 40, pero no lo hace, no se sí es PHP ya que cuando ejecuto la consulta directamente en mi phpMyAdmin funciona. Por favor ayudaa.

Aclaro que ahorita en mi código PHP solo estoy realizando una suma ya que son 9 sumas y son 9 perfiles pero solo estoy haciendo una prueba ya que ni siquiera 1 resultado me sale, por lo menos quiero obtener el primer resultado que les puse como ejemplo :(.

Mi tabla se llama preguntas a la que le estoy realizando la consulta, tiene 48 filas y el id_alumno es el mismo, pero el id_pregunta no, ya que no se repiten es decir: van del 1 al 48 ya que son 48 preguntas y la respuesta todas son 8 que estoy haciendo mal? acepto sugerencias y correcciones, Gracias.

Mi código ajax, Aclaro que cuando lo ejecuto todo si funciona, ya que se muestra el alert:

function Obtener_Resultados(){

    var request = $.ajax({
        url: "Resultados/obtener_resultados_preliminares.php",
        type: "POST",
        data:{id_alumno: id_estudiante},
        dataType:"jsonp",
        jsonp:"jsoncallback",
        crossDomain: true,
        cache: false
    });

     request.done(function(data){

         //alert(JSON.stringify(data));
        if(data.estado=="exito"){

            //array_resultados_finales = data.resultados;
            alert("Exito");
            console.log(data.valores);
            //console.log(array_resultados_finales);
            //destroy_session();
        }else{
            alert("Error: No se pudieron obtener los resultados");

        }
    });

    request.fail(function(textStatus){
        alert("Error en la petición: obtencion de resultados: " +  JSON.stringify(textStatus));
    });

}

Mi código PHP:

<?php
    //header("Content-Type: text/json");
    $datos = array();
    $array_resultados = array();

    $id_estudiante = $_GET['id_alumno'];

    $conexion = new mysqli("localhost", "root", "", "aiup");
    $sql = "SELECT SUM(respuesta) FROM respuestas as res INNER JOIN preguntas as pre 
    WHERE res.id_pregunta = pre.id_pregunta and res.id_alumno = $id_estudiante AND pre.id_pregunta 
    IN (select id_pregunta from preguntas where id_perfil=1) group by res.id_alumno";

    if ($conexion->connect_errno) {
        echo "Fallo al conectar a MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    }

    $resultado = mysqli_query($conexion, $sql);
    while($registro = mysqli_fetch_array($resultado)){
        array_push ($array_resultados, $registro[0]);
        // //var_dump($registro[0]);
    }

    $conexion->close();

    $datos["estado"] = "exito";
    $datos["valores"] = $array_resultados;

    $resultadoJson = json_encode($datos);
    //var_dump($resultadoJson);
    echo $_GET['jsoncallback'] . '(' . $resultadoJson . ');';
    exit();
?>

NOTA 1:

Lo más raro es que cuando pongo el var_dum() para ver el contenido si lo muestra es decir que si esta el valor 40 eso significa que todo esta bien pero cuando lo quito no me trae nada es decir que ese 40 al parecer desapareció.

NOTA 2:

También aclaro que cuando modifico mi consulta por esta:"SELECT
SUM(respuesta) FROM respuestas"; sin tomar en cuenta las llaves foraneas si me muestra el resultado en el console.log(); de javascript.

Lo que creo que podría ser:

Acaso será que el resultado 40 no lo puedo obtener porque cuando se ejecuta la consulta del PHP falla por mi estructura de relaciones de las claves foraneas de la tabla respuestas claves foraneas que contiene está: id_pregunta y id_alumno.

Que error tengo, no entiendo que estará pasando??.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta