Ir para conteúdo

POWERED BY:

Arquivado

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

Freelife

[Resolvido] Consulta mysql

Recommended Posts

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.