Ir para conteúdo

Arquivado

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

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?

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros 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");

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.