Estou com um problema e já passei horas tentando resolver
, 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();
}
}