Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

theteo

Select com mysqli

Recommended Posts

Pessoal, acho que minha mente travou agora, vamos lá:

 

EXEMPLO 1

 

tbl_aluno
id,nome

1 - Joao

2 - Maria

 

tbl_disciplina

id,nome

1 - matematica

2 - portugues

3 - Biologia

 

Eu estou armazenando na tabela tbl_agenda id_aluno,id_disc1,id_disc2, OU SEJA

 

tbl_agenda

id_agenda, id_aluno, id_disc1, id_disc2

1 - 1 - 1 - 2

2 - 2 - 1 - 3

 

Dessa forma como eu faria para obter o nome do aluno e o nome das disciplinas em um SELECT usando mysqli ? É possível sem ter que fazer 2 selects ?

 

tbl_v_agenda

1 - Joao matematica Portugues

2 - Maria matematica Biologia

 

 

EXEMPLO 2

 

tbl_aluno
id,nome

1 - Joao

2 - Maria

 

tbl_disciplina

id,nome

1 - matematica

2 - portugues

3 - Biologia

 

tbl_agenda

id,agenda,id_aluno, id_disc

1- 1 - 1

2- 1 - 2

3- 2 - 1

4- 2 - 3

 

Dessa forma como eu faria para obter o nome do aluno e o nome das disciplinas em um SELECT usando mysqli que me retornasse assim? isso é possível ? agrupando as disciplinas pelo aluno ?

 

 

tbl_v_agenda

1 Joao matematica Portugues

2 Maria matematica Biologia

 

Muito obrigado galera.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Roberto, agora vamos as considerações finais.

 

Essa query que vc postou é para o exemplo 1 ou 2 ?

 

Quero dizer tb, que no caso do exemplo 1 , id_disc2 pode ser 0, pois as vezes o aluno marcara apenas 1 prova.

 

Ou seja, ele poderá marcar ATÉ 2 provas por mês.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Roberto, o select que vc passou me retorna algo do tipo :

 

 

Joao matematica

Joao portugues

 

Agora, minha REAL dúvida era se de alguma forma eu pudesse RETORNAR:

 

 

João Matemática Portugues

 

Ou seja, o aluno e as disciplinas que ele escolheu ( sabendo q ele poderá escolher apenas uma ).

 

Isso é possível diretamente via SQL ou eu teria que fazer isso via aplicação ?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quero agradecer a todos vcs pela ajuda.

 

No final ficou assim:

 

Primeiro criei uma view:

 

select `m`.`id_marcacao` AS `id_marcacao`,`m`.`id_agenda` AS `id_agenda`,`m`.`id_aluno` AS `id_aluno`,`u`.`nome` AS `aluno`,`d`.`nome` AS `disciplina` from ((`tbl_marcacoes` `m` join `tbl_usuarios` `u`) join `tbl_disciplinas` `d`) where ((`m`.`id_aluno` = `u`.`id_user`) and (`m`.`id_disciplina` = `d`.`id_disciplina`)) order by `u`.`nome`,`d`.`nome`

 

na aplicação coloquei esse código.

 

 

if ($sql = $mysqli->prepare("SELECT id_aluno AS id, aluno AS aluno,
GROUP_CONCAT( disciplina ) AS disciplinas
FROM tbl_v_marcacoes
WHERE id_agenda = '$id_agenda'
GROUP BY id_aluno ORDER BY aluno")) {

 

PERGUNTA

 

O ideal seria inserir na VIEW o GROUP_CONCAT ou fazer na APLICAÇÃO os dois códigos JUNTOS ?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.