Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvidas sobre o fetch(PDO::FETCH_ASSOC)

Quando uso o fetch(PDO::FETCH_ASSOC) tenho como retorno um array associativo. Nele o índice é o nome da coluna que está no BD. O valor é resultante da consulta SQL. Fiz um var_dump e tive como resultado:

array (size=7)
  'idAula' => string '1' (length=1)
  'diaSemana' => string 'SEG' (length=3)
  'horario' => string '1' (length=1)
  'idTurma' => string '1' (length=1)
  'idDisc' => string '1' (length=1)
  'idProf' => string '1' (length=1)
  'vago' => string '0' (length=1)

Estou escrevendo o resultado usando um laço while. Eu quero saber como eu faria para organizar esse array associativo para eu conseguir escrever o resultado em tabela, organizando por idTurma com todos os horários do 1º até o 6º do diaSemana, por exemplo, SEG, TER, QUA, QUI e SEX só de uma Turma? Eu consigo fazer isto delimitando a minha consulta. Mas, queria saber se tenho que criar um JSON? Organizar array de array?

3 respostas
solução!

Fala, Edson. Seu domínio parece bem complexo. Que tal aproveitar a orientação a objetos pra resolver isso, ao invés de utilizar arrays associativos para representar dados significativos para o domínio?

Você pode ter um array de Turmas, por exemplo. A turma tem uma lista de Aulas, onde cada aula possui dia da semana e horário.

Aí pra montar a tabela, você faria um foreach em $turma->aulas(), por exemplo. Já na classe aula você poderia ter métodos de filtro como $aula->horariosDeSegunda(), etc.

Vê se faz sentido pra você...

Estava assistindo os vídeos de boas práticas e de Transações e vi que preciso organizar melhor o sistema com POO. Vou modelar e implementar as classes Professores, Alunos, Turmas, Aulas, etc... Tenho que organizar Horários de Aulas de 16 Turmas, cada uma com 10 Disciplinas (com seus respectivos Professores). O BD relacional já foi modelado, implementado, já fiz inserts e tenho alguns selects já prontos, mas toda a regra de negócios ainda está "estruturada". Estou engatinhando em OO, meus longos 11 anos de programação estruturada com "gambiarras" estão chegando ao fim. Vou organizar o sistema com POO. Obrigado pelas dicas.

O estudo de Orientação a Objetos é um caminho longo, mas prazeroso, Edson. Vai valer a pena.

Não deixe de conferir os cursos sobre boas práticas aqui na Alura.

Abração e bons estudos.