Ir para conteúdo

POWERED BY:

Arquivado

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

cassiano óliver

[Resolvido] Montar resultado de busca em várias tabelas....

Recommended Posts

olhem só...

 

pesquisei por são mateus folia, a busca me retorna por exemplo, 3 resultados...

beleza...

 

no laço da busca, coloco isso:

$tag = $_GET["tag"];
$sql = "SELECT * FROM coberturas, eventos, videos WHERE 
coberturas.evento LIKE '%" . $tag . "%' OR eventos.evento LIKE '%" . $tag . "%' OR videos.evento LIKE '%" . $tag . "%'";
$busca = mysql_query($sql);

while($resultado = mysql_fetch_array($busca)) {
		$id = $resultado["id"];
		$resultado_busca = $resultado["evento"];
		
		echo $resultado_busca . "<br />";
	}

ele vai mostrar assim...

 

são mateus folia

são mateus folia

são mateus folia

 

aí que tá, como vou redirecionar para a página certa, se não sei se o link é resultado encontrado na cobertura, evento ou vídeo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você vai ter que trocar o:

SELECT * FROM

Por:

SELECT `cobertura`.`evento` AS c_evento, `eventos`.`evento` AS e_evento, `videos`.`evento` AS v_evento FROM ...

E vai precisar repetir isso com cada campo...

 

(creio que seja isso) :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, nao sei se entendi o que você quis dizer...

 

Mas se for, você pode fazer o seguinte...

 

Usa o if ou switch

 

exemplo:

 

if(seu resultado){

<a href=link>Seu link</a>

 

}else if(outro resultado){

<a href=link>Seu link</a>

}

 

e por ai vai

 

ou com

 

switch(expressao){

 

case "seu resultado":

link aqui

break;

 

case "outro res":

link

}

 

 

 

e por ai vai...espero ter ajudado...se nao for isso, desculpe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara o problema é que você tá fazendo a query em 3 tabelas e não está "amarrando" uma com a outra...

 

Estas tabelas tem relações via algum "ID" ou algo do tipo?

 

Porque para dar certo você deve fazer os "inner join's" antes dos filtros...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ficaria assim?

<?php
$tag = $_GET["tag"];
$sql = "SELECT coberturas.evento AS c_evento, eventos.evento AS e_evento, videos.evento AS v_evento WHERE 
coberturas.evento LIKE '%" . $tag . "%' OR eventos.evento LIKE '%" . $tag . "%' OR videos.evento LIKE '%" . $tag . "%'";
$busca = mysql_query($sql);
$total = mysql_num_rows($busca);

if($total == 0) {
	echo "<h2>Desculpe, nenhum registro foi localizado com os dados fornecidos!</h2>";
}

else {
	while($resultado = mysql_fetch_array($busca)) {		
		echo $cevento . "<br />";
	}
}
?>

dá erro:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Arquivos de programas\Apache Group\Apache\htdocs\cb\admin\tags\buscar.php on line 6

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não cara...

Eu não sei como que estão modeladas as tabelas, então fica difícil de explicar como seria...

Se tiver como passar a estrutura delas agente pode te ajudar melhor.

 

Ou procure saber mais sobre relacionamento entre tabelas, ou "Join" entre tabelas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

elas não tem relação entre si...

esse sistema, é por tags...

o visitante clica numa tag, ex: são mateus folia...

 

a busca me retorna 3 resultados, digamos, 1 da tabela coberturas, 1 da tabela eventos e 1 da tabela vídeos...

 

a minha dúvida é no laço...

não posso por todos os resultados pra uma página só, tipo:

echo "<a href='?pg=cobertura&id=$cid'>$resultado</a>

porque aí, vai sempre para a página da cobertura, e se o resultado era um vídeo?e aí?

 

essa ta sendo a minha dificuldade...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até que consegui, mas meio trabalho de fazer, porque para cada tabela tenho que repetir o mesmo processo..

mas ta valendo..

 

<?php
$tag = $_GET["tag"];

$sql = "INSERT INTO tags (tag) VALUES ('$tag')";
$query = mysql_query($sql);

$sql_c = "SELECT id, evento FROM coberturas WHERE evento LIKE '%" . $tag . "%'";
$busca_c = mysql_query($sql_c);
$total_c = mysql_num_rows($busca_c);

$sql_e = "SELECT id, evento FROM eventos WHERE evento LIKE '%" . $tag . "%'";
$busca_e = mysql_query($sql_e);
$total_e = mysql_num_rows($busca_e);

$sql_v = "SELECT id, evento FROM videos WHERE evento LIKE '%" . $tag . "%'";
$busca_v = mysql_query($sql_v);
$total_v = mysql_num_rows($busca_v);

if($total_c == 0 && $total_e == 0 && $total_v == 0) {
	echo "<h2>Desculpe, nenhum registro encontrado para <u>" . $tag . "</u>!</h2>";
	exit;
}
while($resultado_c = mysql_fetch_array($busca_c)) {	
	$cid = $resultado_c["id"];
	$cobertura = $resultado_c["evento"];

	echo "<strong>Cobertura: </strong><a href=\"index.php?pagina=cobertura&cid=" . $cid . "\">" . $cobertura . "</a><br />";
}
while($resultado_e = mysql_fetch_array($busca_e)) {	
	$eid = $resultado_e["id"];
	$evento = $resultado_e["evento"];

	echo "<strong>Evento: </strong><a href=\"index.php?pagina=evento&eid=" . $eid . "\">" . $evento . "</a><br />";
}
while($resultado_v = mysql_fetch_array($busca_v)) {	
	$vid = $resultado_v["id"];
	$video = $resultado_v["evento"];

	echo "<strong>Vídeo: </strong><a href=\"index.php?pagina=video&vid=" . $vid . "\">" . $video . "</a><br />";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

funcoes.php

 

<?php
function consultas($tag){
$sql_c = "SELECT id, evento FROM coberturas WHERE evento LIKE '%" . $tag . "%'";
$busca_c = mysql_query($sql_c);
$total_c = mysql_num_rows($busca_c);

$sql_e = "SELECT id, evento FROM eventos WHERE evento LIKE '%" . $tag . "%'";
$busca_e = mysql_query($sql_e);
$total_e = mysql_num_rows($busca_e);

$sql_v = "SELECT id, evento FROM videos WHERE evento LIKE '%" . $tag . "%'";
$busca_v = mysql_query($sql_v);
$total_v = mysql_num_rows($busca_v);
}
?>

págna.php

 

<?php
(file_exists('funcoes.php'))? require('funcoes.php'):false;
$tag = $_GET["tag"];
consultas($tag);

$sql = "INSERT INTO tags (tag) VALUES ('$tag')";
$query = mysql_query($sql);


if($total_c == 0 && $total_e == 0 && $total_v == 0) {
	echo "<h2>Desculpe, nenhum registro encontrado para <u>" . $tag . "</u>!</h2>";
	exit;
}
while($resultado_c = mysql_fetch_array($busca_c)) {	
	$cid = $resultado_c["id"];
	$cobertura = $resultado_c["evento"];

	echo "<strong>Cobertura: </strong><a href=\"index.php?pagina=cobertura&cid=" . $cid . "\">" . $cobertura . "</a><br />";
}
while($resultado_e = mysql_fetch_array($busca_e)) {	
	$eid = $resultado_e["id"];
	$evento = $resultado_e["evento"];

	echo "<strong>Evento: </strong><a href=\"index.php?pagina=evento&eid=" . $eid . "\">" . $evento . "</a><br />";
}
while($resultado_v = mysql_fetch_array($busca_v)) {	
	$vid = $resultado_v["id"];
	$video = $resultado_v["evento"];

	echo "<strong>Vídeo: </strong><a href=\"index.php?pagina=video&vid=" . $vid . "\">" . $video . "</a><br />";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

po, é mesmo, ameniza um pouco o trabalho...

putz..

 

vai, pode me chamar de lerdo denovo hahahaha

 

brigadão cara...

AUSHUASHAUSHAUs

 

 

LERDO !

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.