Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá galera , eu preciso de uma ajuda..
Eu preciso criar um sistema, que eu não sei nem o nome e n tenho noção de como faz, sei apenas que com o Oracle é facil , mais o MYSQL não tem essa função..
O sistema é o seguinte.
Eu adiciono uma categoria no database , por exemplo , Seguro, nessa categoria eu posso adicionar quantas subcategorias eu quiser , por exemplo , Seguro de Imóvel , Seguro de Carro, e dentro dessas subcategorias eu posso cadastrar mais , por exemplo , em Seguro de Imóvel eu cadastro , Seguro Simples , Seguro Completo , no final , quando o cara for selecionar oque ele quer , deveria ficar assim :
1.Seguro
|- 1.1 Seguro de Imóvel
|-- 1.1.1 Seguro Simples
|-- 1.1.2 Seguro Completo
|- 1.2 Seguro de Carro
Se eu cadastrar + uma categoria , por exemplo Contabilidade ficaria assim
1.Seguro
|- 1.1 Seguro de Imóvel
|-- 1.1.1 Seguro Simples
|-- 1.1.2 Seguro Completo
|- 1.2 Seguro de Carro
2. Contabilidade
|- 2.1 Subcategoria de Contabilidade
|- 2.2 Subcategoria de Contabilidade
|- 2.3 Subcategoria de Contabilidade
E assim sucessivamente ..
Será que alguem poderia me informar melhor sobre esse tipo de sistema?
Agradeço desde ja , abraços!
criei a tabela do jeito que você falou qual o próximo passo?
Poste ai a estrutura e comece o php.
Tem nocoes de PHP?
Sabe fazer as consultas? Funcoes MySQL para PHP
A estrutura da tabela esta do jeito que você postou ai em cima ,
sim sei php , mais sou iniciante..
A consulta esta assim
mysql_select_db($database_conn, $conn);
$query_Recordset1 = "SELECT * FROM categorias";
$Recordset1 = mysql_query($query_Recordset1, $conn) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
e a exibição
<?php echo $row_Recordset1['nome']; ?>
ja n sei oque fazer + apartir dai
Ok! Vamos la!
A Ideia:
Tendo em vista a estrutura da tabela, devemos ir verificando, nivel a nivel, se existem dependencias. Assim, de cara, uma pergunta:
A quantidade de nives será limitada, ate 3 níveis, por exemplo, ou ilimitada?
Respondida esta questao, vamos adiante. Vou usar um exemplo para 3 niveis, se necessário, adapte.
Supondo que voce esta conetacdo ao db:
Exemplo:
<?php
$Tabela = 'cat';
/*
COLETA NIVEL 1
*/
$SQL = 'SELECT * FROM '.$Tabela.' WHERE nivel = 1';
$N1_Consulta = mysql_query($SQL) OR Die ('Erro MYSQL: '.mysql_errno().' -> '.mysql_error());
// SE EXISTE CATEGORIA DE NIVEL 1
If ($N1_Registros = mysql_num_rows($N1_Consulta))
{
$N1_Contador = 0; // Contador do nivel 1
// ENQUANTO HOUVER CATEGORIAS DE NIVEL 1
While ($N1 = mysql_fetch_assoc($N1_Consulta))
{
$N1_Contador++;
Echo $N1_Contador.': '.$N1['nome'].'<br>'; // Imprime a cat de nivel 1
/*
COLETA NIVEL 2
*/
$SQL = 'SELECT * FROM '.$Tabela.' WHERE nivel = 2 AND id_pai = '.$N1['id']; // Select quando o nivel for 2 e a cat pai for igual a do nivel 1 ($N1['id'])
$N2_Consulta = mysql_query($SQL) OR Die ('Erro MYSQL: '.mysql_errno().' -> '.mysql_error());
// SE EXISTE CATEGORIA DE NIVEL 2
If ($N2_Registros = mysql_num_rows($N2_Consulta))
{
$N2_Contador = 0; // Contador do nivel 2
// ENQUANTO HOUVER CATEGORIAS DE NIVEL 2
While ($N2 = mysql_fetch_assoc($N2_Consulta))
{
$N2_Contador++;
Echo $N1_Contador.'.'.$N2_Contador.': '.$N2['nome'].'<br>'; // Imprime a cat de nivel 2
/*
COLETA NIVEL 3
*/
$SQL = 'SELECT * FROM '.$Tabela.' WHERE nivel = 3 AND id_pai = '.$N2['id']; // Select quando o nivel for 3 e a cat pai for igual a do nivel 2 ($N2['id'])
$N3_Consulta = mysql_query($SQL) OR Die ('Erro MYSQL: '.mysql_errno().' -> '.mysql_error());
// SE EXISTE CATEGORIA DE NIVEL 3
If ($N3_Registros = mysql_num_rows($N3_Consulta))
{
$N3_Contador = 0; // Contador do nivel 3
// ENQUANTO HOUVER CATEGORIAS DE NIVEL 3
While ($N3 = mysql_fetch_assoc($N3_Consulta))
{
$N3_Contador++;
Echo $N1_Contador.'.'.$N2_Contador.'.'.$N3_Contador.': '.$N3['nome'].'<br>'; // Imprime a cat de nivel 3
}
}
}
}
}
}
?>
Aqui, local usando os dados e o db:
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.ipis.com.br/web/img/forum_cat1.png&key=d1e130e695dbf3f31e848758675688a4e0a5b6062ff9b06128fc93e20fda0444" alt="forum_cat1.png" />
Obtive o seguinte resultado:
>
1: Veiculos
1.1: Novos
1.1.1: Fiat
1.2: Usados
1.2.1: Chevrolet
1.2.2: VW
Po cara , muito bom , funcionou perfeitamente !!!
você é mto bom cara , espero um dia chegar ao seu nível ! :)
Uma ultima pergunta, teria como eu jogar isso dentro de um select field?
Agradeço novamente !!
Abraços
Oi!
Na verdade isto seria o menu do sistema baseado nas categorias cadastradas no db coreto, tipo menu de loja virtual?
Ja tem a estrutura do banco de dados?
Ja pensou como relacionar as subcategoias as suas respectivas categorias "pai"?
Se nao comecou o db, comece e quando chegar no php nos ajudamos!
Um exemplo de estrutura:
tabela categorias:
id = int
nome = text
nivel = int
id_pai = int
Com essa base ja da pra montar uma relacao infinita de subcategorias, tipo:
---------------
Categoria A:
id = 1
nome = "A"
nivel = 1
id_pai = 0
---------------
Categoria B:
id = 2
nome = "B"
nivel = 2
id_pai = 1
---------------
Comece ai! Abç.