Oi pessoal. Estou desenvolvendo um sistema. Nele haverá categorias e suas respectivas sub-categorias. Criei apenas um banco de dados no seguinte molde:
CREATE TABLE categorias (id INT(11) not null auto_increment, nome VARCHAR(50) not null, categoria_mae INT(11) not null, PRIMARY KEY(id))type=innodb;
Tudo certo até aqui.
Mas depois na hora de selecionar do banco de dados e exibir em um select, cada subcategoria, aparece duas vezes: como categoria principal e como sub-categoria.
Exemplo de como deveria ser:
Categoria Mae
- Categoria 1
- Sub categoria 1.1
- Sub categoria 1.2
- Categoria 2
- Sub categoria 1.2
- Sub categoria 2.2
<input type="text" name="nome_categoria"><br>
Categoria mãe:<br>
<select name="categoria">
<?
$seleciona_categoria = mysql_query("SELECT * FROM categorias");
Pergunta
XandyW
Oi pessoal. Estou desenvolvendo um sistema. Nele haverá categorias e suas respectivas sub-categorias. Criei apenas um banco de dados no seguinte molde:
CREATE TABLE categorias (id INT(11) not null auto_increment, nome VARCHAR(50) not null, categoria_mae INT(11) not null, PRIMARY KEY(id))type=innodb;
Tudo certo até aqui.
Mas depois na hora de selecionar do banco de dados e exibir em um select, cada subcategoria, aparece duas vezes: como categoria principal e como sub-categoria.
Exemplo de como deveria ser:
Categoria Mae
- Categoria 1
- Sub categoria 1.1
- Sub categoria 1.2
- Categoria 2
- Sub categoria 1.2
- Sub categoria 2.2
<input type="text" name="nome_categoria"><br>
Categoria mãe:<br>
<select name="categoria">
<?
$seleciona_categoria = mysql_query("SELECT * FROM categorias");
if($seleciona_categoria)
{
while($categoria = mysql_fetch_assoc($seleciona_categoria))
{
$cat_mae = $categoria['categoria_mae']; // armazena categoria mae
$id_categoria = $categoria['id'];
echo "<option value= . $categoria['id] . ">" . $categoria['nome'] . "</option>";
$seleciona = mysql_query("SELECT * FROM categorias WHERE categoria_mae = '$id_categoria'");
while ($cat2 = mysql_fetch_assoc($seleciona))
{
echo "<option value= . $cat2['id] . "> - " . $cat2['nome'] . "</option>";
}
}
}
?>
</select>
<input type="submit" name="criar" value="Criar">
Só criando outra tabela?
Editado por XandyWLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.