Ir para conteúdo

POWERED BY:

Arquivado

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

CocaWare

caminho a percorrer

Recommended Posts

olá amigos do imasters, sabe o orkut quando tu clica pra v o perfil de alguem, aí mostra o caminho a percorrer para chegar naquela pessoa. por exemplo se eu clico em fulano, apareca assim por exemplo:eu->cocacola->churrasco->mysql->fulanoou fulano é amigo do mysql, onde mysql é amigo do churrasco onde churrasco é amigo de cocacola onde cocacola é meu amigo. :blink: então, alguém poderia me dar alguma ideia de como fazer esse relacionamento? estrutura das tabelas...muito obrigado, até logo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pegando o exemplo de um fórum, ele caminha conforme os relacionamentos na tabela, por exemplo, este tópico:

http://forum.imasters.com.br/index.php?showtopic=166135

 

Com o id do showtopic ele pega na tabela a sala a que ele pertence.

- MySQL

Pegando o nome da sala. ele consegue obter o nome do fórum:

- Gerenciamento de Banco de Dados

E a outra informações é o padrão configurado:

- iMasters Fóruns

 

Ficando assim:

iMasters Fóruns » Gerenciamento de Banco de Dados » MySQL

 

Como fica a estrutura das tabelas?

Uma tabela para cada coisa, sem relacionamentos com necessidade de haver integridade.

Apenas indicações de ID de fórum/sala/tópico uma para a outra.

 

Quanto ao orkut, não pensei ainda.

Mas se eu pensar em algo funcional irei postar. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa, valeu Eclesiastes. Eu fiz esta query aí:

topico:id_topid_forumconteudoforum:id_forumid_catnome_forumcategoria:id_catnome_categoriaSELECT * FROM topico top INNER JOIN forum for ON top.id_forum = forum.id_forumINNER JOIN categoria cat ON forum.id_cat = cat.id_catWHERE top.id_top = $showtopic;

se ela estiver certa, agora, como escrever o caminho? pelo que eu sei, usa-se o mysql_fetch_array, mas como usalo nessa query com inner join?Valeu mesmo, até mais http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troquei: forum.id_cat = cat.id_cat

Por: USING(id_cat)

 

Só por opção, você que decide. : )

 

Veja o que ocorre com:

<pre><?php	// Conexão	// Selecionar bd	$Consulta = mysql_query("		SELECT top.conteudo AS conteudo,			   for.nome_forum AS nome_forum,			   cat.nome_categoria AS nome_categoria		FROM topico AS top			INNER JOIN forum AS for USING(id_forum)			INNER JOIN categoria AS cat USING(id_cat)		WHERE top.id_top = '{$showtopic}'	") or die(mysql_error());	// Mostrar array de resultados	print_r(mysql_fetch_assoc($Consulta));?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

como o print_r retornará na ordem?(categoria->forum->topico) qual a lógica, não intendi...

 

ou para exibir na órdem terei que fazer isso:

$row = mysql_fetch_assoc($Consulta)   echo $row["conteudo"]."->";   echo $row["nome_forum"]."->";   echo $row["nome_categoria"];

muito obrigado pela ajuda http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

print_r() foi só para você visualizar os dados do Array do resultado.Você pode organizar a ordem na lista do SELECT:

SELECT top.conteudo AS conteudo, for.nome_forum AS nome_forum, cat.nome_categoria AS nome_categoria

E imprimir com:
print implode(" -> ", mysql_fetch_assoc($Consulta));

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo Eclesiastes tranquilo?

SELECT top.conteudo AS conteudo,for.nome_forum AS nome_forum,cat.nome_categoria AS nome_categoria

O select nessa ordem exibir em que ordem?assim?"topico->forum->categoria"e para exibir assim?"categoria->forum->topico"outra coisa e para exibir o campo conteúdo em outro lugar da página? serve isso?
<br><br><div id='conteudo'><?php echo $row["conteudo"] ?></div>
Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

A ordem é definida conforme a lista do SELECT.

 

SELECT top.conteudo AS conteudo,

for.nome_forum AS nome_forum,

cat.nome_categoria AS nome_categoria

Do primeiro ao último.

 

Quanto a outra dúvida, se $row for a variável que recebe os dados dos campos no loop de resultados, está correto sim.

http://www.php.net/mysql-fetch-assoc

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.