Freelife 2 Denunciar post Postado Outubro 19, 2009 Bom dia a todos. Galera... to tentando montar um sistema de busca simples, porém, não to conseguindo. Se eu coloco para ele buscar de forma simples, ele acaba buscando, porém só retorna 1 resultado. Sei que estou fazendo algo errado, mas não sei o que fazer. O código é esse: if($palavra != '') { $palavra = str_replace(" ", "%", $_REQUEST["palavra"]); /* Altera os espaços adicionando no lugar o simbolo % */ $qr = "SELECT pad_topic.ida, pad_topic.titulo_topic, pad_topic.data_reg, pad_subtopic.id as idSub, pad_subtopic.titulo_subtopic as titulo_subtopic, pad_subtopic.data_reg as dataSub FROM pad_topic, pad_subtopic WHERE conteudo_topic LIKE '%".$palavra."%' OR titulo_topic LIKE '%".$palavra."%' OR conteudo_subtopic LIKE '%".$palavra."%' OR titulo_subtopic LIKE '%".$palavra."%' ORDER BY id DESC"; // Executa a query no Banco de Dados $sql = mysql_query($qr); // Conta o total ded resultados encontrados $total = count($sql); echo $total."<br/>"; ?> <tr> <td id="titulo"> <?= "Sua busca retornou $total resultados.";?> </td> </tr> <tr> <td id="conteudo_ler"> <?php // Gera o Loop com os resultados for($i = 0; $i < $total; $i++){ $r = mysql_fetch_array($sql); $idTopic = $r["id"]; $topicTitle = $r["titulo_topic"]; $dataReg = date("d/m/y",strtotime($r["data_reg"])); $idSub = $r["idSub"]; $tituloSub = $r["titulo_subtopic"]; $dataSub = $r["dataSub"]; echo $idSub."<br/>"; echo "Tópico: <a href='?acao=buscar&idTopic=$idTopic&buscar=$palavra' class='paginacao'>$topicTitle - $dataReg</a><br/><br/>"; if($idSub != ''){ $tab = " "; echo "$tab Sub-tópico: <a href='?acao=buscar&idSubTopic=$idSub&buscar=$palavra' class='paginacao'>$tituloSub - $dataSub</a><br/>"; } } } } No banco eu tenho 4 tópicos, todos eles tem a palavra "Teste" ou "teste", e cada tópico tem pelo menos 1 sub-tópico, tambem contendo a palavra "teste". Então ele teria que retornar 4 tópicos e pelo menos 4 sub-tópicos, mas só retorna 1 tópico e 1 sub-tópico. Será que alguém pode ajudar? Vlw Abç Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Outubro 19, 2009 Olha, isto aqui não funciona. $total = count($sql); Para verificar quantas linhas retornaram na consulta, utilize mysql_num_rows(). http://br.php.net/count http://br.php.net/mysql_num_rows Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
João Vitor Ramos Tonolli 0 Denunciar post Postado Outubro 19, 2009 ou senão, transforma o resultado do mysql em um array $ArrSql = mysql_fetch_array($sql); $total = count($ArrSql); e conta o resultado do array, agora sim vai dar certo, porque o count, conta as ocorrencias de um array, e para pegar o resultado direto das linhas do mysql, que no caso estavam na variavel sql, é como o carlos eduardo dice acima. Compartilhar este post Link para o post Compartilhar em outros sites
Freelife 2 Denunciar post Postado Outubro 19, 2009 Vlw galera... Resolvido, mudei a linha que vcs falaram e funcionou, sabia que era alguma coisa simples, mas não sabia o que. Vlw Abç Compartilhar este post Link para o post Compartilhar em outros sites