Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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?
>
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.
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
>
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");
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