Ir para conteúdo

POWERED BY:

Arquivado

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

Lucas Weizenmann

Busca Avançada

Recommended Posts

okay.. distração minha..

 

aqui.. for($c=0; $c<count($curso); $c++)....

eu estava chamando $cursoS, quando o POST estava em $curso mesmo...

nice!..

porém...mto estranho

 

http://globoinfo.com.br/curriculos/

faça uma pesquisa lá.. por ex, entre 0 e 100 anos, Corel Draw,(3 alunos tem Corel)

retorna 21 registros....

se selecionar Ruby... retorna 7 registros, mas só um aluno tem Ruby ..

se selecionar AutoCad, (que tem nove alunos com esse curso) retorna 63...

Corel -> 3*7 = 21

Ruby -> 1*7 = 7

AutoCad -> 9*7 = 63

 

eu não entendi o porquê disso, ou é paranoia minha em cima de uma coincidência muito legal e esquisita..

 

Faz idéia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

E algum dado que se repete varias vezes ou 7 na tabela.

Por exemplo, de uma maneira mais simples:

Se eu relaciono uma tabela PRODUTO com uma tabela IMAGENS, onde na tabela imagens eu tenho o idProduto e idImagem.

Suponhamos que eu tenho UM produto cadastrado, porem tenho SETE imagens para este produto.

O meu result seria 7, devido ao numero de linhas da imagem, fazendo com que o produto se repita 7 vezes.

O problema ai e esse...precisa achar qual o dado que se repete varias vezes e colocar um DISTINCT(NOME_DO_CAMPO).

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo! hehe.

Seguinte...

um amigo meu, também chamado Lucas, me ajudou com esse caso.. hehe. Resolvido com INNER JOIN como alguém propos neste topico. Antes eu não conhecia INNER JOIN,mas agora sei que é indispensável para situações como esta.

Porém, a consulta com todos os cursos, tem algo errado ainda. Ao meu ver está tudo certo.. não tenho duvida.. mas eu insisto..

Ao invés de a consulta retornar 7 registros (temos 7 alunos), com os seus respectivos cursos, retorna 15 registros (temos 15 cursos.). COmo eu priorizo, para retornar APENAS 7 registros.. (alunos)?

 

if ($cursos == "todos")
{
	$consulta ="SELECT * FROM alunos INNER JOIN cursos_aluno ON alunos.id = cursos_aluno.id_aluno WHERE";
	if ($nome != '') {$consulta .= " alunos.nome LIKE '%$nome%' AND ";}
	if ($municipio !=''){$consulta .= " alunos.municipio LIKE '%$municipio%' AND ";}
	if ($hora !='') {$consulta .= " alunos.horas_aula <= '$horas' AND ";}
	if ($periodo1 != '' && $periodo2 != '') {$consulta .= " alunos.inicio >= '$periodo1' AND alunos.termino <= '$periodo2' AND ";}
	if ($idade != '' && $idade2 != '') {$consulta .= " alunos.nasc BETWEEN '$idade2' AND '$idade' AND ";}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na real, a solucao e a seguinte:

Voce precisa colocar um DISTINCT(alunos.id) para que ele nao repita os mesmo.

O problema é:

Eu nao tenho muito conhecimento com INNER JOIN, entao nao saberia te dizer certamente como fazer isso nessa consulta, mas fica ai a "dica" da solução, restando apenas saber "ONDE ENFIAR O DISTINCT? http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif "...rs...

 

Abraços

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.