Ir para conteúdo

POWERED BY:

Arquivado

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

sliceart

[Resolvido] Busca em 2 tabelas utilizando variável...

Recommended Posts

Boas pessoal é a primeira vez que estou a tentar fazer uma busca em 2 tabelas, e depois de pesquisar e entender o código, já consegui que me pegasse resultados da BD mas não está a funcionar exactamente como pretendo...

o que tenho até agora é o seguinte:

 

SELECT Distinct destaques.*,noticias.* FROM destaques INNER JOIN noticias ON destaques.tema = noticias.tema order by rand() limit 2

 

Assim pega as noticias e destaques com o mesmo "tema" mas queria restringir mais a busca, queria que me pegasse só determinado "tema" acrescentei:

 

$tema = $_GET["tema"];

 

SELECT Distinct destaques.*,noticias.* FROM destaques INNER JOIN noticias ON destaques.tema = noticias.tema WHERE tema = '$tema' order by rand() limit 2

 

mas dá erro... como posso restringir a busca à variável "$tema"

 

Obrigado

JL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boas pessoal é a primeira vez que estou a tentar fazer uma busca em 2 tabelas, e depois de pesquisar e entender o código, já consegui que me pegasse resultados da BD mas não está a funcionar exactamente como pretendo...

o que tenho até agora é o seguinte:

 

SELECT Distinct destaques.*,noticias.* FROM destaques INNER JOIN noticias ON destaques.tema = noticias.tema order by rand() limit 2

 

Assim pega as noticias e destaques com o mesmo "tema" mas queria restringir mais a busca, queria que me pegasse só determinado "tema" acrescentei:

 

$tema = $_GET["tema"];

 

SELECT Distinct destaques.*,noticias.* FROM destaques INNER JOIN noticias ON destaques.tema = noticias.tema WHERE tema = '$tema' order by rand() limit 2

 

mas dá erro... como posso restringir a busca à variável "$tema"

 

Obrigado

JL

 

Descobri que seria mais fácil utilizar UNION:

 

SELECT * FROM noticias WHERE tema='$tema' UNION SELECT * FROM destaques WHERE tema='$tema'

 

tenho exactamente o que queria :) mas agora como posso pegar numa variável o nome da tabela de determinado resultado, por exemplo para ver essa noticia/destaque? Pelo que li posso criar um "variavel virtual"

 

SELECT 'tabela' as origem, * FROM noticias WHERE tema='$tema' UNION SELECT 'tabela' as origem, * FROM destaques WHERE tema='$tema'

 

mas está a dar erro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Boas pessoal é a primeira vez que estou a tentar fazer uma busca em 2 tabelas, e depois de pesquisar e entender o código, já consegui que me pegasse resultados da BD mas não está a funcionar exactamente como pretendo...

o que tenho até agora é o seguinte:

 

SELECT Distinct destaques.*,noticias.* FROM destaques INNER JOIN noticias ON destaques.tema = noticias.tema order by rand() limit 2

 

Assim pega as noticias e destaques com o mesmo "tema" mas queria restringir mais a busca, queria que me pegasse só determinado "tema" acrescentei:

 

$tema = $_GET["tema"];

 

SELECT Distinct destaques.*,noticias.* FROM destaques INNER JOIN noticias ON destaques.tema = noticias.tema WHERE tema = '$tema' order by rand() limit 2

 

mas dá erro... como posso restringir a busca à variável "$tema"

 

Obrigado

JL

 

Descobri que seria mais fácil utilizar UNION:

 

SELECT * FROM noticias WHERE tema='$tema' UNION SELECT * FROM destaques WHERE tema='$tema'

 

tenho exactamente o que queria :) mas agora como posso pegar numa variável o nome da tabela de determinado resultado, por exemplo para ver essa noticia/destaque? Pelo que li posso criar um "variavel virtual"

 

SELECT 'tabela' as origem, * FROM noticias WHERE tema='$tema' UNION SELECT 'tabela' as origem, * FROM destaques WHERE tema='$tema'

 

mas está a dar erro...

 

Bem parece que pergunto e respondo aki no forúm... B)

 

Está resolvido para os que tenham a mesma dúvida fiz:

 

SELECT *,'noticias' AS origem FROM noticias WHERE tema='$tema' UNION SELECT *,'destaques' AS origem FROM destaques WHERE tema='$tema'

 

para colocar o nome da tabela na variável:

 

$origem = $row["origem"];

 

pode ser básico, mas para quem não sabe....ajuda. Obrigado na mesma pela ajuda.

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.