Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17510
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Listar categoria e subcategoria duas tabelas uma query MySQL

13-04-2014 17:30

Vou mostrar aqui como listar categoria e subcategoria quando temos duas tabelas, uma para categoria, e uma para subcategoria, no MySQL.

O resultado é ter algo assim
frutas
- banana
- maça
legumes
- repolho
Tabelas usadas:

CREATE TABLE IF NOT EXISTS `categoria` (   `id` INT(11) NOT NULL AUTO_INCREMENT,   `id_categoria` INT(11) NOT NULL,   `nome_categoria` VARCHAR(10) NOT NULL,   PRIMARY KEY (`id`) ) -- -- Extraindo dados da tabela `categoria` --   INSERT INTO `categoria` (`id`, `id_categoria`, `nome_categoria`) VALUES (1, 1, 'frutas'), (2, 2, 'legumes');


CREATE TABLE IF NOT EXISTS `subcategoria` (   `id` INT(11) NOT NULL AUTO_INCREMENT,   `id_categoria` INT(11) NOT NULL,   `produto` VARCHAR(10) NOT NULL,   PRIMARY KEY (`id`) )   -- -- Extraindo dados da tabela `subcategoria` --   INSERT INTO `subcategoria` (`id`, `id_categoria`, `produto`) VALUES (1, 1, 'banana'), (2, 1, 'maça'), (3, 2, 'repolho');

Query usada

SELECT * FROM subcategoria AS o INNER JOIN categoria AS c ON o.id_categoria = c.id_categoria


$var = ""; while($dados=mysql_fetch_array($query)) { extract($dados); echo "$nome_categoria<br />- $produto</br >"; } 

Com essa query, iremos obter algo assim
frutas
- banana
frutas
- maça
legumes
- repolho
Como mostrado, conseguimos obter a lista de frutas e legumes distintos, mas o objetivo é agrupar de forma dinâmica. Como mostrado no primeiro trecho do post.

Nesse caso, montei um if, para fazer uma ocultação no nome da categoria, para ficar mais agrupado.

$var = ""; while($dados=mysql_fetch_array($query)) { extract($dados); if($var==$nome_categoria) { echo ""; } else { echo "<b>$nome_categoria</b><br />"; } echo "- $produto<br />"; $var = $nome_categoria; } 

1
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado