Ir para conteúdo

POWERED BY:

Arquivado

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

Marisa Lima

Query sql

Recommended Posts

boas.

 

Tenho uma query em mysql que não retorna nenhuma linha tendo de retornar obrigatoriamente 2 linhas.

Não dá nenhum erro ao executar.

 

SELECT objectivos.objetivo,objectivos.indicador,status_objectivos.descricao,objectivos.razaonaoconcretizacao,

nivel.descricao

from objectivos,nivel,status_objectivos

WHERE objectivos.id_nivel=nivel.id

AND objectivos.id_status=status_objectivos.id

AND objectivos.id_colaborador=1 and objectivos.data=2011

Será que estou a cometer algum erro e não me apercebo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se o type de objectivos.data bate com o parametro passado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o valor passado vem do php, a data do sistema. Vou passar a function onde está a query para perceber melhor.

function ListaObjectivos(){

 

$mysql= new conexao;

$id=$_SESSION['id'];

$data=date('Y')-1;

 

$query=$mysql->sql_query("SELECT objectivos.objetivo,objectivos.indicador,status_objectivos.descricao,objectivos.razaonaoconcretizacao,

nivel.descricao

from objectivos,nivel,status_objectivos

WHERE objectivos.id_nivel=nivel.id

AND objectivos.id_status=status_objectivos.id

AND objectivos.id_colaborador=$id and objectivos.data='$data'");

$data=array();

while ($objectivo =mysql_fetch_array($query)) {

$data[]=$objectivo;

 

}

return $data;

}

 

se eu testar sem a junção de tabelas e passar os parametros funciona. Com a junção de tabelas é que deixa de funcionar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O cara passado em $id tem registros em todas as tabelas ?

 

Tentou com outros $id ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já consegui resolver. O problema estava que um dos campos que se pedia no select estava vazio e ao fazer a junção das tabelas deixou de dar.

è normal quando listamos varios campos de tabelas diferentes com a clausula where, se alguns deles estiverem vazios o select não retornar informação?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Será que estou a cometer algum erro e não me apercebo?

 

Nós diriamos :

 

Será que estou cometendo algum erro e não me apercebo?

 

Longe que qualquer crítica, todos são bemvindos !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei com o inner join e mesmo assim se um dos campos pedidos na select estiver vazio não retorna informação. Existe alguma forma de contornar isto! Já agora obrigada pela ajuda, ainda bem que existe alguém se preocupa a ajudar os outros!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que tem de usar RIGHT ou LEFT para tratar isto.

 

Tenho dificuldades com esta síntexe pois no Oracle (BD que mais uso) é diferente.

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.