Ir para conteúdo

POWERED BY:

Arquivado

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

_Thiago_Fernandes_

problema com inner join

Recommended Posts

Olá galera, olha eu apanhando mais uma vez com o inner join, tenho o seguinte código

 

$query = $mysql->execSql("SELECT produto_categoria.nome_produto_categoria, produto_categoria.id_produto_categoria, produto_subcategoria.nome_subcategoria, produto_subcategoria.id_produto_categoria FROM produto_categoria INNER JOIN produto_subcategoria ON produto_categoria.id_produto_categoria = produto_subcategoria.id_produto_categoria ORDER BY produto_categoria.id_produto_categoria");
               while($dados = mysql_fetch_object($query)){
                   echo "<a href=\"#\" title=\"nome do produto dinamico\">".$dados->nome_produto_categoria."</a><br>";
                   echo "<a href=\"produto-sub-categoria.php\" title=\"nome do produto dinamico\">-".$dados->nome_subcategoria."</a><br>";
               }

 

ele ta exibindo assim

 

 

Construção

-Cimento

Construção

-Areia

Acabamento

-Janelas e Portas

 

o certo Seria assim

 

Construção

-Cimento

-Areia

 

Acabamento

-Janelas e Portas

 

 

tentei varias vezes, mas não consegui..

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso acontece porque o "`produto_categoria`" também está caindo no while. Em outras palavras, você deve fazer um split no seu while... um para as categorias, outro para as subcategorias.

 

Consegues entender? :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe forma de fazer isso com uma unica tabela, ae você cria uma categoria_id e categoria_parent_id e fica ilimitada, depois pega o array e joga em um foreach para listar

 

que fica desta forma

 

Construção
-Cimento

-Areia

Acabamento
-Janelas e Portas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe forma de fazer isso com uma unica tabela, ae você cria uma categoria_id e categoria_parent_id e fica ilimitada, depois pega o array e joga em um foreach para listar

 

que fica desta forma

 

Construção
-Cimento
Itau

-Areia

Acabamento
-Janelas e Portas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso acontece porque o "`produto_categoria`" também está caindo no while. Em outras palavras, você deve fazer um split no seu while... um para as categorias, outro para as subcategorias.

 

Consegues entender? :thumbsup:

 

 

não :S

 

Existe forma de fazer isso com uma unica tabela, ae você cria uma categoria_id e categoria_parent_id e fica ilimitada, depois pega o array e joga em um foreach para listar

 

que fica desta forma

 

Construção
-Cimento

-Areia

Acabamento
-Janelas e Portas

 

 

Olá, cara eu so não mudo se não vou ter que estrutura minha tabela novamente, entende?

Compartilhar este post


Link para o post
Compartilhar em outros sites
$categoria = '';

while($dados = mysql_fetch_object($query)){

   if($categoria != $dados->nome_produto_categoria){
       echo "<a href=\"#\" title=\"nome do produto dinamico\">".$dados->nome_produto_categoria."</a><br>";
       $categoria = $dados->nome_produto_categoria;
   }
   echo "<a href=\"produto-sub-categoria.php\" title=\"nome do produto dinamico\">-".$dados->nome_subcategoria."</a><br>";
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara eu particulamente nunca uso innner join para um while

 

mas issso você pode resolver desta forma

 


$query = $mysql->execSql("SELECT produto_categoria.nome_produto_categoria, produto_categoria.id_produto_categoria, produto_subcategoria.nome_subcategoria, produto_subcategoria.id_produto_categoria FROM produto_categoria INNER JOIN produto_subcategoria ON produto_categoria.id_produto_categoria = produto_subcategoria.id_produto_categoria ORDER BY produto_categoria.id_produto_categoria");

$Cat = '';
while($dados = mysql_fetch_object($query)){


if($Cat != $dados->nome_produto_categoria){
echo "<a href=\"#\" title=\"nome do produto dinamico\">".$dados->nome_produto_categoria."</a><br>";
}

$Cat = $dados->nome_produto_categoria;

echo "<a href=\"produto-sub-categoria.php\" title=\"nome do produto dinamico\">-".$dados->nome_subcategoria."</a><br>";
               }


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.