Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JoaoGusmao

Várias categorias para o mesmo artigo

Recommended Posts

Galera, tenho um blog que fiz em php e mysql, portanto não sei como fazer o cadastro de um artigo em várias categorias. como posso fazer isso? as categorias são cadastradas no bd, e na hora de listar os artigos, eu faço um where com o id da categoria. ajuda ae galera! vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha.. não sei se entendi bem, mas eu acho bem mais facil assim:

1. no formulario de cadastro do artigo tenho um campo p/ a categoria principal,

outros para as outras subcategorias etc...

cada campo do form, obvio, tem uma coluna correspondente na tabela do banco;

ai no select você usa and; ex:

select campos from tabela
where categoria="esporte" AND subcategoria1="futebol" AND subcategoria2="campeonato brasileiro"

, ok?

seria isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha.. não sei se entendi bem, mas eu acho bem mais facil assim:

1. no formulario de cadastro do artigo tenho um campo p/ a categoria principal,

outros para as outras subcategorias etc...

cada campo do form, obvio, tem uma coluna correspondente na tabela do banco;

ai no select você usa and; ex:

select campos from tabela
where categoria="esporte" AND subcategoria1="futebol" AND subcategoria2="campeonato brasileiro"

, ok?

seria isso?

 

acho q não é isso não.. creio q ele quer a mesma coisa q vou ter q tentar fazer daqui algumas semanas,

tipo meu caso fazendo um guia online, pegar exemplo de um salão de festa com bufft, o dono desse salão quer que quando alguém entrar em uma das seguintes categorias, buffets, salão E buffets com salão, logo eu tenho um único cadastro onde o anuncio apresenta em 3 categorias. creio q seja isso... tb tenho duvidas.. vou acompanhar esse tópico.. xD

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode criara uma tabela com dois campos artigo(int)|categoria(int) depois é só atribuir as categorias ao arquivo, pode ser por checkbox na hora do cadastro!

Compartilhar este post


Link para o post
Compartilhar em outros sites

pensei em fazer um campo bd do artigo com o nome categoria, dai registra a categoria assim como ela é lida (ex: videos). dai na hora de consultar, coloca um "LIKE". Esta ideia é valida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eitaa... ai nao sei. talves separa a variável com as categorias depois da vírgula..: algo do tipo. tenta estudar os códigos do wordpress para ver se tem resultado (eu já dei uma olhada, mas nao me dou bem com POO)

Compartilhar este post


Link para o post
Compartilhar em outros sites

JoaoGusmao, salve um array junto com os produtos contendo as IDs das categorias

Compartilhar este post


Link para o post
Compartilhar em outros sites

O correto é o seguinte:

 

TABLE categoria

id, nome

 

TABLE artigo

id, titulo, texto

 

TABLE artigo_categoria

id_categoria, id_artigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que este seu método so complicaria, pq está adicionando uma nova tabela, e isto nao é necessário, já que pode-se criar uma coluna com o id da categoria na tabela do artigo.

Compartilhar este post


Link para o post
Compartilhar em outros sites
já que pode-se criar uma coluna com o id da categoria na tabela do artigo.

dessa forma você não conseguiria ter várias categorias para um mesmo artigo

 

Acho que este seu método so complicaria, pq está adicionando uma nova tabela, e isto nao é necessário

estude Normalização de Dados (Formas Normais).

Compartilhar este post


Link para o post
Compartilhar em outros sites

dessa forma você não conseguiria ter várias categorias para um mesmo artigo

 

estude Normalização de Dados (Formas Normais).

cara até tem pq o site q tenho aqui, tenho um em asp não foi eu q desenvolvi o em asp.. mas nele o WM colocou os ids em um unica coluna porem os id parecem assim (1),(2),(3)... não sei o q muda com os parenteses ma snao sei como depois irar a especifica parte tipo só o 2 e deixar o 1 e o 3...

mas convenhamos temos q pensar um pouco caso criar uma 3 tabela facilitará nossa programão eu crio a 3 tabela.. xD

tem que pensar qual vai dar menos trabalho para alteração...

Compartilhar este post


Link para o post
Compartilhar em outros sites
colocou os ids em um unica coluna
pura gambiarra.

 

caso criar uma 3 tabela facilitará nossa programão eu crio a 3 tabela.. xD

sim, facilita e melhora a performance.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pura gambiarra.

 

sim, facilita e melhora a performance.

 

 

Concordo com William Bruno você deve estudar para fazer as coisas no padrão!

 

não tenho nem que discutir, se é o correto, mais fácil e ainda melhora performance.. o meu já vai ser assim xD

Compartilhar este post


Link para o post
Compartilhar em outros sites
É assim como no wordpress... você cadastra as categorias,

e depois no post você seleciona as categorias em que aquele post vai. isso que eu quero.

ah, ta.. vamos ver se agora eu entendi..

 

1. nao sei se é exatamente assim q e feito no wordpress,

mas suponho q você pode criar 1 "array" no formulario de cadastro

(ou tela de cadastro, se preferir...) utilizando checkboxes, como dito acima;

abaixo segue 1 exemplo:

 

<input type="checkbox" name="passatemp[]" value="TV" />
           TV</label>
         <br />
         <label>
         <input type="checkbox" name="passatemp[]" value="Futebol" />
           Futebol</label>
         <br />
         <label>
         <input type="checkbox" name="passatemp[]" value="Video Game" />
           Video Game</label>
         <br />
         <label>
         <input type="checkbox" name="passatemp[]" value="Cinema" />
           Cinema</label>

retirado dessa apostila:

http://www.apostilando.com/download.php?cod=2842&categoria=PHP

(repare q todos os checkboxes terão o mesmo nome c/ colchetes vazios)

 

2. p/ salvar no banco num mesmo campo, as formas q eu conheço seriam

implode ou serialize.

 

obs: p/ editar esse campo: comando update normal (o campo é varchar) ok?

Compartilhar este post


Link para o post
Compartilhar em outros sites

2. p/ salvar no banco num mesmo campo, as formas q eu conheço seriam

implode ou serialize.

isso é gambiarra @Fernando C.

 

Note que você está enviando "mais de uma informação" para um campo. Em termos de entidade e modelagem normalizada, isso está incorreto.

Veja a estrutura que propus.

 

Modelar errado, te acarretará mais problemas no futuro.

Por exemplo, com essa sugestão, imagina se eu quiser que você me responda todos os artigos que pertencem a categoria "Doces", como você faria esse SELECT ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.