Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Salve galera !!! Gostaria de uma ajudinha com um probleminha que surgiu para mim esta semana sobre cadastrar uma categoria e uma subcategoria.
Tenho ja um codigo que cadastra as categorias e gostaia de implementar nel o cadastro das suas subcategorias mas nao tenho a minima ideia de como faze-lo
e gostaria de uma mão aqui do pessoal do forum que sempre me ajuda muito mesmo, bom segue o cod abixo do cadastro das categorias
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="main.css" type="text/css" />
<title>Documento sin título</title>
<style type="text/css">
<!--
body {margin-left: 0px;margin-top: 30px;margin-right: 0px;margin-bottom: 0px;background-color: #000000;}
body,td,th {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 12px;color: #FFFFFF;}
.Estilo1 {color: #FF0000}
-->
</style>
</head>
<body>
<table width="400" border="1" align="center" cellpadding="4" cellspacing="2" bordercolor="#000000" bgcolor="#333333">
<tr>
<td>
<? require("loga.php");?>
<?
include("conexao.php");
if($acao == "entrar")
{
print "<table border='0' align='center'><tr><td>";
print "<form name='frm_upload' method='post' enctype='multipart/form-data' action='cadastrar_categoria.php'>";
?>
<p></p>
<p><strong>Nome da Categoria :</strong><br />
<input name="categoria" type="text" size="45" />
</p>
<div align="center">
<?php
print "<tr><td><br><font class=texton><strong>Foto ou logotipo da categoria :</strong> <br>";
print "<input class=input_texto type='file' size='35' name='foto'></td></tr><tr><td>";
print "<INPUT TYPE='hidden' value='cadastrar' name='acao'>";
print "<br><INPUT class=botao_submit TYPE='submit' value='Cadastrar'><br><br><br></td></tr></table>";
}
elseif($acao == "cadastrar")
{
copy($foto, "images/$foto_name");
$foto = "images/" . $foto_name;
$inserir="INSERT INTO categoria (categoria,foto) values ('$categoria','$foto')";
$resultado=mysql_query("$inserir") or die("Erro inserir os dados da categoria ");
print "<font class=texton>Categoria cadastrada com sucesso.";
}
?>
</div></td>
</tr>
</table>
</body>
</html>Opa Blza m@dDog eu tenho a tabela no DB das categorias vou postar aqui pra ver se tu tem ou consegue me dar uma ideia um pouco mais claro pra ver se eu consigo entender ai vai
-- Estrutura da tabela categoria
--
CREATE TABLE `categoria` (
`codigo` int(5) NOT NULL AUTO_INCREMENT, ----- (codigo = a id )
`categoria` varchar(200) NOT NULL DEFAULT '',
`foto` varchar(200) NOT NULL,
PRIMARY KEY (`codigo`)
) ;Olha ai mais ou menos como eu fiz.
CREATE TABLE `categorias` (
`id` int(10) unsigned NOT NULL auto_increment,
`categoria_id` int(10) unsigned default NULL,
`descricao` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
KEY `FK_CATEGORIAS_CATEGORIAS` (`categoria_id`),
CONSTRAINT `categorias_ibfk_1` FOREIGN KEY (`categoria_id`) REFERENCES `categorias` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Você já pesquisou sobre ENGINE? Eu uso InnoDB.
E CHARSET? Eu uso utf8 para evitar problemas com caracteres, e poder gravar em outros idiomas.
Qualquer duvida posta ai.
>
Opa Blza m@dDog eu tenho a tabela no DB das categorias vou postar aqui pra ver se tu tem ou consegue me dar uma ideia um pouco mais claro pra ver se eu consigo entender ai vai
-- Estrutura da tabela categoria
--
CREATE TABLE `categoria` (
`codigo` int(5) NOT NULL AUTO_INCREMENT, ----- (codigo = a id )
`categoria` varchar(200) NOT NULL DEFAULT '',
`foto` varchar(200) NOT NULL,
PRIMARY KEY (`codigo`)
) ;-- Estrutura da tabela categoria coloquei bem como esta no meu DB tinha tirando antes o ENGINE
--
CREATE TABLE `categoria` (
`codigo` int(5) NOT NULL AUTO_INCREMENT,
`categoria` varchar(200) NOT NULL DEFAULT '',
`foto` varchar(200) NOT NULL,
PRIMARY KEY (`codigo`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=40 ;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CREATE TABLE `categorias` (
`id` int(10) unsigned NOT NULL auto_increment,
`categoria_id` int(10) unsigned default NULL,
`descricao` varchar(100) NOT NULL,
PRIMARY KEY (`id`), -------------------------------------------------ate aqui sao bem iguais as tabelas, daqui pra baixo fica diferente
e é aqui que eu ti tentando pegar a tua linha de pensamento
KEY `FK_CATEGORIAS_CATEGORIAS` (`categoria_id`),
CONSTRAINT `categorias_ibfk_1` FOREIGN KEY (`categoria_id`) REFERENCES `categorias` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8
mas vamos tentar montar este esqueminha da subcategoria nao vai ser dificil vendo que as tabelas sao tao parecidas
Subcategorias, he he
Pra que tudo isso basta fazer isso:
Lógica:::::::::::::::::::::::::::::::::::::::::::::::::
Tabela categoria
id_categoria (int) autoincrement
nome_categoria (varchar)
mais_alguma_coisa (vanchar)
Tabela_subcategoria
id_subcategoria (int) autoincrement
id_categoria (int)
nome_subcategoria (varchar)
mais_alguma_coisa (vanchar)
o que vai ligar a subcategoria a categoria é o id_categoria (int)
ENGINE: MyISAM
flw
>
Pra que tudo isso basta fazer isso:
Lógica:::::::::::::::::::::::::::::::::::::::::::::::::
Tabela categoria
id_categoria (int) autoincrement
nome_categoria (varchar)
mais_alguma_coisa (vanchar)
Tabela_subcategoria
id_subcategoria (int) autoincrement
id_categoria (int)
nome_subcategoria (varchar)
mais_alguma_coisa (vanchar)
o que vai ligar a subcategoria a categoria é o id_categoria (int)
ENGINE: MyISAM
flw
Porque usar duas tabelas? Se com uma só da, e o númerode subcategorias é infinito.
Não entendi ainda a logica nem com uma ou duas tabelas !!!!
Não entendi ainda a logica nem com uma ou duas tabelas !!!!
é o seguinte.
tu tem uma tabela onde cadastra as categorias, certo ??
você vai ter que criar uma tabela para cadastrar as sub-categorias e então criar uma campo onde será inserido o código da categoria.
Tipo:
Cadastra a categoria "Material Escolar" - código 1
Daí no cadastro de sub-categorias, você irá colocar o código da categoria principal ( 1 ), o nome da sub-categoria e o código da sub-categoria com auto increment
na hora de consultar a sub-categoria faz o seguinte:
SELECT * FROM subcategorias WHERE cod_cat_principal = 1;
acho que deu pra clarear um pouco as idéias.
fiz meio na pressa.
talvez não funcione, mas tenta.
studdiox, não olhei teu código, mas ve se ajuda.
Você pode criar uma tabel no BD chamada categorias.
Na tabela categoria você pode por seus campos como id, nome, e etc
Lá você tambem pode por um outro campo e chama-lo de categoria_id
Este campo vai receber o id da categoria que esta pertence.
Ex: Tabela categorias
id: 1
nome: Eletrônicos
categoria_id: null
id:2
nome: Notebooks
categoria_id: 1
id:3
nome: Acessórios
categoria_id: 2
Assim você tem: Eletrônicos->Notebooks->Acessórios
Falow.