sedex 0 Denunciar post Postado Fevereiro 1, 2008 Pessoal, to precisando muito da ajuda de vocês! Eu tenho 3 tabelas categempresa id categoria ID=1 CATEGORIA=EMPRESA subcategempresa id id_categoria subcategoria ID =1 ID_CATEGORIA = 1 SUBCATEGORIA = Historico Empresa id id_categoria id_subcategoria secao subsecao titulo descricao ID = 1 ID_CATEGORIA =1 ID_SUBCATEGORIA = 1 SECAO = EMPRESA SUBSECAO =Historico DESCRICAO = descrição O que eu quero é assim: EMPRESA Historico Quando clicar em Historico, exibi a descrição de Historico! Tentei adaptar um código da net, mas não consegui! <?php include("conexao.php"); include("funcao.php"); conexao_mysql($host,$user,$pass,$db); ?> <?php $consulta_sqle = mysql_query("SELECT empresa.secao, subcategempresa.subcategoria FROM empresa, subcategempresa WHERE empresa.id_subcategoria = subcategempresa.id ORDER BY id DESC LIMIT 0,5"); if($consulta_sqle){ while($row = mysql_fetch_array($consulta_sqle)){ $id = $row['id']; $diretorio = $row['diretorio']; $titulo = $row['titulo']; $secao = $row['secao']; $conteudo = $row['conteudo']; $imagem = $row['imagem']; ?> <?php echo $secao; ?> - Sesão EMPRESA <a href="exibe_noticias.php?noticia=' . $id . '"><?php echo $subsecao; ?></a> - Subseção HISTORICO <?php } } ?> Alguém sade como pode ser feito esse menu? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 1, 2008 Não entendi direito a lógica dessas três tabelas. Ficou meio confuso. Leia este artigo: http://www.tmferreira.com.br/blog/2007/07/...-um-erro-comum/ Acho que seria interessante remodelar esse banco de dados. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
sedex 0 Denunciar post Postado Fevereiro 1, 2008 Beraldo o negocio é simples demais. Eu cadastro uma CATEGORIA (ex. ESPORTE) Depois cadastro uma Subcategoria (Ex. Futebol) #Aqui eu seleciono a categoria ESPORTE Ai quando eu quiser cadastrar uma notícia, eu seleciono a Categoria e a Subcategoria. O que eu quero e exibir em forma de menu: ESPORTE Futebol Volei Baskete AUDIO Instrumentos Amplificadores Subwoofer Entendeu? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 1, 2008 E se precisar de uma "sub-sub-categoria"? ;) O ruim dessa modelagem é ter de definir categoria e sub-categoria. Usando o modelo do artigo, basta especificar a sub-categoria. Além disso, pode haver inúmeros níveis de sub-categorias. E a seleção dos dados é bem simples. Veja no Laboratório de Scripts exemplos usando a mesma modelagem. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
leonardonobre 0 Denunciar post Postado Fevereiro 1, 2008 Bom dia Sedex, tudo bem? O seu banco esta fora da um padrão, chamado de Normal. Veja um pouco sobre as Normas http://pt.wikipedia.org/wiki/Banco_de_dados_relacional O link que o Beraldo passou é muito bom tb, creio que já sanara suas dúvidas. Abraços, Léo Compartilhar este post Link para o post Compartilhar em outros sites
sedex 0 Denunciar post Postado Fevereiro 1, 2008 O que o beraldo passou não esclareceu muita coisa! $sql = sprintf( "select id, nome, link from menus WHERE ativo = 'S' and categoria_pai = '%d' order by id", $id ); eu não consegui pegar foi onde está acontecendo o relacionamento entre as tabelas! O meu problema é simples, só quero listar uma Categoria e abaixo dela as suas subcategorias em um Loop! Só que não to conseguindo, estou desde as 11:00 da noite tentando achar algo! Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 1, 2008 O que estamos sugerindo é remodelar o banco de dados. Isso facilitará o trabalho e possibilitará inúmeras sub-categorias. Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Fevereiro 1, 2008 A modelagem não está nas normas como os amigos disseram, mas vamos tentar resolver a listagem. Com duas consultas voce resolve: Uma que retorne as categorias e a cada categoria voce lista as subcategorias. lista categorias SELECT id, categoria FROM categempresa Com o retorno de id, voce pode consultar as subcategorias. SELECT subcategoria FROM subcategempresa INNER JOIN categempresa ON subcategempresa.id_categoria = categempresa.id WHERE subcategempresa.id_categoria = '$id' A variável $id será o retorno de cada linha da consulta anterior. Compartilhar este post Link para o post Compartilhar em outros sites
sedex 0 Denunciar post Postado Fevereiro 1, 2008 Tentei assim: $consulta_sql = mysql_query("SELECT filho.id_categoria, filho.id_subcategoria, filho.subsecao, pai.id_categoria, pai.id, pai.subcategoria FROM empresa INNER JOIN subcategempresa ON filho.id_categoria=pai.id_catgoria ORDER BY filho.secao"); Mas não funcionou Compartilhar este post Link para o post Compartilhar em outros sites
sedex 0 Denunciar post Postado Fevereiro 1, 2008 Amigo, to conseguindo fazer funcionar, mas eu preciso só de mais uma ajudinha sua Só preciso saber como puxar o id da tabela EMPRESA. Nesse SELECT: SELECT subcategoria FROM subcategempresa INNER JOIN categempresa ON subcategempresa.id_categoria = categempresa.id WHERE subcategempresa.id_categoria = '$id' Eu não estou pegando o ID da tabela EMPRESA, e eu preciso para colocar no link: <a class="linknoticias" href="exibe_noticias.php?noticia=<?=$id ?>"><?=$subcategoria?></a> O código ficou assim: <?php include("conexao.php"); include("funcao.php"); conexao_mysql($host,$user,$pass,$db); ?> <!-- Inicia a consulta das subcategorias --> <?php $consulta_sqle = mysql_query("SELECT id, categoria FROM categempresa ORDER BY id DESC"); if($consulta_sqle){ while($row = mysql_fetch_array($consulta_sqle)){ $id_categ = $row['id']; $categoria = $row['categoria']; ?> <!-- Inicio da exibição das categorias principais --> <?=$categoria?><br> <!-- Fim da exibição das categorias principais --> <!-- Inicia a consulta das subcategorias --> <?php $consulta_sqle1 = mysql_query("SELECT subcategoria FROM subcategempresa INNER JOIN categempresa ON subcategempresa.id_categoria = categempresa.id WHERE subcategempresa.id_categoria = '$id_categ'"); if($consulta_sqle1){ while($row1 = mysql_fetch_array($consulta_sqle1)){ $id = $row1['id']; $subcategoria = $row1['subcategoria']; ?> <!-- Inicio da exibição das subcategorias --> <a class="linknoticias" href="exibe_noticias.php?noticia=<?=$id?>"><?=$subcategoria?></a> <!-- Fim da exibição das subcategorias --> <?php }} ?> <!-- Fim da consulta das subcategorias --> <?php }} ?> <!-- Fim da consulta das categorias principais --> Compartilhar este post Link para o post Compartilhar em outros sites
sedex 0 Denunciar post Postado Fevereiro 1, 2008 Tentei colocar com UNION, mas também não tem como pois o campo ID já esta sendo utilizado: <?php $consulta_sqle1 = mysql_query("SELECT subcategoria FROM subcategempresa INNER JOIN categempresa ON subcategempresa.id_categoria = categempresa.id WHERE subcategempresa.id_categoria = '$id_categ') UNION (SELECT id FROM empresa ORDER BY id DESC"); if($consulta_sqle1){ while($row1 = mysql_fetch_array($consulta_sqle1)){ $id = $row1['id']; $subcategoria = $row1['subcategoria']; ?> <a class="linknoticias" href="exibe_noticias.php?noticia=<?=$id?>"><?=$subcategoria?></a><br> O resto já está funcionando, só preciso fazer esse link carregar o id da tabela EMPRESA. Alguém teria alguma ideia de como fazer? Pessoal, to precisando mesmo! Por isso to sendo insistente! Compartilhar este post Link para o post Compartilhar em outros sites
Adriano Programmer 0 Denunciar post Postado Fevereiro 1, 2008 Olá boa tarde tente assim... <?php $consulta_sqle1 = mysql_query("SELECT subcategoria FROM subcategempresa INNER JOIN categempresa ON subcategempresa.id_categoria = categempresa.id WHERE subcategempresa.id_categoria = '$id_categ') UNION (SELECT id FROM empresa ORDER BY id DESC"); if($consulta_sqle1){ while($row1 = mysql_fetch_array($consulta_sqle1)){ $id = $row1['id']; $subcategoria = $row1['subcategoria']; <a class="linknoticias" href="exibe_noticias.php?noticia=<? php echo $id ?>"><?php echo $subcategoria ?></a><br> ?> Compartilhar este post Link para o post Compartilhar em outros sites