Como armazenar dados de uma consulta em um array que será transformado em json?

0 respostas
jsonmysqlphp
R

Estou com um problema e já passei horas tentando resolver :confused:, então estou querendo pegar um fetchAll e armazenar em um array que será transformado em Json, e devolvido para uma função Ajax que o requisitou abaixo segue meu código:

Observação: Estou conseguindo transformar em json só que apenas está sendo passado a ultima linha da consulta.

Javascript:

$('painel.php').ready(function(){
    try {
            $.ajax({
                type: "POST",
                url: "servicos.php",
                data: "metodo=carregarDadosAluno",
                beforeSend: function()
                {
                    // $("#div_load_geral_tabela").show();
                },
                success: function(retorno)
                {
                    try
                    {
                        console.log(retorno);
                        var jsRetorno = JSON.parse(retorno);
                        console.log(jsRetorno);
                        if(jsRetorno[0].valido == 1)
                        {
                            alert(jsRetorno[0].mensagem);
                        }
                        else
                        {
                            console.log(retorno);
                            console.log(jsRetorno);
                            alert(retorno);
                        }
                    }
                    catch(erro)
                    {
                        alert("Não foi possível Realizar a consulta dos dados do curso do aluno.");
                        console.log(erro);
                        console.log(retorno);
                        console.log(jsRetorno);
                    }
                },
                error: function(request, status, errorThrown)
                {
                    //$("#div_load_geral_tabela").hide();
                    console.log(request);
                    console.log(status);
                    console.log(errorThrown);
                }
            });
    }
    catch(e){
        alert(e);
    }
});

PHP:

if($_REQUEST["metodo"] == "carregarDadosAluno") {

    $usuario_periodo = $_SESSION['usuario']['periodo'];

    $arrayRetorno = array();

    if (isset($usuario_periodo)) {
        try {
            $conn = conectar();

            $stmt = $conn->prepare("SELECT nome,disciplina,horario,complexidade
                                    FROM view_dados_periodo_corrente_aluno
				                    WHERE periodo = ?");
            $stmt->bindValue(1, $usuario_periodo);
            $stmt->execute();
            $resultado = $stmt->fetchAll(PDO::FETCH_OBJ);

            //TODO Verificar por que está retornando apenas a última linha da consulta
            if ($stmt->rowCount() > 0) {
                foreach($resultado as $listar) {
                    //Create array to return json
                    $i = 0;
                    $arrayRetorno[$i]["valido"] = 1;
                    $arrayRetorno[$i]["mensagem"] = "sucesso";
                    $arrayRetorno[$i]["nome"] = $listar->nome;
                    $arrayRetorno[$i]["disciplina"] = $listar->disciplina;
                    $arrayRetorno[$i]["horario"] = $listar->horario;
                    $arrayRetorno[$i]["complexidade"] = $listar->complexidade;
                    $i = $i + 1;
                }
            } else {
                $arrayRetorno[0]["valido"] = 0;
                $arrayRetorno[0]["mensagem"] = "Falha na consulta";
            }

            //Close connection
            $conn = null;

        } catch (Exception $e) {
            $arrayRetorno[0]["valido"] = 0;
            $arrayRetorno[0]["mensagem"] = 'Algo de errado aconteceu: ' . $e->getMessage();
        }
        echo json_encode($arrayRetorno);
        die();
    }
}
Criado 20 de maio de 2017
Respostas 0
Participantes 1