Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho uma tabela com os campos ID, titulo, texto e tags (esta última contendo palavras chaves separadas por espaço)
Numa página fiz um consulta para exibir um registro (notícia). Até aí tudo ok.
Gostaria agora de fazer uma nova consulta da seguinte maneira: verificar no campo tags de todos os registros, quais palavras podem ser encontradas no campo título do registro da primeira consulta. Ou seja, comparar as palavras do campo titulo da primeira consulta com o campo tags de todos os registros e exibir os resultados.
A primeira consulta está assim:
$colname_rsNoticia = "-1";
if (isset($_GET['id'])) {
$colname_rsNoticia = $_GET['id'];
}
mysql_select_db($database_conn_PMMC, $conn_PMMC);
$query_rsNoticia = "SELECT * FROM noticias2011 WHERE noticia_ID = " . $colname_rsNoticia;
$rsNoticia = mysql_query($query_rsNoticia, $conn_PMMC) or die(mysql_error());
$row_rsNoticia = mysql_fetch_assoc($rsNoticia);
$totalRows_rsNoticia = mysql_num_rows($rsNoticia);
A segunda consulta eu estava tentando fazer assim, mas não está dando certo. Ela está encontrando todos os registros, o que não é possível, haja visto que nem todos os registros possuem em seus campos tags palavras chaves que podem ser encontradas no titulo.
mysql_select_db($database_conn_PMMC, $conn_PMMC);
$query_rsRelaciona = "SELECT * FROM noticias2011 WHERE noticia_ID != " . $colname_rsNoticia . " AND (tags = 'xxx' ";
$palavras = explode(" ", $row_rsNoticia['titulo']);
$total = count($palavras);
for($i = 0; $i < $total; $i++){
$query_rsRelaciona .= " OR tags LIKE '%" . $palavras[$i] . "%'";
}
$query_rsRelaciona .= ")";
$rsRelaciona = mysql_query($query_rsRelaciona, $conn_PMMC) or die(mysql_error());
$row_rsRelaciona = mysql_fetch_assoc($rsRelaciona);
$totalRows_rsRelaciona = mysql_num_rows($rsRelaciona);
Obs.: Coloquei ali tags = 'xxx' apenas para poder usar o AND.
Qualquer ajuda é bem vinda :joia:
Carregando comentários...