Jump to content
Helmesvs

SELECT em duas tabelas

Recommended Posts

Pessoal estou tentando da um select nessas duas tabelas, mas ta dando esse erro aqui :

Fatal error: Call to a member function fetch_assoc() on a non-object in C:\xampp\htdocs\astronews\busca.php on line 119

$con = new mysqli('localhost', 'root', '', 'astronews');
    $pesquisado = $_GET['busca'];
    $pesTratado = str_replace('+',' ',$pesquisado);

    $sql = ("(SELECT * FROM publicacoes) UNION (SELECT * FROM materias) WHERE titulo LIKE '%$pesTratado%' ORDER BY datahora DESC LIMIT $inicio, $quantidade");
    $query = $mysqli->query($sql);

    while ($linha = $query->fetch_assoc() ) {?>   <!-- LINHA 19 -->

Sabem como resolver?

Share this post


Link to post
Share on other sites

query() falhou e retornou false. Explico isso neste link: http://rberaldo.com.br/as-mensagens-de-erros-mais-comuns-do-php/#mysql_result_resource

 

a sua sintaxe do union está errada. O WHERE não está se ligando a nenhum dos selects

Share this post


Link to post
Share on other sites

query() falhou e retornou false. Explico isso neste link: http://rberaldo.com.br/as-mensagens-de-erros-mais-comuns-do-php/#mysql_result_resource

 

a sua sintaxe do union está errada. O WHERE não está se ligando a nenhum dos selects

 

Eu ja tinha recebido esse conteudo por email, mas mesmo assim nao consegui resolver ainda.

Share this post


Link to post
Share on other sites

pra exibir o erro, basta isto:

 

$query = $mysqli->query($sql) or exit($mysqli->error);

 

O erro está na sintaxe do seu union. O UNION deve seguir esta sintaxe:

 

 

SELECT dados FROM tabela WHERE condicao UNION SELECT dados FROM outra_tabela WHERE condicao;

Ou seja, é como se fossem dois SELECTS, um independente do outro

 

Se você quiser relacionar tabelas, precisa usar JOIN, não UNION

Share this post


Link to post
Share on other sites

pra exibir o erro, basta isto:

$query = $mysqli->query($sql) or exit($mysqli->error);

O erro está na sintaxe do seu union. O UNION deve seguir esta sintaxe:

SELECT dados FROM tabela WHERE condicao UNION SELECT dados FROM outra_tabela WHERE condicao;

Ou seja, é como se fossem dois SELECTS, um independente do outro

 

Se você quiser relacionar tabelas, precisa usar JOIN, não UNION

 

Vlw amigo, agora deu certo, vo deixar o codigo aqui:

$sql = ("SELECT id, titulo, datahora, Day(datahora), foto1, descricao, visualizacao, tipo FROM publicacoes WHERE titulo LIKE '%$pesTratado%' UNION SELECT id, titulo, datahora, Day(datahora), foto1, descricao, visualizacao, tipo FROM materias WHERE titulo LIKE '%$pesTratado%' ORDER BY datahora DESC LIMIT $inicio, $quantidade");

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.