Listas Aleatórias + Banco de dados MYSQL [RESOLVIDO]

1. Listas Aleatórias + Banco de dados MYSQL [RESOLVIDO]

Marcos Vinicius Campez
markintux

(usa CentOS)

Enviado em 07/10/2009 - 08:20h

Olá! Estou com a seguinte duvida! Tenho as seguintes tabelas com os seguintes valores:

## CATEGORIA ##

Campo Descricao

-Nintendo
-Sony
-Microsoft

## SUBCATEGORIA ##

Campo Descricao Campo Categoria

-X-box - Microsoft
-Nintendo DS - Nintendo
-Super Nintendo - Nintendo
-Playstation 2 - Sony
-PSP - Sony

## SUBCATEGORIA_2 ##

Campo Descricao Campo Subcategoria

-Console - X-box
-Games - X-box
-Acessorios - PSP
-Console - Playstation 2
-Games - Playstation 2
-Console - Nintendo DS
-Acessorios - Nintendo DS

Gostaria de fazer um manu lateral no site que ficaria assim:

Nintendo
-Nintendo DS
-Acessórios
-Console
-Super Nintendo
Sony
-Playstation 2
-Console
-Games
-PSP
-Acessorios
Microsoft
-X-Box
-Console
-Games

Mais ou menos isso! Já tentei de várias maneiras. Não sei se é possivel fazer isso desse jeito que o banco de dados está modelado, mas creio que seja... se alguem puder dar uma ajuda ae!

Abraços!



  


2. hmmm

Marcos Vinicius Campez
markintux

(usa CentOS)

Enviado em 07/10/2009 - 09:20h

creio que irei ter que unir estas tabelas em sql... com o inner join.. mas não sei como...


3. vou postando os avanços

Marcos Vinicius Campez
markintux

(usa CentOS)

Enviado em 07/10/2009 - 09:50h

consegui juntar as tabelas usando esse comando sql:

SELECT categoria.descricao as catdesc, subcategoria.descricao as subcatdesc, subcategoria_2.descricao as subcat2desc
FROM (categoria INNER JOIN subcategoria ON categoria.descricao = subcategoria.categoria)
INNER JOIN subcategoria_2 ON subcategoria.descricao = subcategoria_2.subcategoria

a tabela saiu desta forma

catdesc subcatdesc subcat2desc
Sony PlayStation 2 Games
Sony PSP Placa
Nintendo Wii Acessórios
Nintendo Wii Console
Nintendo Nintendo DS Games
Microsoft X-Box Acessórios

exatamente o que eu queria! Agora acrescentei este scritp em php:

<?php

include('conexao.php');

$busca = "SELECT categoria.descricao as catdesc, subcategoria.descricao as subcatdesc, subcategoria_2.descricao as subcat2desc FROM (categoria INNER JOIN subcategoria ON categoria.descricao = subcategoria.categoria) INNER JOIN subcategoria_2 ON subcategoria.descricao = subcategoria_2.subcategoria";

$busca_query = mysql_query($busca,$conexao);

while($linha = mysql_fetch_assoc($busca_query)) {

echo $linha['catdesc'];
echo "<br />";
echo $linha['subcatdesc'];
echo "<br />";
echo $linha['subcat2desc'];
echo "<br />";
};


mysql_close($conexao);


?>

ele me gerou um resultado assim:

Sony
PlayStation 2
Games
Sony
PSP
Placa
Nintendo
Wii
Acessórios
Nintendo
Wii
Console
Nintendo
Nintendo DS
Games
Microsoft
X-Box
Acessórios

O que eu preciso agora é tratar este resultado para sair desta forma:

Sony
PlayStation 2
Games
PSP
Placa
Nintendo
Wii
Acessórios
Console
Nintendo DS
Games
Microsoft
X-Box
Acessórios

Não repetindo as colunas que já foram entende?

Alguem sabe fazer isso?


4. consegui!

Marcos Vinicius Campez
markintux

(usa CentOS)

Enviado em 07/10/2009 - 10:26h

Só para ficar registrado mesmo caso alguem precise, consegui resolver sozinho o problema com o seguinte código:

<?php

include('conexao.php');

$busca = "SELECT categoria.descricao as catdesc, subcategoria.descricao as subcatdesc, subcategoria_2.descricao as subcat2desc FROM (categoria INNER JOIN subcategoria ON categoria.descricao = subcategoria.categoria) INNER JOIN subcategoria_2 ON subcategoria.descricao = subcategoria_2.subcategoria";

$busca_query = mysql_query($busca,$conexao);

while($linha = mysql_fetch_assoc($busca_query)) {

$categoria = $linha['catdesc'];
$subcategoria = $linha['subcatdesc'];
$subcategoria_2 = $linha['subcat2desc'];

if ($categoria != $categoria2) {

echo $categoria;
echo "<br />";
$categoria2 = $categoria;

}
if ($subcategoria != $subcategoria2) {

echo $subcategoria;
echo "<br />";
$subcategoria2 = $subcategoria;
}

if ($subcategoria_2 != $subcategoria_2_2) {

echo $subcategoria_2;
echo "<br />";
$subcategoria_2 = $subcategoria_2_2;
}
};


mysql_close($conexao);


?>

Fuiz!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts